<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Herramientas de IA on KnightLi Blog</title>
        <link>https://knightli.com/es/categories/ai-tools/</link>
        <description>Recent content in Herramientas de IA on KnightLi Blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>es</language>
        <lastBuildDate>Thu, 21 May 2026 08:53:13 +0800</lastBuildDate><atom:link href="https://knightli.com/es/categories/ai-tools/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Clasificación de proyectos open source de AI en GitHub: de Coding Agent a bases de conocimiento RAG</title>
        <link>https://knightli.com/es/2026/05/21/github-ai-projects-site-statistics/</link>
        <pubDate>Thu, 21 May 2026 08:53:13 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/21/github-ai-projects-site-statistics/</guid>
        <description>&lt;p&gt;Esta página organiza proyectos de AI en GitHub por dirección de uso: AI Coding y Coding Agents, skills y flujos Agent, RAG y bases de conocimiento, creación multimodal, modelos locales e inferencia, aplicaciones verticales y automatización, e infraestructura para desarrollar aplicaciones de AI. Cuando aparezcan nuevos proyectos, pueden añadirse con la misma estructura.&lt;/p&gt;
&lt;h2 id=&#34;resumen-por-categoría&#34;&gt;Resumen por categoría
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Categoría&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Proyectos&lt;/th&gt;
          &lt;th&gt;Para quién empezar aquí&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;AI Coding y Coding Agents&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;19&lt;/td&gt;
          &lt;td&gt;Usuarios que trabajan con Claude Code, Codex, Cursor, agents de terminal o automatización de repositorios&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Skills y flujos Agent&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;7&lt;/td&gt;
          &lt;td&gt;Usuarios que quieren estandarizar AI Coding, investigación o flujos de creación&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RAG, bases de conocimiento y memoria&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;7&lt;/td&gt;
          &lt;td&gt;Usuarios que necesitan búsqueda documental, bases de conocimiento, memoria de largo plazo, crawling web o extracción estructurada&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Aplicaciones verticales y automatización&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;7&lt;/td&gt;
          &lt;td&gt;Usuarios interesados en finanzas, trading, monitoreo de Xianyu, control de escritorio, automatización de navegador y otros escenarios prácticos&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Multimodal y creación de contenido&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;5&lt;/td&gt;
          &lt;td&gt;Usuarios que trabajan con imágenes, video, transcripción, librerías de prompts y distribución de contenido&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Infraestructura para aplicaciones de AI&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3&lt;/td&gt;
          &lt;td&gt;Desarrolladores que construyen apps de AI, automatización de navegador o toolchains Prompt/MCP&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Modelos locales e inferencia&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1&lt;/td&gt;
          &lt;td&gt;Usuarios interesados en DeepSeek local, motores de inferencia y adaptación de hardware&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;La distribución muestra varias direcciones frecuentes en los proyectos open source actuales de AI: las herramientas de AI Coding son las más numerosas, seguidas por flujos Agent, bases de conocimiento RAG y escenarios aplicados. Hay menos proyectos centrados solo en inferencia local porque mucho contenido de despliegue local se organiza alrededor de modelos, GPUs o planes de despliegue, no de un único proyecto de GitHub.&lt;/p&gt;
&lt;h2 id=&#34;ai-coding-y-coding-agents&#34;&gt;AI Coding y Coding Agents
&lt;/h2&gt;&lt;p&gt;Esta categoría se centra en comprensión de código, modificación de código, flujos de ingeniería y agents de terminal. Es el grupo más grande, con &lt;strong&gt;19&lt;/strong&gt; proyectos.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Proyecto&lt;/th&gt;
          &lt;th&gt;Artículo&lt;/th&gt;
          &lt;th&gt;GitHub&lt;/th&gt;
          &lt;th&gt;Uso principal&lt;/th&gt;
          &lt;th&gt;Para quién&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Ralph&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/04/27/ralph-autonomous-agent-loop-claude-code-amp/&#34; &gt;Ralph: convertir Claude Code y Amp en un ciclo autónomo de desarrollo&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/snarktank/ralph&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;snarktank/ralph&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Guiar Claude Code / Amp por PRD, planificación, ejecución y revisión&lt;/td&gt;
          &lt;td&gt;Quienes quieren ordenar el flujo de AI Coding&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Claude-Mem&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/01/claude-mem-persistent-memory-for-claude-code/&#34; &gt;Claude-Mem: memoria de largo plazo entre sesiones para Claude Code&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/thedotmack/claude-mem&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;thedotmack/claude-mem&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Añadir memoria entre sesiones a Claude Code&lt;/td&gt;
          &lt;td&gt;Usuarios intensivos de Claude Code&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Claude Code Hooks Mastery&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/01/claude-code-hooks-mastery-guide/&#34; &gt;Claude Code Hooks Mastery: introducción a 13 etapas del ciclo de hooks&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/disler/claude-code-hooks-mastery&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;disler/claude-code-hooks-mastery&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Aprender el ciclo de vida de hooks y control de automatización&lt;/td&gt;
          &lt;td&gt;Quienes quieren personalizar Claude Code&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Compound Engineering Plugin&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/01/compound-engineering-plugin-ai-coding-workflow/&#34; &gt;Compound Engineering Plugin: convertir AI Coding en ciclos de planificación, ejecución y revisión&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EveryInc/compound-engineering-plugin&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;EveryInc/compound-engineering-plugin&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Dividir AI Coding en planificación, ejecución y revisión&lt;/td&gt;
          &lt;td&gt;Usuarios que buscan ingeniería más disciplinada&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;free-claude-code&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/01/free-claude-code-anthropic-compatible-proxy/&#34; &gt;free-claude-code: conectar Claude Code a OpenRouter, DeepSeek y modelos locales&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Alishahryar1/free-claude-code&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Alishahryar1/free-claude-code&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Conectar Claude Code a distintos backends mediante proxy&lt;/td&gt;
          &lt;td&gt;Usuarios que quieren reducir costes&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Hermes Agent&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/04/12/hermes-agent-intro-guide-vs-openclaw/&#34; &gt;Qué es Hermes Agent: visión general, ventajas, inicio rápido y comparación con OpenClaw&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/NousResearch/hermes-agent&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;NousResearch/hermes-agent&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Framework local de Agent con herramientas y ejecución de tareas&lt;/td&gt;
          &lt;td&gt;Usuarios que quieren correr Agents locales&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;OpenHarness&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/04/12/openharness-basic-functions/&#34; &gt;Qué puede hacer OpenHarness como Agent Harness open source&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/HKUDS/OpenHarness&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;HKUDS/OpenHarness&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Agent Harness y ejecución multi-agent&lt;/td&gt;
          &lt;td&gt;Investigadores de orquestación Agent&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;CodexBridge&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/13/codexbridge-openai-compatible-api/&#34; &gt;Usar Codex con modelos nacionales: API compatibles con OpenAI y CodexBridge&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/begonia599/CodexBridge&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;begonia599/CodexBridge&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Conectar Codex a APIs compatibles con OpenAI&lt;/td&gt;
          &lt;td&gt;Usuarios que quieren usar Codex con modelos nacionales&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;ccx&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/13/ccx-ai-api-proxy-gateway/&#34; &gt;Usar CCX para gestionar APIs compatibles con OpenAI para Codex y modelos nacionales&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/BenedictKing/ccx&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;BenedictKing/ccx&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Gestionar proxies de API para Claude, Codex, Gemini y más&lt;/td&gt;
          &lt;td&gt;Usuarios que alternan varios modelos&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;cc-haha&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/14/cc-haha-claude-code-desktop-workbench/&#34; &gt;cc-haha: un escritorio de trabajo para Claude Code&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/NanmiCoder/cc-haha&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;NanmiCoder/cc-haha&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Workspace de escritorio y entrada Computer Use para Claude Code&lt;/td&gt;
          &lt;td&gt;Usuarios de Claude Code que prefieren GUI&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;DeepSeek-TUI&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/16/deepseek-tui-terminal-coding-agent/&#34; &gt;DeepSeek-TUI: convertir DeepSeek V4 en un agente de programación en terminal&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Hmbown/DeepSeek-TUI&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Hmbown/DeepSeek-TUI&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Ejecutar un agente de programación DeepSeek en terminal&lt;/td&gt;
          &lt;td&gt;Usuarios de DeepSeek y línea de comandos&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Open Design&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/18/open-design-open-source-claude-design-alternative/&#34; &gt;Open Design: convertir Claude Code y Codex en herramientas de diseño AI&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/nexu-io/open-design&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;nexu-io/open-design&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Llevar Claude Code / Codex a generación de diseño&lt;/td&gt;
          &lt;td&gt;Usuarios que quieren agentes para prototipos&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;agentmemory&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/19/agentmemory-persistent-memory-ai-coding-agents/&#34; &gt;agentmemory: memoria persistente para Claude Code, Codex y Cursor&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/rohitg00/agentmemory&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;rohitg00/agentmemory&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Añadir memoria persistente a coding agents&lt;/td&gt;
          &lt;td&gt;Desarrolladores con proyectos largos&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Graphify&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/21/safishamsi-graphify-ai-code-knowledge-graph/&#34; &gt;Graphify: convertir una base de código en un grafo consultable por AI&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/safishamsi/graphify&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;safishamsi/graphify&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Convertir código en grafo de conocimiento para reducir lecturas repetidas&lt;/td&gt;
          &lt;td&gt;Usuarios con bases de código grandes&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;CC Switch&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/06/cc-switch-ai-cli-manager/&#34; &gt;CC Switch: gestionar Claude Code, Codex, Gemini CLI y OpenClaw en una herramienta de escritorio&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/farion1231/cc-switch&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;farion1231/cc-switch&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Gestionar varias CLI de AI y cambios de cuenta/configuración&lt;/td&gt;
          &lt;td&gt;Usuarios de varias CLI&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Warp&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/07/warpdotdev-warp-open-source-agentic-terminal/&#34; &gt;Warp open source: del terminal al Agentic Development Environment&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/warpdotdev/warp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;warpdotdev/warp&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Terminal y entorno de desarrollo agentic&lt;/td&gt;
          &lt;td&gt;Usuarios intensivos de terminal&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;opencode&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/08/opencode-open-source-ai-coding-agent/&#34; &gt;opencode vs Claude Code vs Codex: guía de herramientas open source de AI Coding&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/anomalyco/opencode&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;anomalyco/opencode&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Agent open source para AI Coding&lt;/td&gt;
          &lt;td&gt;Quienes buscan alternativas a Claude Code / Codex&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;9Router&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/08/9router-ai-coding-router-token-saver/&#34; &gt;9Router: conectar Claude Code, Codex y Cursor a un único router de AI&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/decolua/9router&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;decolua/9router&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Ruteo de modelos para AI Coding y control de coste de tokens&lt;/td&gt;
          &lt;td&gt;Usuarios multi-herramienta y multi-modelo&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;goose&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/08/goose-open-source-ai-agent-desktop-cli-api/&#34; &gt;goose: AI Agent open source para escritorio, CLI y API&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/aaif-goose/goose&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;aaif-goose/goose&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Agent open source en escritorio, CLI y API&lt;/td&gt;
          &lt;td&gt;Usuarios que quieren un workspace Agent general&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;skills-y-flujos-agent&#34;&gt;Skills y flujos Agent
&lt;/h2&gt;&lt;p&gt;Esta categoría convierte capacidades de AI en skills, procesos y especificaciones repetibles. Incluye &lt;strong&gt;7&lt;/strong&gt; proyectos.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Proyecto&lt;/th&gt;
          &lt;th&gt;Artículo&lt;/th&gt;
          &lt;th&gt;GitHub&lt;/th&gt;
          &lt;th&gt;Uso principal&lt;/th&gt;
          &lt;th&gt;Para quién&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;mattpocock/skills&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/15/matt-pocock-skills-ai-engineering-workflow/&#34; &gt;Rechazar Vibe Coding: el repo skills de Matt Pocock añade restricciones de ingeniería&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/mattpocock/skills&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;mattpocock/skills&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Usar skills para controlar flujos de AI Coding&lt;/td&gt;
          &lt;td&gt;Quienes quieren disciplina de ingeniería para Agents&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Superpowers&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/15/obra-superpowers-agentic-skills-framework/&#34; &gt;Superpowers: devolver Coding Agents al flujo de ingeniería&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/obra/superpowers&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;obra/superpowers&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Framework de skills agentic y metodología de desarrollo&lt;/td&gt;
          &lt;td&gt;Quienes quieren flujos sistemáticos con Coding Agents&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Prompt-Vault&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/15/prompt-vault-coding-prompt-benchmark/&#34; &gt;Prompt-Vault: biblioteca de especificaciones de prompts para probar AI Coding&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/w512/Prompt-Vault&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;w512/Prompt-Vault&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Reunir prompts de prueba para AI Coding&lt;/td&gt;
          &lt;td&gt;Evaluadores de modelos y herramientas&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;web-video-presentation&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/15/web-video-presentation-agent-skill/&#34; &gt;web-video-presentation: skill Agent para convertir artículos en videos web grabables&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/ConardLi/garden-skills&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ConardLi/garden-skills&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Convertir artículos en videos web grabables&lt;/td&gt;
          &lt;td&gt;Creadores y usuarios de automatización&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;nuwa-skill&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/04/22/nuwa-skill-distill-how-someone-thinks/&#34; &gt;nuwa-skill: convertir “destilar una persona” en un flujo ejecutable&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/alchaincyf/nuwa-skill&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;alchaincyf/nuwa-skill&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Reproducir estilo expresivo y flujo de pensamiento con skill&lt;/td&gt;
          &lt;td&gt;Usuarios que construyen Agents de estilo&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Scientific Agent Skills&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/17/scientific-agent-skills/&#34; &gt;Scientific Agent Skills: entregar flujos científicos a AI Agents&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/K-Dense-AI/scientific-agent-skills&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;K-Dense-AI/scientific-agent-skills&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Colección de skills para investigación científica&lt;/td&gt;
          &lt;td&gt;Investigadores, analistas y redactores técnicos&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;easy-vibe&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/16/easy-vibe-vibe-coding-learning-map/&#34; &gt;easy-vibe: mapa de aprendizaje para principiantes de Vibe Coding&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/datawhalechina/easy-vibe&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;datawhalechina/easy-vibe&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Mapa de aprendizaje de Vibe Coding&lt;/td&gt;
          &lt;td&gt;Principiantes de AI Coding&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;rag-bases-de-conocimiento-y-memoria&#34;&gt;RAG, bases de conocimiento y memoria
&lt;/h2&gt;&lt;p&gt;Esta categoría aborda búsqueda documental, construcción de bases de conocimiento, memoria de largo plazo y extracción estructurada. Incluye &lt;strong&gt;7&lt;/strong&gt; proyectos.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Proyecto&lt;/th&gt;
          &lt;th&gt;Artículo&lt;/th&gt;
          &lt;th&gt;GitHub&lt;/th&gt;
          &lt;th&gt;Uso principal&lt;/th&gt;
          &lt;th&gt;Para quién&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;LangExtract&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/01/google-langextract-llm-structured-data-extraction/&#34; &gt;Google LangExtract: extraer datos estructurados de textos largos con LLM&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/google/langextract&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;google/langextract&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Extraer información estructurada de textos largos&lt;/td&gt;
          &lt;td&gt;Usuarios de extracción de información y datos&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;qmd&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/01/qmd-markdown-search-for-ai-agents/&#34; &gt;qmd: búsqueda local en Markdown para AI Agents&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/tobi/qmd&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;tobi/qmd&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Búsqueda local en documentos Markdown&lt;/td&gt;
          &lt;td&gt;Usuarios que gestionan conocimiento en Markdown&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Firecrawl&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/04/15/firecrawl-ai-web-data-api/&#34; &gt;Firecrawl: búsqueda, crawling e interacción web para AI Agents&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/firecrawl/firecrawl&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;firecrawl/firecrawl&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Crawling web, búsqueda y entrada de datos estructurados&lt;/td&gt;
          &lt;td&gt;Usuarios de RAG e ingestión de datos para Agents&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RAGFlow&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/04/15/ragflow-rag-engine-guide/&#34; &gt;RAGFlow: funciones y uso de un motor RAG open source&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/infiniflow/ragflow&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;infiniflow/ragflow&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Motor RAG open source&lt;/td&gt;
          &lt;td&gt;Bases de conocimiento empresariales y Q&amp;amp;A documental&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;OpenHuman&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/15/openhuman-open-source-personal-ai-agent/&#34; &gt;OpenHuman: ruta de escritorio para AI Agent personal open source&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/tinyhumansai/openhuman&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;tinyhumansai/openhuman&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Agent personal local-first y capa de memoria&lt;/td&gt;
          &lt;td&gt;Usuarios que quieren integrar datos personales&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;OpenKB&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/17/openkb-llm-knowledge-base/&#34; &gt;OpenKB: compilar documentos en bases de conocimiento LLM actualizables&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/VectifyAI/OpenKB&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;VectifyAI/OpenKB&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Compilar documentos en bases de conocimiento actualizables&lt;/td&gt;
          &lt;td&gt;Mantenedores de documentación y conocimiento&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;PageIndex&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/20/vectifyai-pageindex-vectorless-rag/&#34; &gt;PageIndex: indexación RAG razonada sin bases vectoriales&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/VectifyAI/PageIndex&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;VectifyAI/PageIndex&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Indexación documental razonada sin bases vectoriales&lt;/td&gt;
          &lt;td&gt;Usuarios que siguen nuevas rutas de RAG&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;multimodal-y-creación-de-contenido&#34;&gt;Multimodal y creación de contenido
&lt;/h2&gt;&lt;p&gt;Esta categoría cubre imágenes, video, transcripción y distribución de contenido. Incluye &lt;strong&gt;5&lt;/strong&gt; proyectos.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Proyecto&lt;/th&gt;
          &lt;th&gt;Artículo&lt;/th&gt;
          &lt;th&gt;GitHub&lt;/th&gt;
          &lt;th&gt;Uso principal&lt;/th&gt;
          &lt;th&gt;Para quién&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;rembg&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/04/19/rembg-background-removal-notes/&#34; &gt;rembg: herramienta local para quitar fondos de imágenes&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/danielgatis/rembg&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;danielgatis/rembg&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Eliminación local de fondos&lt;/td&gt;
          &lt;td&gt;E-commerce, diseño y procesamiento de imágenes&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;awesome-gpt-image-2-prompts&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-case-index/&#34; &gt;Biblioteca de prompts GPT-Image 2: e-commerce, pósters, retratos y UI&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;EvoLinkAI/awesome-gpt-image-2-prompts&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Prompts y casos para GPT-Image 2&lt;/td&gt;
          &lt;td&gt;Usuarios de AI Art y prompts&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;faster-whisper&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/01/faster-whisper-speech-to-text/&#34; &gt;faster-whisper: motor Whisper más rápido para transcripción&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/SYSTRAN/faster-whisper&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;SYSTRAN/faster-whisper&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Speech-to-text de alto rendimiento&lt;/td&gt;
          &lt;td&gt;Usuarios de subtítulos, transcripción y voz&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Pixelle-Video&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/07/pixelle-video-ai-short-video-engine/&#34; &gt;Pixelle-Video: motor AI open source para generar videos cortos desde un tema&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/AIDC-AI/Pixelle-Video&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;AIDC-AI/Pixelle-Video&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Flujo para generar videos cortos desde un tema&lt;/td&gt;
          &lt;td&gt;Creadores de videos cortos y AIGC&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AiToEarn&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/19/aitoearn-ai-content-marketing-agent/&#34; &gt;¿Demasiadas plataformas de contenido? AiToEarn usa Agents para ahorrar trabajo&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/yikart/AiToEarn&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;yikart/AiToEarn&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Distribución multicanal y automatización para creadores&lt;/td&gt;
          &lt;td&gt;Operadores de contenido y creadores&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;modelos-locales-e-inferencia&#34;&gt;Modelos locales e inferencia
&lt;/h2&gt;&lt;p&gt;Esta categoría se centra en ejecución local de modelos y experimentos de inferencia. Actualmente tiene menos proyectos, con &lt;strong&gt;1&lt;/strong&gt; proyecto.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Proyecto&lt;/th&gt;
          &lt;th&gt;Artículo&lt;/th&gt;
          &lt;th&gt;GitHub&lt;/th&gt;
          &lt;th&gt;Uso principal&lt;/th&gt;
          &lt;th&gt;Para quién&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;ds4&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/11/deepseek-v4-flash-ds4-metal/&#34; &gt;Ejecutar DeepSeek 4 localmente: Antirez ds4 en Apple Silicon Mac&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/antirez/ds4&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;antirez/ds4&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Experimentar con DeepSeek 4 en Apple Silicon&lt;/td&gt;
          &lt;td&gt;Usuarios de modelos locales e inferencia&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;aplicaciones-verticales-y-automatización&#34;&gt;Aplicaciones verticales y automatización
&lt;/h2&gt;&lt;p&gt;Esta categoría aplica Agents o AI a finanzas, trading, navegadores, escritorio, monitoreo de comercio electrónico y otros escenarios concretos. Incluye &lt;strong&gt;7&lt;/strong&gt; proyectos.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Proyecto&lt;/th&gt;
          &lt;th&gt;Artículo&lt;/th&gt;
          &lt;th&gt;GitHub&lt;/th&gt;
          &lt;th&gt;Uso principal&lt;/th&gt;
          &lt;th&gt;Para quién&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;TradingAgents-CN&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/01/tradingagents-cn-multi-agent-financial-research-framework/&#34; &gt;TradingAgents-CN: framework multi-agent para investigación de trading financiero en chino&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/hsliuping/TradingAgents-CN&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;hsliuping/TradingAgents-CN&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Framework multi-agent de investigación financiera&lt;/td&gt;
          &lt;td&gt;Investigadores quant, financieros y de Agents&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;FinceptTerminal&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/01/finceptterminal-open-source-financial-terminal/&#34; &gt;FinceptTerminal: terminal financiero open source, investigación quant y workspace AI Agent&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Fincept-Corporation/FinceptTerminal&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Fincept-Corporation/FinceptTerminal&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Terminal financiero, investigación quant y workspace Agent&lt;/td&gt;
          &lt;td&gt;Analistas financieros y usuarios quant&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Anthropic financial-services&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/16/anthropic-financial-services-agent-templates/&#34; &gt;Anthropic financial-services: plantillas reutilizables para escenarios Agent financieros&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/anthropics/financial-services&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;anthropics/financial-services&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Plantillas de Agents para servicios financieros&lt;/td&gt;
          &lt;td&gt;Usuarios que crean soluciones AI financieras&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;ai-goofish-monitor&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/17/ai-goofish-monitor/&#34; &gt;ai-goofish-monitor: sistema open source de monitoreo AI para productos de Xianyu&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Usagi-org/ai-goofish-monitor&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Usagi-org/ai-goofish-monitor&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Monitoreo de productos y automatización de Xianyu&lt;/td&gt;
          &lt;td&gt;Usuarios de monitoreo de segunda mano&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;CloakBrowser&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/19/cloakbrowser-stealth-chromium-browser-automation/&#34; &gt;CloakBrowser: navegador más humano para Playwright y Puppeteer&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/CloakHQ/CloakBrowser&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;CloakHQ/CloakBrowser&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Entorno de automatización de navegador más humano&lt;/td&gt;
          &lt;td&gt;Automatización de navegador y operación Agent&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;UI-TARS-desktop&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/19/ui-tars-desktop-multimodal-ai-agent-stack/&#34; &gt;¿Dejar que AI use el ordenador? UI-TARS-desktop conecta escritorio, navegador y herramientas&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/bytedance/UI-TARS-desktop&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;bytedance/UI-TARS-desktop&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Agent para operar escritorio, navegador y herramientas&lt;/td&gt;
          &lt;td&gt;Usuarios que quieren que AI opere el ordenador&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AI-Trader&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/19/ai-trader-agent-native-trading-platform/&#34; &gt;Qué es AI-Trader: plataforma para señales y simulación de trading con Agents&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/HKUDS/AI-Trader&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;HKUDS/AI-Trader&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Señales de trading y simulación con AI Agent&lt;/td&gt;
          &lt;td&gt;Investigadores de trading y Agents financieros&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;infraestructura-para-aplicaciones-de-ai&#34;&gt;Infraestructura para aplicaciones de AI
&lt;/h2&gt;&lt;p&gt;Esta categoría ofrece componentes base para construir aplicaciones de AI y toolchains Agent. Incluye &lt;strong&gt;3&lt;/strong&gt; proyectos.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Proyecto&lt;/th&gt;
          &lt;th&gt;Artículo&lt;/th&gt;
          &lt;th&gt;GitHub&lt;/th&gt;
          &lt;th&gt;Uso principal&lt;/th&gt;
          &lt;th&gt;Para quién&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Prompt Optimizer&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/01/prompt-optimizer-prompt-engineering-tool/&#34; &gt;Prompt Optimizer: optimización, pruebas y herramientas MCP open source&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/linshenkx/prompt-optimizer&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;linshenkx/prompt-optimizer&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;Optimización de prompts, pruebas y MCP&lt;/td&gt;
          &lt;td&gt;Usuarios de prompt engineering y ajuste de apps&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Playwright CLI&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/04/12/playwright-cli-getting-started/&#34; &gt;Playwright CLI: instalación, skills, sesiones y comandos comunes&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/microsoft/playwright-cli&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;microsoft/playwright-cli&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;CLI de automatización de navegador para coding agents&lt;/td&gt;
          &lt;td&gt;Usuarios Agent que necesitan operar navegador&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Vercel AI SDK&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/17/vercel-ai-sdk-typescript-agent-toolkit/&#34; &gt;Qué es Vercel AI SDK: toolkit unificado para apps AI en TypeScript&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/vercel/ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;vercel/ai&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;SDK para aplicaciones AI en TypeScript&lt;/td&gt;
          &lt;td&gt;Desarrolladores front-end y full-stack&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
</description>
        </item>
        <item>
        <title>Qué es PageIndex: un índice documental RAG basado en razonamiento sin bases vectoriales</title>
        <link>https://knightli.com/es/2026/05/20/vectifyai-pageindex-vectorless-rag/</link>
        <pubDate>Wed, 20 May 2026 23:51:37 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/20/vectifyai-pageindex-vectorless-rag/</guid>
        <description>&lt;p&gt;&lt;code&gt;VectifyAI/PageIndex&lt;/code&gt; es un proyecto RAG interesante. No parte de &amp;ldquo;crear otra base de datos vectorial&amp;rdquo;, sino que primero organiza documentos largos en una estructura de árbol similar a una tabla de contenidos, y luego deja que un LLM haga recuperación basada en razonamiento siguiendo ese árbol.&lt;/p&gt;
&lt;p&gt;Proyecto: &lt;a class=&#34;link&#34; href=&#34;https://github.com/VectifyAI/PageIndex&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;VectifyAI/PageIndex&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;En el momento de preparar este artículo, la página de GitHub muestra unas 31.8k stars y 2.7k forks, con licencia MIT. El README lo define como &lt;code&gt;Vectorless, Reasoning-based RAG&lt;/code&gt;: RAG sin base vectorial y basado en razonamiento.&lt;/p&gt;
&lt;h2 id=&#34;qué-problema-intenta-resolver&#34;&gt;Qué problema intenta resolver
&lt;/h2&gt;&lt;p&gt;El flujo común del RAG tradicional es: dividir en chunks, vectorizar, escribir en una base de datos vectorial y recuperar fragmentos mediante búsqueda por similitud. Es un enfoque simple, general y maduro, pero en documentos profesionales largos suele encontrar varios problemas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La similitud no equivale a relevancia real.&lt;/li&gt;
&lt;li&gt;La estructura del documento se rompe por el chunking, y se pierden relaciones entre secciones.&lt;/li&gt;
&lt;li&gt;Los resultados de recuperación tienen poca explicabilidad; cuesta explicar por qué se eligió ese fragmento.&lt;/li&gt;
&lt;li&gt;En informes financieros, documentos regulatorios, textos legales o manuales técnicos, las preguntas suelen requerir razonamiento entre secciones.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La idea de PageIndex es la inversa: primero organizar el documento como un árbol semántico, y después hacer que el modelo busque como una persona que lee el índice, entra en capítulos y localiza información por niveles.&lt;/p&gt;
&lt;h2 id=&#34;flujo-básico-de-pageindex&#34;&gt;Flujo básico de PageIndex
&lt;/h2&gt;&lt;p&gt;El README divide la recuperación de PageIndex en dos pasos:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Generar para el documento un índice en árbol parecido a &lt;code&gt;Table-of-Contents&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Hacer reasoning-based retrieval mediante búsqueda en árbol.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Este árbol no es un simple directorio de archivos, sino una estructura documental pensada para LLMs. Los nodos pueden incluir títulos, rangos de páginas, resúmenes, nodos hijos y otros datos. Así, al responder una pregunta, el modelo no tiene que enfrentarse de entrada a una gran cantidad de chunks sueltos; primero puede decidir a qué sección entrar y luego seguir buscando hacia abajo.&lt;/p&gt;
&lt;p&gt;Este enfoque encaja mejor con documentos bien estructurados pero muy largos, como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Informes financieros y SEC filings.&lt;/li&gt;
&lt;li&gt;Material regulatorio y documentos de cumplimiento.&lt;/li&gt;
&lt;li&gt;Libros académicos y papers.&lt;/li&gt;
&lt;li&gt;Documentos legales.&lt;/li&gt;
&lt;li&gt;Manuales técnicos y documentación de producto.&lt;/li&gt;
&lt;li&gt;PDFs grandes que superan la ventana de contexto del modelo.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;diferencias-con-el-rag-vectorial-tradicional&#34;&gt;Diferencias con el RAG vectorial tradicional
&lt;/h2&gt;&lt;p&gt;Los principales puntos de PageIndex se pueden resumir en cinco.&lt;/p&gt;
&lt;p&gt;Primero, no necesita Vector DB. Usa estructura documental y razonamiento del LLM para localizar contenido, en lugar de depender solo de búsqueda por similitud vectorial.&lt;/p&gt;
&lt;p&gt;Segundo, no usa chunking tradicional. Los documentos se organizan por secciones naturales, no por fragmentos de longitud fija.&lt;/p&gt;
&lt;p&gt;Tercero, ofrece mejor explicabilidad. La ruta de recuperación puede asociarse con páginas, secciones y nodos del árbol, lo que es más fácil de rastrear que &amp;ldquo;este texto fue encontrado por similitud vectorial&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Cuarto, la recuperación es sensible al contexto. La pregunta, el historial de conversación y el conocimiento del dominio pueden influir en la ruta de búsqueda por árbol.&lt;/p&gt;
&lt;p&gt;Quinto, se parece más a cómo los expertos humanos leen documentos. Normalmente no cortamos un documento entero en trozos para calcular similitud; primero revisamos el índice, ubicamos capítulos y luego leemos detalles.&lt;/p&gt;
&lt;p&gt;Esto no significa que las bases vectoriales no tengan valor. Una forma más precisa de verlo es que PageIndex encaja en escenarios donde &amp;ldquo;la similitud semántica no basta y se necesita estructura más razonamiento&amp;rdquo; para recuperar información en documentos largos.&lt;/p&gt;
&lt;h2 id=&#34;cómo-ejecutarlo-localmente&#34;&gt;Cómo ejecutarlo localmente
&lt;/h2&gt;&lt;p&gt;El README ofrece una ruta de autoalojamiento local. Primero instala dependencias:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip3 install --upgrade -r requirements.txt
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Después crea un archivo &lt;code&gt;.env&lt;/code&gt; en la raíz del proyecto y escribe la LLM API key. El proyecto admite múltiples modelos mediante &lt;code&gt;LiteLLM&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;OPENAI_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_openai_key_here
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Genera la estructura PageIndex para un PDF:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python3 run_pageindex.py --pdf_path /path/to/your/document.pdf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;También puede procesar Markdown:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python3 run_pageindex.py --md_path /path/to/your/document.md
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Parámetros opcionales habituales:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--model
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--toc-check-pages
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--max-pages-per-node
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--max-tokens-per-node
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--if-add-node-id
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--if-add-node-summary
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--if-add-doc-description
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El README también advierte que la versión local de código abierto usa parsing PDF estándar. Para PDFs complejos, el servicio cloud del proyecto ofrece OCR mejorado, construcción de árbol y flujo de recuperación.&lt;/p&gt;
&lt;h2 id=&#34;ejemplo-de-agentic-vectorless-rag&#34;&gt;Ejemplo de Agentic Vectorless RAG
&lt;/h2&gt;&lt;p&gt;El proyecto también incluye un ejemplo de agentic vectorless RAG usando PageIndex autoalojado y OpenAI Agents SDK. Instala la dependencia opcional y ejecútalo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip3 install openai-agents
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python3 examples/agentic_vectorless_rag_demo.py
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El valor de este ejemplo está en que lleva PageIndex de &amp;ldquo;generar un árbol documental&amp;rdquo; a &amp;ldquo;permitir que un Agent use el árbol para recuperar información&amp;rdquo;. Si estás construyendo una base de conocimiento empresarial, Q&amp;amp;A sobre informes financieros, preguntas regulatorias o un Agent de documentación técnica, vale más la pena correr este ejemplo que limitarse a leer el README.&lt;/p&gt;
&lt;h2 id=&#34;servicio-cloud-mcp-y-api&#34;&gt;Servicio cloud, MCP y API
&lt;/h2&gt;&lt;p&gt;PageIndex no es solo un GitHub repo. La página del proyecto también ofrece varias entradas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Autoalojamiento: ejecutar el código abierto en local, adecuado para pruebas y despliegues controlados.&lt;/li&gt;
&lt;li&gt;Chat Platform: una plataforma de análisis documental estilo ChatGPT.&lt;/li&gt;
&lt;li&gt;MCP / API: útil para integrarse con Agents existentes o flujos de automatización.&lt;/li&gt;
&lt;li&gt;Enterprise: orientado a despliegues privados u on-premises.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto muestra que su posición no es la de una simple demo. Busca convertir la &amp;ldquo;recuperación documental basada en razonamiento&amp;rdquo; en una infraestructura de inteligencia documental integrable.&lt;/p&gt;
&lt;h2 id=&#34;escenarios-adecuados&#34;&gt;Escenarios adecuados
&lt;/h2&gt;&lt;p&gt;PageIndex encaja bien con tareas como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Preguntas y respuestas sobre PDFs largos.&lt;/li&gt;
&lt;li&gt;Análisis de informes financieros, informes anuales, prospectos y documentos regulatorios.&lt;/li&gt;
&lt;li&gt;Recuperación en documentos legales y de cumplimiento.&lt;/li&gt;
&lt;li&gt;Q&amp;amp;A sobre manuales técnicos.&lt;/li&gt;
&lt;li&gt;Recuperación en libros o papers con múltiples secciones.&lt;/li&gt;
&lt;li&gt;Bases de conocimiento empresariales que necesitan rutas de recuperación explicables.&lt;/li&gt;
&lt;li&gt;Proporcionar contexto documental estructurado a Agents.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si tu material es corto, tiene poca estructura o es simplemente un FAQ común, embedding + vector DB tradicional puede ser suficiente. Las ventajas de PageIndex aparecen con más claridad en documentos largos, estructura fuerte, dominios profesionales y preguntas que requieren razonamiento.&lt;/p&gt;
&lt;h2 id=&#34;aspectos-a-tener-en-cuenta&#34;&gt;Aspectos a tener en cuenta
&lt;/h2&gt;&lt;p&gt;Primero, PageIndex sigue dependiendo de LLMs. La construcción del árbol, los resúmenes y la calidad de recuperación se ven afectados por la capacidad del modelo, los prompts y la calidad del parsing documental.&lt;/p&gt;
&lt;p&gt;Segundo, la versión local usa parsing PDF estándar. Documentos escaneados complejos, PDFs con muchas tablas y gráficos, o materiales con maquetación desordenada pueden requerir OCR y preprocesamiento más potente.&lt;/p&gt;
&lt;p&gt;Tercero, sin base vectorial no significa coste cero. Construir el árbol también consume llamadas al modelo y tiempo, especialmente en colecciones documentales grandes.&lt;/p&gt;
&lt;p&gt;Cuarto, PageIndex se parece más a un marco de indexación estructural y recuperación por razonamiento. No reemplaza directamente todas las pilas RAG. En producción, también puede combinarse con recuperación vectorial, búsqueda por palabras clave, control de permisos, caché y sistemas de auditoría.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Lo interesante de PageIndex es que desplaza el foco del RAG desde la &amp;ldquo;recuperación por similitud textual&amp;rdquo; hacia &amp;ldquo;estructura documental + razonamiento LLM&amp;rdquo;. Para documentos largos y profesionales, esta dirección merece atención.&lt;/p&gt;
&lt;p&gt;Si estás construyendo Q&amp;amp;A documental empresarial, análisis de informes financieros, recuperación regulatoria o Agents para manuales técnicos, PageIndex puede servir como referencia de una nueva arquitectura RAG: primero dar estructura al documento y luego dejar que el modelo razone sobre esa estructura, en lugar de trocear todo desde el principio y meterlo en una base vectorial.&lt;/p&gt;
&lt;p&gt;Referencias:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/VectifyAI/PageIndex&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;GitHub: VectifyAI/PageIndex&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Cómo usar gratis Gemini 3.5 Flash y Gemini Omni: entradas para usuarios y desarrolladores</title>
        <link>https://knightli.com/es/2026/05/20/gemini-3-5-flash-omni-free-access/</link>
        <pubDate>Wed, 20 May 2026 23:13:35 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/20/gemini-3-5-flash-omni-free-access/</guid>
        <description>&lt;p&gt;Después de que Google lanzara Gemini 3.5 Flash y Gemini Omni, la pregunta práctica no es el benchmark, sino cómo pueden usarlos realmente los usuarios normales y los desarrolladores, qué entradas son gratuitas y cuáles son solo pruebas de bajo umbral.&lt;/p&gt;
&lt;p&gt;Resumen rápido:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Para chat, escritura, comprensión de imágenes y preguntas cotidianas: primero Gemini app.&lt;/li&gt;
&lt;li&gt;Para probar parámetros, prompts y entradas multimodales de Gemini 3.5 Flash: Google AI Studio.&lt;/li&gt;
&lt;li&gt;Para llamar a Gemini 3.5 Flash desde código: crear una API key en AI Studio.&lt;/li&gt;
&lt;li&gt;Para probarlo gratis desde la terminal: mirar Gemini CLI.&lt;/li&gt;
&lt;li&gt;Para probar la edición de video de Gemini Omni: empezar por Gemini app y Google Flow.&lt;/li&gt;
&lt;li&gt;Para producción real: no depender de cuotas gratuitas; pasar a una API de pago o Vertex AI.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Nota: las cuotas gratuitas, disponibilidad regional, niveles de suscripción y menús de modelos cambian con el tiempo. Este artículo fue escrito el 20 de mayo de 2026. Antes de usarlo formalmente, conviene revisar las páginas actuales de Google.&lt;/p&gt;
&lt;h2 id=&#34;método-gratuito-1-para-gemini-35-flash-gemini-app&#34;&gt;Método gratuito 1 para Gemini 3.5 Flash: Gemini app
&lt;/h2&gt;&lt;p&gt;La entrada más sencilla es Gemini app:&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://gemini.google.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://gemini.google.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;El uso es directo:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Abrir Gemini.&lt;/li&gt;
&lt;li&gt;Iniciar sesión con una cuenta de Google.&lt;/li&gt;
&lt;li&gt;Buscar &lt;code&gt;3.5 Flash&lt;/code&gt; en el selector de modelos.&lt;/li&gt;
&lt;li&gt;Empezar a conversar.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Esta entrada es adecuada para usuarios normales. Puedes usarla para escribir, resumir, entender imágenes, analizar archivos, responder preguntas cotidianas y hacer planificación simple. Según información pública, Gemini 3.5 Flash ya está disponible para usuarios globales y puede seleccionarse desde el menú de modelos de Gemini.&lt;/p&gt;
&lt;p&gt;Los límites también son claros: los usuarios gratuitos suelen tener límites diarios de mensajes, región y funciones. Si superas el límite, tendrás que esperar a que se renueve la cuota o actualizar la suscripción.&lt;/p&gt;
&lt;h2 id=&#34;método-gratuito-2-para-gemini-35-flash-google-ai-studio&#34;&gt;Método gratuito 2 para Gemini 3.5 Flash: Google AI Studio
&lt;/h2&gt;&lt;p&gt;Si no solo quieres conversar, sino ajustar prompts, revisar parámetros o probar salida estructurada, Google AI Studio encaja mejor:&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://aistudio.google.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://aistudio.google.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Flujo básico:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Iniciar sesión en Google AI Studio.&lt;/li&gt;
&lt;li&gt;Crear un nuevo prompt.&lt;/li&gt;
&lt;li&gt;Seleccionar &lt;code&gt;gemini-3.5-flash&lt;/code&gt; en el menú de modelos.&lt;/li&gt;
&lt;li&gt;Escribir el prompt y ejecutarlo.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;La ventaja de AI Studio es el mayor control. Puedes ajustar temperatura, instrucciones del sistema, salida estructurada y entrada con múltiples imágenes, y también exportar el prompt probado como código o llamada API.&lt;/p&gt;
&lt;p&gt;Para desarrolladores, AI Studio es un banco de pruebas gratuito. Ajustar primero el prompt y el formato de entrada aquí ayuda a desperdiciar menos cuota cuando pases a la integración por API.&lt;/p&gt;
&lt;h2 id=&#34;método-gratuito-3-para-gemini-35-flash-api-key-gratuita&#34;&gt;Método gratuito 3 para Gemini 3.5 Flash: API key gratuita
&lt;/h2&gt;&lt;p&gt;Lo que más interesa a los desarrolladores es la API. AI Studio permite crear una Gemini API key para llamar a &lt;code&gt;gemini-3.5-flash&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Flujo básico:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Abrir Google AI Studio.&lt;/li&gt;
&lt;li&gt;Buscar &lt;code&gt;Get API key&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Elegir o crear un proyecto.&lt;/li&gt;
&lt;li&gt;Crear una API key.&lt;/li&gt;
&lt;li&gt;Guardar la key en una variable de entorno local.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Ejemplo en Python:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;os&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;google&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;genai&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;client&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;genai&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Client&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;api_key&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;os&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;environ&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;GEMINI_API_KEY&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;response&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;models&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;generate_content&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;gemini-3.5-flash&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;contents&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Explica en tres frases para qué escenarios es adecuado Gemini 3.5 Flash.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;text&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Ejemplo en Node.js:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;GoogleGenAI&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;@google/genai&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;ai&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;GoogleGenAI&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;({&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;apiKey&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;process&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;env&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;GEMINI_API_KEY&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;response&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;ai&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;models&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;generateContent&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;({&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nx&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;gemini-3.5-flash&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nx&#34;&gt;contents&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Explica en tres frases para qué escenarios es adecuado Gemini 3.5 Flash.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;console&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;log&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;text&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Ejemplo con &lt;code&gt;curl&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://generativelanguage.googleapis.com/v1beta/models/gemini-3.5-flash:generateContent&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -H &lt;span class=&#34;s2&#34;&gt;&amp;#34;x-goog-api-key: &lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$GEMINI_API_KEY&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -H &lt;span class=&#34;s2&#34;&gt;&amp;#34;Content-Type: application/json&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -d &lt;span class=&#34;s1&#34;&gt;&amp;#39;{&amp;#34;contents&amp;#34;:[{&amp;#34;parts&amp;#34;:[{&amp;#34;text&amp;#34;:&amp;#34;Hello Gemini 3.5 Flash&amp;#34;}]}]}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;La información pública indica que el nivel gratuito de AI Studio suele ofrecer a los modelos Gemini Flash cierta cuota diaria de solicitudes. La cifra puede cambiar según tiempo, región y estado de la cuenta. Se mencionan con frecuencia cifras como unas 1.500 solicitudes al día, límites por minuto y límites de token. No conviene fijar esos números en un plan de producción; antes de lanzar algo, revisa las páginas actuales de precios y límites de Google AI.&lt;/p&gt;
&lt;h2 id=&#34;método-gratuito-4-para-gemini-35-flash-gemini-cli&#34;&gt;Método gratuito 4 para Gemini 3.5 Flash: Gemini CLI
&lt;/h2&gt;&lt;p&gt;Si te gusta la línea de comandos, puedes mirar Gemini CLI. Sirve para scripts temporales, resúmenes de repositorios, lectura de archivos y preguntas rápidas desde la terminal.&lt;/p&gt;
&lt;p&gt;La instalación suele ser:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -g @google/gemini-cli
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Después ejecuta:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gemini
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;La CLI encaja mejor con el uso diario de desarrolladores individuales, no con integraciones de producción. En producción conviene usar API keys, cuentas de servicio, control de permisos y formas de llamada auditables.&lt;/p&gt;
&lt;h2 id=&#34;acceso-gratuito-o-de-baja-fricción-a-gemini-omni-gemini-app-y-google-flow&#34;&gt;Acceso gratuito o de baja fricción a Gemini Omni: Gemini app y Google Flow
&lt;/h2&gt;&lt;p&gt;Gemini Omni es un modelo multimodal para creación y edición de video. Su capacidad central no es la pregunta-respuesta de texto común, sino la edición de video en múltiples turnos mediante lenguaje natural, con referencias de imagen, texto, video y audio.&lt;/p&gt;
&lt;p&gt;La página de Google DeepMind menciona estas entradas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Gemini app.&lt;/li&gt;
&lt;li&gt;Google Flow.&lt;/li&gt;
&lt;li&gt;YouTube Shorts.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La página también indica que se requiere una suscripción a Google AI y que las funciones varían según el nivel de suscripción y la región. Por eso, el &amp;ldquo;uso gratuito&amp;rdquo; de Gemini Omni debe entenderse con cuidado: algunas entradas podrían permitir a usuarios gratuitos ver o probar parte de la experiencia, pero la edición completa de video puede requerir suscripción, disponibilidad regional o despliegue gradual.&lt;/p&gt;
&lt;p&gt;Si solo quieres probarlo, sigue este orden:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Abre primero Gemini app y revisa si aparece Gemini Omni o una entrada relacionada con edición de video.&lt;/li&gt;
&lt;li&gt;Luego abre Google Flow: &lt;a class=&#34;link&#34; href=&#34;https://flow.google/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://flow.google/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Si creas videos cortos, observa si aparecen funciones de edición relacionadas con Omni en YouTube Shorts.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si la entrada no aparece, normalmente no significa que hayas hecho algo mal. Puede depender de la cuenta, región, nivel de suscripción o grupo de despliegue.&lt;/p&gt;
&lt;h2 id=&#34;cómo-conviene-usar-gemini-omni&#34;&gt;Cómo conviene usar Gemini Omni
&lt;/h2&gt;&lt;p&gt;Gemini Omni es más adecuado para creadores que para chat común.&lt;/p&gt;
&lt;p&gt;Puedes probar estas direcciones:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Subir o elegir un video y pedirle que cambie el estilo.&lt;/li&gt;
&lt;li&gt;Hacer que una acción concreta del video sea más exagerada.&lt;/li&gt;
&lt;li&gt;Usar una imagen de referencia para reemplazar un objeto o personaje de la escena.&lt;/li&gt;
&lt;li&gt;Modificar cámara, acción, entorno y estilo en múltiples turnos.&lt;/li&gt;
&lt;li&gt;Combinar bocetos, imágenes de referencia, audio o video en una nueva salida.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El prompt puede escribirse como una instrucción para un editor:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Mantén sin cambios la persona y la estructura de la habitación del video original. Cambia el efecto después de tocar el espejo por ondas líquidas. El movimiento debe ser natural y la luz no debe cambiar de forma brusca.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;En edición de múltiples turnos, no metas demasiadas solicitudes de una sola vez. Un enfoque más estable es:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Cambiar primero la acción principal.&lt;/li&gt;
&lt;li&gt;Cambiar después el estilo.&lt;/li&gt;
&lt;li&gt;Ajustar luego el ángulo de cámara.&lt;/li&gt;
&lt;li&gt;Ajustar al final sonido, texto y ritmo.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Así es más fácil mantener la coherencia y ubicar en qué paso aparece un problema.&lt;/p&gt;
&lt;h2 id=&#34;errores-comunes-al-usar-opciones-gratuitas&#34;&gt;Errores comunes al usar opciones gratuitas
&lt;/h2&gt;&lt;p&gt;Primero, la cuota gratuita no es cuota de producción. Una API key gratuita sirve para pruebas, herramientas personales y prototipos, no para prometer un servicio estable.&lt;/p&gt;
&lt;p&gt;Segundo, no envíes datos sensibles a entradas gratuitas o de terceros. Esto incluye código no publicado, datos de clientes, contratos, claves, hojas financieras y documentos internos.&lt;/p&gt;
&lt;p&gt;Tercero, revisa la configuración de uso de datos. Los niveles gratuitos pueden tener políticas distintas de uso de datos; antes de usar, revisa la configuración en AI Studio o en tu cuenta de Google.&lt;/p&gt;
&lt;p&gt;Cuarto, las capacidades de video suelen estar más limitadas que las de texto. Funciones como Gemini Omni pueden depender de suscripción, región, cola, duración, resolución y políticas de seguridad de contenido.&lt;/p&gt;
&lt;p&gt;Quinto, cuidado con las &amp;ldquo;API ilimitadas gratis&amp;rdquo; de terceros. Muchas pasarelas limitan velocidad, reenvían solicitudes, registran logs o exigen métodos de pago poco transparentes. No es recomendable usarlas para tareas sensibles.&lt;/p&gt;
&lt;h2 id=&#34;qué-entrada-elegir&#34;&gt;Qué entrada elegir
&lt;/h2&gt;&lt;p&gt;Si eres usuario normal:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Gemini 3.5 Flash: usa Gemini app.&lt;/li&gt;
&lt;li&gt;Gemini Omni: mira primero Gemini app y luego Google Flow.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si eres creador:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Usa Google Flow para probar flujos de video con Omni.&lt;/li&gt;
&lt;li&gt;Usa Gemini app para guiones, storyboards, prompts y descripciones de materiales.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si eres desarrollador:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Usa AI Studio para depurar prompts.&lt;/li&gt;
&lt;li&gt;Usa una API key para integrar &lt;code&gt;gemini-3.5-flash&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Usa Gemini CLI para flujos personales en terminal.&lt;/li&gt;
&lt;li&gt;Para producción, considera Vertex AI o la API de pago.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si eres empresa:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No dependas de cuotas gratuitas.&lt;/li&gt;
&lt;li&gt;Prioriza permisos, logs, auditoría, residencia de datos, cumplimiento y gestión de claves.&lt;/li&gt;
&lt;li&gt;En generación y edición de video, añade marcas de agua, revisión de contenido y procesos de derechos de autor.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Las rutas gratuitas para Gemini 3.5 Flash son relativamente claras: Gemini app, Google AI Studio, API key de AI Studio y Gemini CLI pueden servir como entradas de bajo umbral. Es adecuado para chat, escritura, programación, prototipos de Agent y pruebas multimodales.&lt;/p&gt;
&lt;p&gt;Gemini Omni se centra en edición de video y creación multimodal. Sus entradas principales están en Gemini app, Google Flow y YouTube Shorts, pero las capacidades completas probablemente dependan más de suscripción y región. Es adecuado para que los creadores empiecen con pruebas y validación de conceptos, no para planificar desde el principio un servicio de producción estable.&lt;/p&gt;
&lt;p&gt;La estrategia más prudente es: probar primero tareas de texto y código con el nivel gratuito de Gemini 3.5 Flash; validar efectos de creación de video con Gemini Omni en Gemini app o Flow; y, cuando haya que lanzar algo real, pasar a una solución formal con auditoría, facturación y permisos controlados.&lt;/p&gt;
&lt;p&gt;Referencias:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://deepmind.google/models/gemini/flash/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Google DeepMind: Gemini 3.5 Flash&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://deepmind.google/models/gemini-omni/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Google DeepMind: Gemini Omni&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://apidog.com/blog/how-to-use-gemini-3-5-for-free/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Apidog: How to Use Gemini 3.5 Flash for Free&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.freedidi.com/24249.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;enlace original de freedidi&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Qué es Gemini Omni: análisis completo del modelo de Google para edición de video con IA en múltiples turnos</title>
        <link>https://knightli.com/es/2026/05/20/google-gemini-omni-video-editing/</link>
        <pubDate>Wed, 20 May 2026 23:11:58 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/20/google-gemini-omni-video-editing/</guid>
        <description>&lt;p&gt;Google DeepMind publicó la página de &lt;code&gt;Gemini Omni&lt;/code&gt;. Su posición es directa: crear contenido a partir de cualquier entrada, con el foco inicial puesto en el video.&lt;/p&gt;
&lt;p&gt;Si Nano Banana está más orientado a la generación y edición de imágenes, Gemini Omni se parece más a un modelo de edición multimodal para video. Los usuarios pueden modificar un video paso a paso con lenguaje natural, haciendo que cada cambio posterior se base en el anterior, mientras intenta mantener la coherencia de escenas, personas, acciones y lógica visual.&lt;/p&gt;
&lt;p&gt;Página del proyecto: &lt;a class=&#34;link&#34; href=&#34;https://deepmind.google/models/gemini-omni/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://deepmind.google/models/gemini-omni/&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;el-problema-central-que-intenta-resolver&#34;&gt;El problema central que intenta resolver
&lt;/h2&gt;&lt;p&gt;La edición de video tradicional suele requerir líneas de tiempo, capas, máscaras, fotogramas clave, corrección de color, pistas de audio y mucho trabajo manual. Las herramientas de generación de video con IA ya pueden crear clips desde prompts, pero suelen tener dos problemas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Después de una generación inicial, no es fácil hacer ajustes precisos.&lt;/li&gt;
&lt;li&gt;En ediciones de múltiples turnos, los personajes, escenas, estilos y movimientos pueden desviarse.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Gemini Omni apunta al segundo paso: no solo generar un video, sino permitir que el usuario siga pidiendo cambios como si hablara con un editor.&lt;/p&gt;
&lt;p&gt;La página lo describe como una forma de editar cualquier video mediante una conversación natural y por pasos. Cada edición se basa en el resultado anterior, con el objetivo de mantener una escena coherente y unificada.&lt;/p&gt;
&lt;h2 id=&#34;capacidades-principales&#34;&gt;Capacidades principales
&lt;/h2&gt;&lt;p&gt;Las capacidades de Gemini Omni se pueden agrupar en varias áreas.&lt;/p&gt;
&lt;p&gt;La primera es la edición de video con lenguaje natural. El usuario puede pedir directamente al modelo que cambie el estilo visual, el movimiento o los efectos de un video. Por ejemplo, puede hacer que un espejo ondule como líquido, convertir a una persona en dibujo lineal, muñeco de fieltro o estructura holográfica transparente, o transformar todo el entorno en 3D voxel art.&lt;/p&gt;
&lt;p&gt;La segunda es la reconstrucción de acciones. Puede cambiar lo que ocurre en un video, como agrandar el agujero formado por una mano, hacer que un juguete emita el sonido del animal correspondiente o lograr que las luces de un edificio reaccionen a la música.&lt;/p&gt;
&lt;p&gt;La tercera es la edición de video real basada en imágenes de referencia. El usuario puede proporcionar una imagen de referencia y pedir al modelo que coloque un edificio, un sol, una aeronave u otro objeto dentro de una escena de video real.&lt;/p&gt;
&lt;p&gt;La cuarta es mantener la coherencia en ediciones de múltiples turnos. La página muestra un flujo continuo: mover a una violinista a un entorno de referencia, hacer desaparecer el violín y después cambiar la cámara a un ángulo sobre el hombro. Esto se acerca más a un proceso creativo real que a un prompt de una sola vez.&lt;/p&gt;
&lt;p&gt;La quinta es la referencia con múltiples entradas. Gemini Omni puede integrar imagen, texto, video y audio en una sola salida, con soporte para transferencia de estilo, transferencia de movimiento, reemplazo de personajes y conversión de bocetos a video.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-enfatiza-el-conocimiento-del-mundo&#34;&gt;Por qué enfatiza el conocimiento del mundo
&lt;/h2&gt;&lt;p&gt;Google subraya varias veces que Gemini Omni no solo busca que las imágenes se vean reales. También combina el conocimiento del mundo de Gemini, intuición física, historia, ciencia y lógica narrativa.&lt;/p&gt;
&lt;p&gt;Esto es importante. Si un modelo de video solo optimiza la calidad visual, puede producir movimientos ilógicos, relaciones confusas entre objetos o falta de sincronía entre texto e imagen. El objetivo de Gemini Omni es que el video no solo parezca correcto, sino que también sea más coherente en historia, física y significado.&lt;/p&gt;
&lt;p&gt;Algunos ejemplos de la página son:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Una canica rodando por una pista de reacción en cadena.&lt;/li&gt;
&lt;li&gt;Una explicación de plegamiento de proteínas con claymation.&lt;/li&gt;
&lt;li&gt;Una explicación estilo stop motion de cómo funciona el hipocampo.&lt;/li&gt;
&lt;li&gt;Letras que aparecen asociadas a objetos dentro de la escena.&lt;/li&gt;
&lt;li&gt;Palabras en pantalla que aparecen una por una siguiendo el ritmo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estos ejemplos muestran que no es solo una herramienta de efectos para videos cortos. Intenta unir expresión de conocimiento, narrativa y generación audiovisual.&lt;/p&gt;
&lt;h2 id=&#34;relación-con-veo-flow-y-nano-banana&#34;&gt;Relación con Veo, Flow y Nano Banana
&lt;/h2&gt;&lt;p&gt;Dentro de la línea actual de productos de Google, Gemini Omni parece una capa de creación y edición multimodal.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Veo&lt;/code&gt; está más centrado en el modelo de generación de video en sí, con énfasis en video cinematográfico y generación de audio. &lt;code&gt;Google Flow&lt;/code&gt; es un estudio creativo con IA para creadores, útil para organizar tomas, materiales y proyectos de video. &lt;code&gt;Nano Banana&lt;/code&gt; se orienta más a creación de imágenes y edición detallada. Gemini Omni, en cambio, enfatiza la edición multimodal desde cualquier entrada hacia una salida coherente, especialmente el control de video en múltiples turnos mediante lenguaje natural.&lt;/p&gt;
&lt;p&gt;Una forma simple de verlo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Para generar video de alta calidad: mirar Veo.&lt;/li&gt;
&lt;li&gt;Para organizar proyectos de video dentro de un flujo creativo: mirar Google Flow.&lt;/li&gt;
&lt;li&gt;Para editar imágenes: mirar Nano Banana.&lt;/li&gt;
&lt;li&gt;Para modificar video de forma conversacional usando imágenes, texto, video y audio como referencia: mirar Gemini Omni.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;formas-de-acceso&#34;&gt;Formas de acceso
&lt;/h2&gt;&lt;p&gt;La página menciona estos puntos de acceso:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Gemini app.&lt;/li&gt;
&lt;li&gt;Google Flow.&lt;/li&gt;
&lt;li&gt;YouTube Shorts.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Sin embargo, también indica que se requiere una suscripción a Google AI, y que las funciones varían según el nivel de suscripción y la región. Es decir, no todos los usuarios de todas las regiones podrán usar de inmediato todas las capacidades.&lt;/p&gt;
&lt;p&gt;Para creadores, la entrada más interesante probablemente sea Google Flow, porque está más cerca de un espacio creativo completo. Para usuarios generales, Gemini app y YouTube Shorts pueden ser formas más sencillas de probarlo.&lt;/p&gt;
&lt;h2 id=&#34;seguridad-y-etiquetado-de-contenido&#34;&gt;Seguridad y etiquetado de contenido
&lt;/h2&gt;&lt;p&gt;La página de Gemini Omni dedica una sección al proceso de seguridad. El desarrollo de Gemini Omni Flash se realizó en colaboración con equipos internos de seguridad y responsabilidad, e incluyó evaluaciones automatizadas, evaluaciones humanas, red teaming humano, red teaming automatizado y revisión ética y de seguridad antes del lanzamiento.&lt;/p&gt;
&lt;p&gt;En transparencia de contenido, la página señala que el contenido creado o editado con Omni en Gemini app, Google Flow o YouTube incluirá marcas de agua digitales imperceptibles &lt;code&gt;SynthID&lt;/code&gt; y &lt;code&gt;C2PA Content Credentials&lt;/code&gt;. Los usuarios podrán verificar contenido desde Gemini app, con expansión posterior a Chrome y Search.&lt;/p&gt;
&lt;p&gt;Esto es especialmente relevante para modelos de video. Cuanto más realistas sean la generación y edición de video, más importantes serán el etiquetado de origen, la prevención de abuso y las herramientas de verificación.&lt;/p&gt;
&lt;h2 id=&#34;para-quién-sirve&#34;&gt;Para quién sirve
&lt;/h2&gt;&lt;p&gt;Gemini Omni encaja con varios tipos de usuarios:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Creadores de contenido que quieren modificar video rápidamente con lenguaje natural.&lt;/li&gt;
&lt;li&gt;Equipos de diseño que necesitan combinar bocetos, imágenes de referencia, audio y material de video en una pieza final.&lt;/li&gt;
&lt;li&gt;Personas que crean videos cortos, conceptos publicitarios, explicadores educativos y borradores visuales de producto.&lt;/li&gt;
&lt;li&gt;Creadores que quieren construir flujos de trabajo de video con IA en Google Flow.&lt;/li&gt;
&lt;li&gt;Desarrolladores e investigadores que siguen los límites de la edición de video multimodal.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pero no sirve para todos los escenarios. Películas comerciales serias, visuales principales de marca, producción audiovisual y videos de lanzamiento de producto siguen requiriendo revisión humana, control de derechos, verificación de hechos y gestión de materiales. La IA puede acelerar claramente la generación de conceptos y la iteración del primer borrador, pero no debe reemplazar la revisión final.&lt;/p&gt;
&lt;h2 id=&#34;cómo-interpretar-gemini-omni&#34;&gt;Cómo interpretar Gemini Omni
&lt;/h2&gt;&lt;p&gt;La importancia de Gemini Omni está en que mueve el video con IA desde la &amp;ldquo;generación de una sola vez&amp;rdquo; hacia la &amp;ldquo;edición conversacional&amp;rdquo;. Eso se acerca más al proceso creativo real que simplemente mejorar la calidad de imagen.&lt;/p&gt;
&lt;p&gt;Si funciona de manera estable en edición de múltiples turnos, consistencia, control de referencias, sincronización de audio y video, y etiquetado de contenido, la forma de usar herramientas de video con IA cambiará. Los usuarios ya no escribirán solo un prompt largo esperando acertar; revisarán escenas, acciones, estilos y narrativas paso a paso como directores, editores y diseñadores.&lt;/p&gt;
&lt;p&gt;Todavía habrá que observar disponibilidad real, precio, restricciones regionales, duración generable, resolución, política de derechos y reglas de uso comercial. Para creadores comunes, el punto más práctico será comprobar si Gemini Omni puede completar de forma estable ediciones de video en múltiples turnos dentro de Google Flow y Gemini app.&lt;/p&gt;
&lt;p&gt;Referencias:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://deepmind.google/models/gemini-omni/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Google DeepMind: Gemini Omni&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>¿Dejar que la IA opere el ordenador? UI-TARS-desktop conecta escritorio, navegador y herramientas</title>
        <link>https://knightli.com/es/2026/05/19/ui-tars-desktop-multimodal-ai-agent-stack/</link>
        <pubDate>Tue, 19 May 2026 10:56:50 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/19/ui-tars-desktop-multimodal-ai-agent-stack/</guid>
        <description>&lt;p&gt;&lt;code&gt;bytedance/UI-TARS-desktop&lt;/code&gt; es el proyecto open source de ByteDance para AI Agents multimodales. No es solo una aplicación de escritorio, sino un stack de agentes. El README actual contiene principalmente dos direcciones: &lt;code&gt;Agent TARS&lt;/code&gt; y &lt;code&gt;UI-TARS Desktop&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;URL del proyecto: &lt;a class=&#34;link&#34; href=&#34;https://github.com/bytedance/UI-TARS-desktop&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/bytedance/UI-TARS-desktop&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Sitio oficial: &lt;a class=&#34;link&#34; href=&#34;https://agent-tars.com&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://agent-tars.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;En el momento de escribir este artículo, la API de GitHub mostraba unas 34k estrellas, TypeScript como lenguaje principal y licencia Apache-2.0. El README lo describe como &amp;ldquo;Open-Source Multimodal AI Agent Stack&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;diferencia-entre-agent-tars-y-ui-tars-desktop&#34;&gt;Diferencia entre Agent TARS y UI-TARS Desktop
&lt;/h2&gt;&lt;p&gt;El README coloca ambos proyectos en una misma tabla comparativa:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Agent TARS&lt;/code&gt;: stack general de AI Agent multimodal que conecta GUI Agent, visión, terminal, navegador y flujos de producto.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;UI-TARS Desktop&lt;/code&gt;: aplicación de escritorio basada en modelos UI-TARS, con capacidades nativas de GUI Agent para operar ordenadores locales o remotos y navegadores.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En pocas palabras, Agent TARS se parece más a un runtime general de agentes, mientras que UI-TARS Desktop es la entrada de operación GUI en escritorio.&lt;/p&gt;
&lt;h2 id=&#34;qué-puede-hacer-agent-tars&#34;&gt;Qué puede hacer Agent TARS
&lt;/h2&gt;&lt;p&gt;Agent TARS ofrece principalmente CLI y Web UI. Su objetivo es permitir que modelos multimodales completen flujos de tareas más cercanos a la operación humana mediante MCP y distintas herramientas.&lt;/p&gt;
&lt;p&gt;El README lista capacidades como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Arranque CLI con un comando, con Web UI headful y servidor headless.&lt;/li&gt;
&lt;li&gt;Control híbrido de navegador mediante GUI Agent, DOM o estrategias mixtas.&lt;/li&gt;
&lt;li&gt;Event Stream para trazado y depuración.&lt;/li&gt;
&lt;li&gt;Integración MCP para montar MCP Servers y herramientas reales.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Inicio rápido:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npx @agent-tars/cli@latest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Instalación global:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install @agent-tars/cli@latest -g
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Ejecución con proveedor de modelo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;agent-tars --provider volcengine --model doubao-1-5-thinking-vision-pro-250428 --apiKey your-api-key
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;agent-tars --provider anthropic --model claude-3-7-sonnet-latest --apiKey your-api-key
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;qué-puede-hacer-ui-tars-desktop&#34;&gt;Qué puede hacer UI-TARS Desktop
&lt;/h2&gt;&lt;p&gt;UI-TARS Desktop es un GUI Agent de escritorio. Basado en UI-TARS y las familias Seed-1.5-VL / 1.6, se centra en que el modelo entienda la pantalla y ejecute acciones de ratón y teclado.&lt;/p&gt;
&lt;p&gt;El README menciona:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Control con lenguaje natural.&lt;/li&gt;
&lt;li&gt;Capturas de pantalla y reconocimiento visual.&lt;/li&gt;
&lt;li&gt;Control preciso de ratón y teclado.&lt;/li&gt;
&lt;li&gt;Soporte multiplataforma para Windows, macOS y navegador.&lt;/li&gt;
&lt;li&gt;Feedback y estado en tiempo real.&lt;/li&gt;
&lt;li&gt;Procesamiento local con énfasis en privacidad y seguridad.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ejemplos de tareas incluyen cambiar ajustes de VS Code, revisar issues de GitHub y operar ordenadores o navegadores remotos.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-importan-los-gui-agents&#34;&gt;Por qué importan los GUI Agents
&lt;/h2&gt;&lt;p&gt;La automatización tradicional depende de APIs, DOM o scripts. Un GUI Agent parte de la interfaz: ve botones, campos, menús y estado, y luego opera con ratón y teclado.&lt;/p&gt;
&lt;p&gt;Tiene dos valores. Primero, muchas aplicaciones no tienen APIs estables o las APIs no cubren todo el flujo. Un GUI Agent puede actuar sobre la misma superficie que usa una persona.&lt;/p&gt;
&lt;p&gt;Segundo, los modelos multimodales pueden manejar capturas, documentos, páginas web e interfaces de aplicaciones, combinando comprensión visual y ejecución.&lt;/p&gt;
&lt;p&gt;También hay límites. Las operaciones GUI dependen de resolución, idioma, cambios de layout, pop-ups y latencia. En producción hacen falta permisos, confirmaciones y planes de reversión.&lt;/p&gt;
&lt;h2 id=&#34;relación-con-mcp&#34;&gt;Relación con MCP
&lt;/h2&gt;&lt;p&gt;Agent TARS enfatiza la integración MCP. MCP ayuda porque da a los agentes una forma unificada de llamar navegadores, archivos, línea de comandos, bases de datos, servicios internos y otras herramientas.&lt;/p&gt;
&lt;p&gt;Para tareas complejas, hacer clic en la GUI no basta. Un patrón más estable suele ser:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Usar APIs cuando existen.&lt;/li&gt;
&lt;li&gt;Usar visión cuando hay que entender el estado de la página.&lt;/li&gt;
&lt;li&gt;Usar control de navegador cuando se necesita interacción web real.&lt;/li&gt;
&lt;li&gt;Usar GUI Agent cuando hay que operar software local.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Proyectos como UI-TARS-desktop exploran cómo juntar esas capacidades en un mismo stack de agentes.&lt;/p&gt;
&lt;h2 id=&#34;precauciones&#34;&gt;Precauciones
&lt;/h2&gt;&lt;p&gt;Los agentes de escritorio tienen riesgo de ejecución. Pueden operar ratón, teclado y navegador, así que hay que limitar permisos para evitar cambios accidentales en archivos, cuentas, pagos o sistemas de producción.&lt;/p&gt;
&lt;p&gt;El control de ordenadores y navegadores remotos necesita límites de seguridad claros. No se deben exponer endpoints de control sin autenticación a internet.&lt;/p&gt;
&lt;p&gt;Los modelos multimodales pueden leer mal la interfaz. Operaciones críticas como borrar, enviar, pagar, publicar o ejecutar trades deberían requerir confirmación humana.&lt;/p&gt;
&lt;h2 id=&#34;para-quién-es&#34;&gt;Para quién es
&lt;/h2&gt;&lt;p&gt;UI-TARS-desktop encaja con desarrolladores que exploran GUI Agents, equipos que construyen asistentes para flujos de escritorio e investigadores que comparan navegador, DOM, MCP y control visual. Todavía es más una base para desarrolladores que un asistente de consumo simple.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;UI-TARS-desktop merece atención porque mueve los AI Agents desde &amp;ldquo;responder en chat&amp;rdquo; hacia &amp;ldquo;ver la pantalla y operar herramientas&amp;rdquo;. Su valor no está solo en controlar el escritorio, sino en combinar GUI, navegador, terminal y MCP dentro de un mismo stack.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>¿Demasiadas plataformas para publicar? AiToEarn quiere ahorrar trabajo a creadores con AI Agents</title>
        <link>https://knightli.com/es/2026/05/19/aitoearn-ai-content-marketing-agent/</link>
        <pubDate>Tue, 19 May 2026 10:56:50 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/19/aitoearn-ai-content-marketing-agent/</guid>
        <description>&lt;p&gt;&lt;code&gt;yikart/AiToEarn&lt;/code&gt; es un proyecto de marketing de contenidos con IA para creadores, marcas y empresas unipersonales. Intenta reunir creación, publicación, interacción y monetización en un mismo flujo de agentes, cubriendo plataformas como Douyin, Xiaohongshu, Kuaishou, Bilibili, WeChat Channels, TikTok, YouTube, Facebook, Instagram, Threads, X, Pinterest y LinkedIn.&lt;/p&gt;
&lt;p&gt;URL del proyecto: &lt;a class=&#34;link&#34; href=&#34;https://github.com/yikart/AiToEarn&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/yikart/AiToEarn&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Sitio oficial: &lt;a class=&#34;link&#34; href=&#34;https://aitoearn.ai/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://aitoearn.ai/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;En el momento de escribir este artículo, la API de GitHub mostraba unas 15k estrellas, TypeScript como lenguaje principal y licencia MIT. El README lo describe como una plataforma de agentes de marketing de contenidos para OPC, creadores, marcas y empresas.&lt;/p&gt;
&lt;h2 id=&#34;posicionamiento&#34;&gt;Posicionamiento
&lt;/h2&gt;&lt;p&gt;AiToEarn no es solo un generador de textos ni una herramienta de programación de publicaciones. Divide el marketing de contenidos en cuatro capacidades de agente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Monetize: monetización de contenidos.&lt;/li&gt;
&lt;li&gt;Publish: publicación multiplataforma.&lt;/li&gt;
&lt;li&gt;Engage: interacción y operaciones de comunidad.&lt;/li&gt;
&lt;li&gt;Create: creación de contenidos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Este enfoque encaja con el flujo real de muchos creadores. El problema no es solo si la IA puede escribir un texto, sino qué ocurre después: calendario, distribución, respuestas, revisión y conexión con objetivos comerciales.&lt;/p&gt;
&lt;h2 id=&#34;funciones-principales&#34;&gt;Funciones principales
&lt;/h2&gt;&lt;h3 id=&#34;monetize-monetizar-contenido&#34;&gt;Monetize: monetizar contenido
&lt;/h3&gt;&lt;p&gt;AiToEarn ofrece capacidades de monetización orientadas a tareas promocionales. El README menciona tres modelos de liquidación:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Modelo&lt;/th&gt;
          &lt;th&gt;Nombre completo&lt;/th&gt;
          &lt;th&gt;Significado&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;CPS&lt;/td&gt;
          &lt;td&gt;Cost Per Sale&lt;/td&gt;
          &lt;td&gt;Liquidación por ventas&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;CPE&lt;/td&gt;
          &lt;td&gt;Cost Per Engagement&lt;/td&gt;
          &lt;td&gt;Liquidación por interacción&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;CPM&lt;/td&gt;
          &lt;td&gt;Cost Per Mille&lt;/td&gt;
          &lt;td&gt;Liquidación por impresiones o reproducciones&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Esta parte se parece a un mercado de tareas de contenido que conecta necesidades de marcas con la distribución de creadores.&lt;/p&gt;
&lt;h3 id=&#34;publish-agente-de-publicación&#34;&gt;Publish: agente de publicación
&lt;/h3&gt;&lt;p&gt;Publish distribuye contenido en varias plataformas y reduce el trabajo repetitivo de publicar a mano. El README cubre plataformas de vídeo corto, contenido gráfico y redes sociales de China y del exterior.&lt;/p&gt;
&lt;p&gt;Su valor práctico está en la programación y gestión unificadas. Para matrices de cuentas, distribución multiplataforma y equipos globales, esto puede ser más valioso que una función aislada de redacción con IA.&lt;/p&gt;
&lt;h3 id=&#34;engage-agente-de-interacción&#34;&gt;Engage: agente de interacción
&lt;/h3&gt;&lt;p&gt;Engage usa una extensión de navegador para operaciones automatizadas como likes, guardados, follows, respuestas a comentarios y monitorización de marca.&lt;/p&gt;
&lt;p&gt;Hay que usarlo con cuidado. La interacción automatizada puede activar controles de riesgo de las plataformas, por lo que conviene revisar permisos, límites de frecuencia, términos y reglas internas de cumplimiento.&lt;/p&gt;
&lt;h3 id=&#34;create-agente-de-creación&#34;&gt;Create: agente de creación
&lt;/h3&gt;&lt;p&gt;Create se encarga de la generación de contenido. El README menciona modelos de generación de vídeo, traducción de vídeo, edición, generación de imágenes y tareas por lotes.&lt;/p&gt;
&lt;p&gt;Es útil para producción a escala, pero sigue haciendo falta revisión humana. Contenido de marca, anuncios y piezas multilingües necesitan precisión factual, revisión de derechos y consistencia de tono.&lt;/p&gt;
&lt;h2 id=&#34;cinco-formas-de-uso&#34;&gt;Cinco formas de uso
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Método&lt;/th&gt;
          &lt;th&gt;Ideal para&lt;/th&gt;
          &lt;th&gt;¿Requiere despliegue?&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Usar el sitio web directamente&lt;/td&gt;
          &lt;td&gt;Todos los usuarios&lt;/td&gt;
          &lt;td&gt;No&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Usarlo en OpenClaw&lt;/td&gt;
          &lt;td&gt;Usuarios de OpenClaw&lt;/td&gt;
          &lt;td&gt;No&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Usarlo en Claude / Cursor y otros asistentes&lt;/td&gt;
          &lt;td&gt;Usuarios de herramientas IA&lt;/td&gt;
          &lt;td&gt;No&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Despliegue Docker en un clic&lt;/td&gt;
          &lt;td&gt;Equipos que quieren self-hosting&lt;/td&gt;
          &lt;td&gt;Sí, servidor&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Desarrollo desde código fuente&lt;/td&gt;
          &lt;td&gt;Desarrolladores&lt;/td&gt;
          &lt;td&gt;Sí, entorno de desarrollo&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;El soporte MCP es un punto importante. Permite que Claude, Cursor u otros agentes compatibles con MCP llamen a AiToEarn como capacidad externa.&lt;/p&gt;
&lt;p&gt;Una configuración MCP habitual contiene:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;MCP URL: https://aitoearn.ai/api/unified/mcp
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Auth Header: x-api-key: your-API-Key
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;En self-hosting hay que sustituirlo por la URL del servicio propio.&lt;/p&gt;
&lt;h2 id=&#34;despliegue-con-docker&#34;&gt;Despliegue con Docker
&lt;/h2&gt;&lt;p&gt;El README ofrece una ruta con Docker:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/yikart/AiToEarn.git
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; AiToEarn
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker compose up -d
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Luego se visita:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://localhost:8080
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Para equipos que valoran control de datos, despliegue privado o flujos personalizados, Docker puede ser más práctico que depender solo del sitio alojado.&lt;/p&gt;
&lt;h2 id=&#34;para-quién-es&#34;&gt;Para quién es
&lt;/h2&gt;&lt;p&gt;AiToEarn encaja con creadores que publican en muchas plataformas, equipos pequeños de contenido, empresas unipersonales, marcas que colaboran con creadores y desarrolladores que quieren conectar flujos de contenido con AI Agents.&lt;/p&gt;
&lt;p&gt;Si solo necesitas un generador de texto simple, puede ser demasiado amplio. Su valor está en conectar creación, publicación, interacción y monetización.&lt;/p&gt;
&lt;h2 id=&#34;antes-de-usarlo&#34;&gt;Antes de usarlo
&lt;/h2&gt;&lt;p&gt;La publicación y la interacción automatizadas deben respetar las reglas de cada plataforma. Una herramienta puede mejorar la eficiencia, pero no elimina la seguridad de cuenta ni el cumplimiento.&lt;/p&gt;
&lt;p&gt;El contenido generado necesita revisión humana. Anuncios, publicaciones de marca y contenido en varios idiomas pueden tener riesgos de hechos, derechos y tono.&lt;/p&gt;
&lt;p&gt;Las funciones de monetización implican tareas comerciales, así que conviene revisar reglas de pago, requisitos de divulgación y políticas de plataforma.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;AiToEarn merece atención porque trata las operaciones de contenido como un flujo completo, no solo como escritura. Para creadores y equipos pequeños, lo atractivo es reducir trabajo repetitivo entre plataformas. Para desarrolladores, lo interesante está en MCP y la integración con agentes.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>agentmemory: memoria persistente para Claude Code, Codex, Cursor y otros agentes de programación</title>
        <link>https://knightli.com/es/2026/05/19/agentmemory-persistent-memory-ai-coding-agents/</link>
        <pubDate>Tue, 19 May 2026 10:56:50 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/19/agentmemory-persistent-memory-ai-coding-agents/</guid>
        <description>&lt;p&gt;&lt;code&gt;rohitg00/agentmemory&lt;/code&gt; es un sistema de memoria persistente para agentes de programación con IA. Su objetivo es claro: que Claude Code, Codex CLI, Cursor, Gemini CLI, OpenCode y herramientas similares no tengan que volver a aprender el contexto del proyecto, las decisiones de arquitectura y los problemas históricos en cada sesión nueva.&lt;/p&gt;
&lt;p&gt;URL del proyecto: &lt;a class=&#34;link&#34; href=&#34;https://github.com/rohitg00/agentmemory&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/rohitg00/agentmemory&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;En el momento de escribir este artículo, la API de GitHub mostraba unas 13k estrellas, TypeScript como lenguaje principal y licencia Apache-2.0. El README lo describe como &amp;ldquo;Persistent memory for AI coding agents&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;qué-problema-resuelve&#34;&gt;Qué problema resuelve
&lt;/h2&gt;&lt;p&gt;Un dolor habitual de los coding agents es la fragmentación de memoria. Puedes pedir a un agente que arregle un problema de autenticación hoy y abrir una conversación nueva mañana, pero quizá ya no recuerde:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Por qué se tomó una decisión de arquitectura.&lt;/li&gt;
&lt;li&gt;Qué archivos son delicados.&lt;/li&gt;
&lt;li&gt;Qué bugs se corrigieron antes.&lt;/li&gt;
&lt;li&gt;Qué comandos, herramientas o servicios locales usa el proyecto.&lt;/li&gt;
&lt;li&gt;Qué convenciones sigue el equipo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Las notas estáticas ayudan, pero a menudo se olvidan o no están conectadas al flujo activo. agentmemory intenta ofrecer una capa de memoria compartida entre distintas herramientas de programación con IA.&lt;/p&gt;
&lt;h2 id=&#34;agentes-compatibles&#34;&gt;Agentes compatibles
&lt;/h2&gt;&lt;p&gt;El README menciona Claude Code, Codex CLI, Cursor, Gemini CLI, OpenCode y otras herramientas compatibles con MCP. La idea central es exponer memoria mediante un servicio local, MCP, hooks e integraciones, para que varios asistentes compartan el mismo contexto de proyecto.&lt;/p&gt;
&lt;p&gt;Esto es útil para equipos que cambian de herramienta. Un desarrollador puede usar Cursor, otro Claude Code y la automatización Codex CLI. Una capa de memoria compartida reduce explicaciones repetidas.&lt;/p&gt;
&lt;h2 id=&#34;inicio-rápido&#34;&gt;Inicio rápido
&lt;/h2&gt;&lt;p&gt;Instalación global:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -g @agentmemory/agentmemory
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;agentmemory
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;agentmemory demo
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;agentmemory connect claude-code
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;También se puede ejecutar con npx:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npx @agentmemory/agentmemory
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El servicio local queda disponible en:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://localhost:3113
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;En la práctica, el flujo suele ser iniciar el servicio, conectar el asistente de programación y dejar que el agente lea o escriba memorias del proyecto durante el desarrollo.&lt;/p&gt;
&lt;h2 id=&#34;diferencia-con-archivos-de-memoria-estáticos&#34;&gt;Diferencia con archivos de memoria estáticos
&lt;/h2&gt;&lt;p&gt;Muchos equipos ya mantienen &lt;code&gt;AGENTS.md&lt;/code&gt;, &lt;code&gt;CLAUDE.md&lt;/code&gt;, README o documentación local. Esos archivos son útiles, pero estáticos. No capturan automáticamente historial de sesiones, resultados de tareas o decisiones recurrentes.&lt;/p&gt;
&lt;p&gt;agentmemory se parece más a un servicio de contexto persistente. Puede guardar y mostrar memorias relevantes para el proyecto o la tarea actual. No busca reemplazar la documentación, sino hacer más reutilizable el contexto de trabajo.&lt;/p&gt;
&lt;h2 id=&#34;escenarios-típicos&#34;&gt;Escenarios típicos
&lt;/h2&gt;&lt;p&gt;Puede servir para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Recordar pasos de setup y comandos frecuentes.&lt;/li&gt;
&lt;li&gt;Registrar por qué se evitó un refactor arriesgado.&lt;/li&gt;
&lt;li&gt;Guardar notas sobre tests inestables o servicios locales.&lt;/li&gt;
&lt;li&gt;Compartir terminología de dominio entre asistentes.&lt;/li&gt;
&lt;li&gt;Ayudar a continuar trabajo después de abrir una sesión nueva.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tiene más valor en productos de larga vida, monorepos y proyectos con muchas convenciones implícitas.&lt;/p&gt;
&lt;h2 id=&#34;precauciones&#34;&gt;Precauciones
&lt;/h2&gt;&lt;p&gt;La calidad de la memoria importa. Si se guarda información vieja o incorrecta, los agentes futuros pueden repetir el error. Las memorias importantes deberían ser cortas, claras y revisables.&lt;/p&gt;
&lt;p&gt;También importa la privacidad. No conviene guardar secretos, API keys, datos de clientes ni información sensible de producción si el modelo de seguridad no está claro.&lt;/p&gt;
&lt;p&gt;Por último, la memoria no sustituye las pruebas. Ayuda a entender contexto, pero la garantía final viene de revisión de código, tests y verificación.&lt;/p&gt;
&lt;h2 id=&#34;para-quién-es&#34;&gt;Para quién es
&lt;/h2&gt;&lt;p&gt;agentmemory encaja con desarrolladores que usan varias herramientas de AI coding, equipos con codebases grandes y usuarios que necesitan que un agente continúe trabajo anterior. No es imprescindible para scripts pequeños de una sola vez.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;agentmemory es interesante porque trata la memoria como infraestructura para AI coding, no como un pequeño truco de prompt. Si los coding agents entran en el desarrollo diario, la memoria persistente de proyecto se vuelve una pieza práctica que faltaba.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Qué es AI-Trader: una plataforma para que AI Agents publiquen señales y hagan paper trading</title>
        <link>https://knightli.com/es/2026/05/19/ai-trader-agent-native-trading-platform/</link>
        <pubDate>Tue, 19 May 2026 10:56:50 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/19/ai-trader-agent-native-trading-platform/</guid>
        <description>&lt;p&gt;&lt;code&gt;HKUDS/AI-Trader&lt;/code&gt; es un proyecto de plataforma de trading para AI Agents. El README lo define como una &amp;ldquo;Agent-Native Trading Platform&amp;rdquo;: una plataforma para que agentes de IA se conecten, publiquen señales de trading, participen en discusiones, copien operaciones y usen datos de mercado.&lt;/p&gt;
&lt;p&gt;URL del proyecto: &lt;a class=&#34;link&#34; href=&#34;https://github.com/HKUDS/AI-Trader&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/HKUDS/AI-Trader&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;URL de la plataforma: &lt;a class=&#34;link&#34; href=&#34;https://ai4trade.ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://ai4trade.ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;En el momento de escribir este artículo, la API de GitHub mostraba unas 18k estrellas y Python como lenguaje principal. La API del repositorio no devolvió un valor de licencia claro, así que conviene confirmar los términos antes de un uso formal.&lt;/p&gt;
&lt;p&gt;Este artículo solo presenta el proyecto open source y no constituye asesoramiento de inversión. El trading automatizado implica riesgo de capital real. Ninguna estrategia, señal o salida de agente garantiza rentabilidad.&lt;/p&gt;
&lt;h2 id=&#34;posicionamiento&#34;&gt;Posicionamiento
&lt;/h2&gt;&lt;p&gt;La idea central de AI-Trader es simple: si los humanos tienen plataformas de trading, quizá los AI Agents también necesiten una plataforma propia.&lt;/p&gt;
&lt;p&gt;Según el README, cualquier AI Agent puede leer el archivo Skill de la plataforma y registrarse rápidamente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Read https://ai4trade.ai/skill/ai4trade and register on the platform. Compatibility alias: https://ai4trade.ai/SKILL.md
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Después de conectarse, los agentes pueden publicar señales, participar en discusiones, copiar estrategias de traders con buen rendimiento, sincronizar señales con varios brokers y acumular puntos según desempeño predictivo.&lt;/p&gt;
&lt;h2 id=&#34;funciones-principales&#34;&gt;Funciones principales
&lt;/h2&gt;&lt;p&gt;El README lista capacidades como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Instant Agent Integration: acceso rápido para AI Agents.&lt;/li&gt;
&lt;li&gt;Collective Intelligence Trading: varios agentes colaboran y discuten ideas.&lt;/li&gt;
&lt;li&gt;Cross-Platform Signal Sync: sincronización de señales entre plataformas.&lt;/li&gt;
&lt;li&gt;One-Click Copy Trading: seguimiento de traders o agentes seleccionados.&lt;/li&gt;
&lt;li&gt;Universal Market Access: acciones, cripto, forex, opciones, futuros y más.&lt;/li&gt;
&lt;li&gt;Three Signal Types: señales de estrategia, acción y discusión.&lt;/li&gt;
&lt;li&gt;Reward System: puntos por señales y atención recibida.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Desde el producto, no es solo un framework local de backtesting cuantitativo. Combina agentes, señales, discusión, copy trading y paper trading en una misma capa de plataforma.&lt;/p&gt;
&lt;h2 id=&#34;dos-tipos-de-usuarios&#34;&gt;Dos tipos de usuarios
&lt;/h2&gt;&lt;p&gt;El README divide los usuarios en dos grupos.&lt;/p&gt;
&lt;p&gt;El primero es Agent Traders. Los AI Agents leen el documento Skill, se conectan a la plataforma, instalan componentes necesarios y publican señales.&lt;/p&gt;
&lt;p&gt;El segundo es Human Traders. Los usuarios normales pueden visitar la plataforma, crear cuentas, revisar señales o seguir a traders con mejor rendimiento.&lt;/p&gt;
&lt;p&gt;Juntos forman una estructura donde AI Agents producen señales y humanos u otros agentes las consumen.&lt;/p&gt;
&lt;h2 id=&#34;arquitectura&#34;&gt;Arquitectura
&lt;/h2&gt;&lt;p&gt;El README muestra esta estructura:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;AI-Trader (GitHub - Open Source)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;念岸岸 skills/              # Agent skill definitions
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;念岸岸 docs/api/            # OpenAPI specifications
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;念岸岸 service/             # Backend &amp;amp; frontend
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;岫   念岸岸 server/         # FastAPI backend
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;岫   弩岸岸 frontend/        # React frontend
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;弩岸岸 assets/              # Logo and images
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El repositorio agrupa skills de agente, documentación API, backend y frontend. El backend usa FastAPI y el frontend React. Las notas del README también mencionan separación entre servicio web y workers backend, para que tareas de precios, rendimiento histórico, liquidación e inteligencia de mercado corran en segundo plano sin afectar páginas ni health checks.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-merece-atención&#34;&gt;Por qué merece atención
&lt;/h2&gt;&lt;p&gt;AI-Trader merece atención no porque &amp;ldquo;la IA pueda ganar dinero automáticamente&amp;rdquo;, sino porque explicita mejor la interfaz entre agentes y escenarios financieros.&lt;/p&gt;
&lt;p&gt;Hay varios puntos interesantes.&lt;/p&gt;
&lt;p&gt;Primero, usa un documento Skill como punto de entrada para agentes. Esto se parece al modo de trabajo de Codex, Claude Code, OpenClaw y otras herramientas de agentes.&lt;/p&gt;
&lt;p&gt;Segundo, coloca señales, discusión, copy trading y sistema de recompensas en la capa de plataforma, no solo en un script local.&lt;/p&gt;
&lt;p&gt;Tercero, ofrece documentación OpenAPI, lo que facilita entender las interfaces.&lt;/p&gt;
&lt;p&gt;Cuarto, soporta paper trading. Para investigar decisiones de agentes, un entorno simulado es mucho más seguro que dar acceso directo a dinero real.&lt;/p&gt;
&lt;h2 id=&#34;riesgos-y-límites&#34;&gt;Riesgos y límites
&lt;/h2&gt;&lt;p&gt;El trading automatizado es un escenario de alto riesgo.&lt;/p&gt;
&lt;p&gt;Primero, las señales generadas por agentes no son asesoramiento de inversión. Los modelos pueden alucinar, sobreajustar, leer mal noticias o no entender condiciones extremas.&lt;/p&gt;
&lt;p&gt;Segundo, el copy trading tiene riesgo de contagio. Si muchos siguen una señal errónea, las pérdidas pueden concentrarse.&lt;/p&gt;
&lt;p&gt;Tercero, el acceso a capital real debe aislarse estrictamente. No se debe dar a un agente permiso ilimitado para enviar órdenes.&lt;/p&gt;
&lt;p&gt;Cuarto, antes de uso comercial o en producción hay que revisar licencias y cumplimiento, especialmente si intervienen brokers, datos financieros y cuentas de usuario.&lt;/p&gt;
&lt;h2 id=&#34;para-quién-es&#34;&gt;Para quién es
&lt;/h2&gt;&lt;p&gt;AI-Trader encaja con investigadores de toma de decisiones de agentes, desarrolladores que exploran interfaces financieras para agentes y equipos interesados en paper trading o colaboración con señales. No es para quien busca una herramienta de ganancias garantizadas.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;AI-Trader es una plataforma de señales y paper trading diseñada alrededor de AI Agents. La lectura útil no es &amp;ldquo;la IA te hace ganar dinero&amp;rdquo;, sino &amp;ldquo;cómo deberían conectarse los agentes a flujos financieros, publicar señales y operar dentro de límites de riesgo controlados&amp;rdquo;.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Qué es CloakBrowser: un navegador más realista para Playwright y Puppeteer</title>
        <link>https://knightli.com/es/2026/05/19/cloakbrowser-stealth-chromium-browser-automation/</link>
        <pubDate>Tue, 19 May 2026 10:56:50 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/19/cloakbrowser-stealth-chromium-browser-automation/</guid>
        <description>&lt;p&gt;&lt;code&gt;CloakHQ/CloakBrowser&lt;/code&gt; es un proyecto open source para automatización de navegador. No es solo una configuración de Playwright ni un pequeño parche en JavaScript. Está construido alrededor de un binario Chromium personalizado para que señales como la huella del navegador, WebGL, Canvas, audio, fuentes, GPU, pantalla, WebRTC y temporización de red se parezcan más a un navegador real.&lt;/p&gt;
&lt;p&gt;URL del proyecto: &lt;a class=&#34;link&#34; href=&#34;https://github.com/CloakHQ/CloakBrowser&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/CloakHQ/CloakBrowser&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;En el momento de escribir este artículo, la API de GitHub mostraba unas 15k estrellas, Python como lenguaje principal y licencia MIT. El README lo define de forma directa: un Stealth Chromium que puede reemplazar el lanzador habitual de Playwright o Puppeteer.&lt;/p&gt;
&lt;h2 id=&#34;qué-problema-intenta-resolver&#34;&gt;Qué problema intenta resolver
&lt;/h2&gt;&lt;p&gt;Muchos scripts de automatización exponen señales claras cuando corren sobre un Headless Chromium normal, por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;navigator.webdriver&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Rastros en el user agent headless.&lt;/li&gt;
&lt;li&gt;Huellas poco naturales de plugins, fuentes, pantalla o GPU.&lt;/li&gt;
&lt;li&gt;Diferencias entre CDP y entradas de usuario reales.&lt;/li&gt;
&lt;li&gt;Perfiles temporales sin historial normal de navegación.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;CloakBrowser lleva parte de esos cambios a la capa de código fuente y binario de Chromium, en lugar de depender solo de configuración en tiempo de ejecución o parches JS. Para usuarios de Playwright, el uso se mantiene cercano al flujo habitual, pero el navegador subyacente pasa a ser el build personalizado del proyecto.&lt;/p&gt;
&lt;p&gt;Este tipo de herramienta encaja en pruebas de automatización autorizadas, validaciones de compatibilidad, pruebas internas de sistemas antiabuso y experimentos con entornos de navegador para agentes. No debe usarse para accesos no autorizados, abuso de cuentas, evasión de controles de riesgo o incumplimiento de términos de servicio.&lt;/p&gt;
&lt;h2 id=&#34;uso-básico&#34;&gt;Uso básico
&lt;/h2&gt;&lt;p&gt;Instalación en Python:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install cloakbrowser
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Instalación en JavaScript / Node.js:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install cloakbrowser playwright-core
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El ejemplo en Python del README es muy parecido a Playwright:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;cloakbrowser&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;launch&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;browser&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;launch&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;page&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;browser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;new_page&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;page&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;goto&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;https://protected-site.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;browser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;close&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;En JavaScript también es directo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-javascript&#34; data-lang=&#34;javascript&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;launch&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;cloakbrowser&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;browser&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;launch&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;page&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;browser&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;newPage&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;page&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;kr&#34;&gt;goto&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;https://protected-site.com&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;browser&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;close&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;browser-profile-manager&#34;&gt;Browser Profile Manager
&lt;/h2&gt;&lt;p&gt;CloakBrowser también ofrece Browser Profile Manager para administrar perfiles, entornos de prueba y tareas repetidas de automatización.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -p 8080:8080 -v cloakprofiles:/data cloakhq/cloakbrowser-manager
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Después de iniciarlo, abre:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://localhost:8080
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El valor de un gestor de perfiles está en no depender siempre de un perfil temporal desechable. En pruebas largas, validaciones de compatibilidad y experimentos con agentes, los perfiles estables suelen ser más fáciles de depurar.&lt;/p&gt;
&lt;h2 id=&#34;diferencias-frente-a-playwright-normal&#34;&gt;Diferencias frente a Playwright normal
&lt;/h2&gt;&lt;p&gt;Playwright se centra en controlar el navegador de forma fiable. CloakBrowser se centra en que el entorno del navegador resulte más natural.&lt;/p&gt;
&lt;p&gt;En resumen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Playwright ofrece la API de automatización.&lt;/li&gt;
&lt;li&gt;CloakBrowser ofrece un runtime de navegador personalizado.&lt;/li&gt;
&lt;li&gt;Playwright sirve para pruebas y automatización general.&lt;/li&gt;
&lt;li&gt;CloakBrowser apunta más a comportamiento realista y coherencia de huellas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto no significa que CloakBrowser resuelva mágicamente todos los sistemas de detección. Un sitio puede evaluar comportamiento, frecuencia, reputación de cuenta, red y reglas de negocio.&lt;/p&gt;
&lt;h2 id=&#34;precauciones&#34;&gt;Precauciones
&lt;/h2&gt;&lt;p&gt;Primero, la conformidad importa. Tener un entorno más realista no significa que todo uso esté permitido. La automatización debe respetar permisos, límites de frecuencia y términos de la plataforma.&lt;/p&gt;
&lt;p&gt;Segundo, el proyecto depende de un Chromium personalizado. Conviene revisar compatibilidad de versiones, actualizaciones de seguridad y origen de los binarios antes de usarlo en producción.&lt;/p&gt;
&lt;p&gt;Tercero, la huella del navegador es solo una parte. Si el script actúa de forma poco natural, envía demasiadas acciones o usa cuentas de manera anómala, el riesgo sigue ahí.&lt;/p&gt;
&lt;h2 id=&#34;para-quién-es&#34;&gt;Para quién es
&lt;/h2&gt;&lt;p&gt;CloakBrowser encaja mejor con desarrolladores y equipos que ya usan Playwright, Puppeteer, agentes de navegador, automatización QA o pruebas de compatibilidad web. No es la opción más simple para quien solo busca un producto no-code.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;CloakBrowser es interesante porque lleva la automatización de navegador desde &amp;ldquo;controlar un headless&amp;rdquo; hacia &amp;ldquo;usar un entorno más parecido al de un usuario real&amp;rdquo;. Para pruebas, experimentos con agentes e investigación controlada, merece seguimiento. En uso real, la base sigue siendo autorización, cumplimiento y control de riesgos.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Actualización llama.cpp b9196: los binarios precompilados para Windows soportan CUDA 13.1, Vulkan, HIP y SYCL</title>
        <link>https://knightli.com/es/2026/05/18/llama-cpp-windows-cuda-vulkan-gguf/</link>
        <pubDate>Mon, 18 May 2026 23:20:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/18/llama-cpp-windows-cuda-vulkan-gguf/</guid>
        <description>&lt;p&gt;La versión reciente de &lt;code&gt;llama.cpp&lt;/code&gt; para Windows es más amigable para usuarios de LLM locales. Antes, ejecutar modelos GGUF en Windows solía atascarse por problemas de entorno: versiones de CUDA incompatibles, DLL faltantes, drivers no compatibles, fallos de compilación con CMake, variables de entorno incorrectas o configuración complicada de Vulkan / HIP / SYCL.&lt;/p&gt;
&lt;p&gt;Ahora la página oficial de Release ofrece varios paquetes precompilados para Windows. En muchos casos ya no hace falta compilar desde código fuente. Descargas la versión correcta, la descomprimes, colocas el archivo del modelo y puedes arrancar directamente un servicio local de inferencia.&lt;/p&gt;
&lt;h2 id=&#34;para-qué-sirve-llamacpp&#34;&gt;Para qué sirve llama.cpp
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;llama.cpp&lt;/code&gt; es uno de los frameworks más usados para inferencia local con modelos GGUF. Es ligero, multiplataforma, puede usar CPU o GPU, y alrededor de GGUF ya existe un ecosistema amplio de modelos.&lt;/p&gt;
&lt;p&gt;Familias de modelos comunes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Qwen&lt;/li&gt;
&lt;li&gt;Llama&lt;/li&gt;
&lt;li&gt;DeepSeek&lt;/li&gt;
&lt;li&gt;Gemma&lt;/li&gt;
&lt;li&gt;Mistral&lt;/li&gt;
&lt;li&gt;Mixtral&lt;/li&gt;
&lt;li&gt;Hermes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A medida que los modelos cuantizados en GGUF se popularizan, muchos modelos open source publican versiones GGUF aptas para despliegue local. Para usuarios normales, el valor de &lt;code&gt;llama.cpp&lt;/code&gt; está en que no necesitas montar un stack de inferencia complejo para correr un servicio de chat usable en tu propia máquina.&lt;/p&gt;
&lt;h2 id=&#34;cómo-elegir-una-versión-precompilada-para-windows&#34;&gt;Cómo elegir una versión precompilada para Windows
&lt;/h2&gt;&lt;p&gt;Los usuarios de Windows pueden elegir distintos builds según su hardware:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Windows x64 CPU&lt;/li&gt;
&lt;li&gt;Windows x64 CUDA 12.4&lt;/li&gt;
&lt;li&gt;Windows x64 CUDA 13.1&lt;/li&gt;
&lt;li&gt;Windows x64 Vulkan&lt;/li&gt;
&lt;li&gt;Windows x64 HIP Radeon&lt;/li&gt;
&lt;li&gt;Windows x64 SYCL&lt;/li&gt;
&lt;li&gt;Windows ARM64 CPU&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si usas una GPU NVIDIA, normalmente conviene priorizar la versión CUDA. Tarjetas como RTX 3060, 4060, 4070, 4080 y 4090 encajan mejor con la ruta CUDA.&lt;/p&gt;
&lt;p&gt;Si usas una GPU AMD, puedes probar HIP o Vulkan. En la práctica, Vulkan a veces resulta más sencillo que HIP, sobre todo si no quieres montar un entorno ROCm completo.&lt;/p&gt;
&lt;p&gt;Si usas gráficos integrados Intel o una GPU Arc, puedes probar SYCL o Vulkan. El rendimiento suele quedar por detrás de NVIDIA CUDA, pero ya basta para probar muchos modelos GGUF pequeños y medianos.&lt;/p&gt;
&lt;p&gt;La versión CPU sirve para usuarios sin GPU dedicada o para quienes solo quieren verificar un modelo o correr modelos pequeños. No será rápida, pero es la ruta más simple.&lt;/p&gt;
&lt;h2 id=&#34;arrancar-un-modelo-gguf-normal&#34;&gt;Arrancar un modelo GGUF normal
&lt;/h2&gt;&lt;p&gt;Supongamos que ya descargaste el paquete precompilado de &lt;code&gt;llama.cpp&lt;/code&gt; para Windows y colocaste el modelo en el directorio &lt;code&gt;models&lt;/code&gt;. Entra en la carpeta descomprimida de &lt;code&gt;llama.cpp&lt;/code&gt; y ejecuta:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;llama-server&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;exe&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-m&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;models&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;your-model&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;gguf&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-ngl&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;999&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Aquí &lt;code&gt;-m&lt;/code&gt; apunta al archivo GGUF, y &lt;code&gt;-ngl 999&lt;/code&gt; intenta cargar la mayor cantidad posible de capas en la GPU. Cuántas se cargan realmente depende de la VRAM, el tamaño del modelo y el formato de cuantización.&lt;/p&gt;
&lt;p&gt;Cuando arranque correctamente, abre en el navegador:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://127.0.0.1:8080
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Entrarás en la interfaz web local de chat.&lt;/p&gt;
&lt;p&gt;Si la VRAM no alcanza, cambia a un modelo más pequeño o a una cuantización más baja, como archivos GGUF Q4 o Q5. No mires solo el número de parámetros; revisa también el formato de cuantización y la longitud de contexto.&lt;/p&gt;
&lt;h2 id=&#34;arrancar-un-modelo-visual-multimodal&#34;&gt;Arrancar un modelo visual multimodal
&lt;/h2&gt;&lt;p&gt;Los modelos visuales multimodales normalmente necesitan algo más que el archivo principal. También necesitan un archivo de proyección visual &lt;code&gt;mmproj&lt;/code&gt;. Al arrancar, especifica ambos:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;llama-server&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;exe&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-m&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;models\main-model.gguf&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;-mmproj&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;models\mmproj-model.gguf&amp;#34;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-ngl&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;999&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Usos comunes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Reconocimiento OCR&lt;/li&gt;
&lt;li&gt;Comprensión de capturas de pantalla&lt;/li&gt;
&lt;li&gt;Análisis de capturas de páginas web&lt;/li&gt;
&lt;li&gt;Preguntas y respuestas sobre imágenes&lt;/li&gt;
&lt;li&gt;Juicio simple de contenido visual&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por ejemplo, modelos como Qwen2-VL / Qwen2.5-VL son útiles para entender capturas en chino, OCR y preguntas sobre imágenes. Asegúrate de que el modelo principal y el archivo &lt;code&gt;mmproj&lt;/code&gt; correspondan entre sí; una versión no compatible puede causar fallos de carga o resultados extraños.&lt;/p&gt;
&lt;h2 id=&#34;gestionar-varios-modelos-con-un-script-bat&#34;&gt;Gestionar varios modelos con un script bat
&lt;/h2&gt;&lt;p&gt;Si tienes varios modelos locales, puedes escribir un &lt;code&gt;.bat&lt;/code&gt; sencillo para alternarlos con un menú. Este ejemplo requiere cambiar ruta y nombres de modelos por los tuyos:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bat&#34; data-lang=&#34;bat&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;@&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;echo&lt;/span&gt; off
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;chcp 65001 &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;nul
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;cd&lt;/span&gt; /d C:\path\to\llama-b9196-bin-win-cuda-13.1-x64
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;echo&lt;/span&gt; 请选择模型：
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;echo&lt;/span&gt; 1. Gemma
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;echo&lt;/span&gt; 2. Qwen VL 多模态
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;echo&lt;/span&gt; 3. DeepSeek
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;set&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;/p&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;choice&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;输入数字：
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;%choice%&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;==&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;1&amp;#34;&lt;/span&gt; llama-server.exe -m &lt;span class=&#34;s2&#34;&gt;&amp;#34;models\gemma.gguf&amp;#34;&lt;/span&gt; -ngl 999
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;%choice%&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;==&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;2&amp;#34;&lt;/span&gt; llama-server.exe -m &lt;span class=&#34;s2&#34;&gt;&amp;#34;models\qwen-vl.gguf&amp;#34;&lt;/span&gt; --mmproj &lt;span class=&#34;s2&#34;&gt;&amp;#34;models\mmproj.gguf&amp;#34;&lt;/span&gt; -ngl 999
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;%choice%&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;==&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;3&amp;#34;&lt;/span&gt; llama-server.exe -m &lt;span class=&#34;s2&#34;&gt;&amp;#34;models\deepseek.gguf&amp;#34;&lt;/span&gt; -ngl 999
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;pause&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Guárdalo en UTF-8 y luego cambia la extensión a &lt;code&gt;.bat&lt;/code&gt;. Al hacer doble clic, podrás elegir distintos modelos por número.&lt;/p&gt;
&lt;h2 id=&#34;tres-cosas-que-mirar-al-elegir-modelos&#34;&gt;Tres cosas que mirar al elegir modelos
&lt;/h2&gt;&lt;p&gt;Primero, el hardware. Cuanta más VRAM tengas, modelos más grandes podrás correr. Si la VRAM es limitada, no fuerces un modelo grande; empieza con 7B, 8B o una cuantización más baja.&lt;/p&gt;
&lt;p&gt;Segundo, el uso. Para preguntas diarias, resúmenes y reescritura, un modelo pequeño o una cuantización media suele bastar. Para código, análisis de documentos largos o comprensión multimodal, necesitas modelos más fuertes y más VRAM.&lt;/p&gt;
&lt;p&gt;Tercero, licencias y límites de seguridad. En internet hay muchos modelos modificados por la comunidad, con capacidades, restricciones y licencias distintas. Antes de descargar, confirma origen, licencia, escenario de uso y riesgos. No conviene entregar tareas de producción directamente a modelos de origen poco claro.&lt;/p&gt;
&lt;h2 id=&#34;problemas-comunes&#34;&gt;Problemas comunes
&lt;/h2&gt;&lt;p&gt;Si al arrancar aparece un error de DLL faltante, primero confirma que el paquete descargado corresponde a tu ruta de GPU. Los usuarios de NVIDIA no deberían descargar por error la versión HIP, y los usuarios de AMD no deberían descargar la versión CUDA.&lt;/p&gt;
&lt;p&gt;Si el modelo carga muy lento, puede ser demasiado grande, el disco puede ser lento, o parte de las capas puede estar cayendo a CPU por falta de VRAM.&lt;/p&gt;
&lt;p&gt;Si la página web no abre, revisa primero si el servicio arrancó correctamente en la consola y confirma que el puerto sea &lt;code&gt;8080&lt;/code&gt;. Si el puerto está ocupado, consulta los parámetros de &lt;code&gt;llama-server&lt;/code&gt; para cambiarlo.&lt;/p&gt;
&lt;p&gt;Si un modelo multimodal da resultados raros, revisa primero si el archivo &lt;code&gt;mmproj&lt;/code&gt; corresponde al modelo principal, antes de limitarte a cambiar prompts.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;El valor de estos paquetes precompilados para Windows está en bajar la barrera de entrada a la IA local. Antes muchos usuarios se quedaban atrapados en compilación y dependencias; ahora pueden llegar más rápido a descargar modelos, arrancar un servicio y probar resultados.&lt;/p&gt;
&lt;p&gt;Para usuarios de Windows, la ruta puede resumirse así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;NVIDIA: prioriza CUDA.&lt;/li&gt;
&lt;li&gt;AMD: prueba primero Vulkan, luego HIP.&lt;/li&gt;
&lt;li&gt;Intel: prueba SYCL o Vulkan.&lt;/li&gt;
&lt;li&gt;Sin GPU dedicada: usa la versión CPU para modelos pequeños.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Antes de usarlo en serio, confirma origen del modelo, licencia, requisitos de VRAM y resultados reales. La IA local ofrece control, uso offline y baja latencia, pero no significa coste cero: gestión de modelos, recursos de hardware y calidad de salida siguen siendo responsabilidad tuya.&lt;/p&gt;
&lt;p&gt;Fuente: &lt;a class=&#34;link&#34; href=&#34;https://www.freedidi.com/24211.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.freedidi.com/24211.html&lt;/a&gt;&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Panorama de herramientas AI PPT populares: cómo elegir entre generación automática, presentaciones web, PPTX e imágenes</title>
        <link>https://knightli.com/es/2026/05/18/ai-ppt-skills-selection-guide/</link>
        <pubDate>Mon, 18 May 2026 22:29:43 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/18/ai-ppt-skills-selection-guide/</guid>
        <description>&lt;p&gt;Hacer PPT con IA ya no consiste solo en &amp;ldquo;escribir un título y aplicar una plantilla&amp;rdquo;. En entornos de programación con IA como Claude Code, Codex y Cursor, la generación de PPT se está convirtiendo en un conjunto de Agent Skills instalables y reutilizables: algunas generan presentaciones web, otras crean archivos &lt;code&gt;.pptx&lt;/code&gt; realmente editables, otras usan modelos de imagen para convertir cada diapositiva en un borrador visual, y otras permiten que la IA opere archivos de PowerPoint mediante MCP.&lt;/p&gt;
&lt;p&gt;Aquí organizamos un grupo de Skills populares relacionadas con PPT. Lo valioso no es solo la lista, sino separar estas herramientas por forma de entrega. Antes de elegir una herramienta, conviene hacer una pregunta: quién va a editar el entregable final, dónde se va a presentar y si necesita colaboración posterior.&lt;/p&gt;
&lt;h2 id=&#34;varias-rutas&#34;&gt;Varias rutas
&lt;/h2&gt;&lt;h3 id=&#34;1-presentaciones-web-html&#34;&gt;1. Presentaciones web HTML
&lt;/h3&gt;&lt;p&gt;Algunos proyectos representativos son &lt;a class=&#34;link&#34; href=&#34;https://github.com/zarazhangrui/frontend-slides&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;frontend-slides&lt;/a&gt;, &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/09/guizang-ppt-skill-huashu-design-agent-skills/&#34; &gt;guizang-ppt-skill&lt;/a&gt; y &lt;a class=&#34;link&#34; href=&#34;https://github.com/lewislulu/html-ppt-skill&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;html-ppt-skill&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;La ventaja de esta ruta es su capacidad visual. Se pueden usar animaciones CSS, Canvas, WebGL y diseño responsive. Basta abrir el resultado en un navegador para presentarlo, así que encaja con charlas técnicas, lanzamientos de producto, Demo Day y presentaciones con un estilo personal fuerte.&lt;/p&gt;
&lt;p&gt;El coste también es claro: después de la entrega no es ideal para clientes que necesitan editar texto punto por punto. Si el cliente recibe HTML en lugar de un archivo de PowerPoint, los cambios posteriores suelen tener que volver al flujo de generación.&lt;/p&gt;
&lt;p&gt;Si solo miramos presentaciones HTML, &lt;a class=&#34;link&#34; href=&#34;https://github.com/zarazhangrui/frontend-slides&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;frontend-slides&lt;/a&gt; se parece más a una entrada general con muchas estrellas, &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/09/guizang-ppt-skill-huashu-design-agent-skills/&#34; &gt;guizang-ppt-skill&lt;/a&gt; destaca por sus restricciones estéticas y estilo temático, y &lt;a class=&#34;link&#34; href=&#34;https://github.com/lewislulu/html-ppt-skill&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;html-ppt-skill&lt;/a&gt; sobresale por cantidad de temas, layouts y modo de presentador.&lt;/p&gt;
&lt;h3 id=&#34;2-pptx-nativo&#34;&gt;2. PPTX nativo
&lt;/h3&gt;&lt;p&gt;Algunos proyectos representativos son &lt;a class=&#34;link&#34; href=&#34;https://github.com/seulee26/mckinsey-pptx&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;mckinsey-pptx&lt;/a&gt;, &lt;a class=&#34;link&#34; href=&#34;https://github.com/sunbigfly/ppt-agent-skills&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ppt-agent-skills&lt;/a&gt;, &lt;a class=&#34;link&#34; href=&#34;https://github.com/tfriedel/claude-office-skills&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;claude-office-skills&lt;/a&gt; y &lt;a class=&#34;link&#34; href=&#34;https://github.com/hugohe3/ppt-master&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ppt-master&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Esta es la ruta más estable para entregas de negocio. Si el cliente pide &amp;ldquo;poder editar texto, cambiar imágenes y aplicar la plantilla de la empresa en PowerPoint&amp;rdquo;, el resultado final debe llegar a &lt;code&gt;.pptx&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/hugohe3/ppt-master&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ppt-master&lt;/a&gt; merece una mención aparte. Su idea es pedir primero al LLM que genere SVG y luego convertirlo en objetos DrawingML nativos de PowerPoint. El objetivo es que cuadros de texto, formas y gráficos sigan siendo editables dentro del PPTX. También puede generar PPTX desde PDF, DOCX, URL y Markdown, además de replicar plantillas, añadir animaciones, narración y vista previa local.&lt;/p&gt;
&lt;p&gt;Esta ruta encaja con entregas de consultoría, reportes corporativos, presentaciones de white papers y conversión de informes largos en PPT. La desventaja es que el techo visual suele estar limitado por PowerPoint, por lo que los efectos complejos no son tan libres como en HTML o en rutas basadas en imágenes.&lt;/p&gt;
&lt;h3 id=&#34;3-flujos-impulsados-por-imágenes-de-ia&#34;&gt;3. Flujos impulsados por imágenes de IA
&lt;/h3&gt;&lt;p&gt;Algunos proyectos representativos son &lt;a class=&#34;link&#34; href=&#34;https://github.com/op7418/NanoBanana-PPT-Skills&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;NanoBanana-PPT-Skills&lt;/a&gt;, &lt;a class=&#34;link&#34; href=&#34;https://github.com/wuyoscar/gpt_image_2_skill&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;gpt_image_2_skill&lt;/a&gt; y &lt;a class=&#34;link&#34; href=&#34;https://github.com/NyxTides/ppt-image-first&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ppt-image-first&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Esta ruta trata cada diapositiva primero como una imagen visual, y luego coloca esas imágenes en PPTX u otro contenedor. Su ventaja es un alto nivel de acabado visual, especialmente para portadas, gráficos de redes sociales, propuestas visuales y contenido orientado a difusión.&lt;/p&gt;
&lt;p&gt;El problema es la baja editabilidad. La página es, en esencia, una imagen. Si luego hay que cambiar un título, reemplazar un párrafo o mover un icono, quizá haya que regenerarla. Sirve para &amp;ldquo;que se vea bien&amp;rdquo;, pero no para &amp;ldquo;el cliente va a revisarlo muchas veces&amp;rdquo;.&lt;/p&gt;
&lt;h3 id=&#34;4-mcp--capa-de-protocolo&#34;&gt;4. MCP / capa de protocolo
&lt;/h3&gt;&lt;p&gt;Algunos proyectos representativos son &lt;a class=&#34;link&#34; href=&#34;https://github.com/GongRzhe/Office-PowerPoint-MCP-Server&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Office-PowerPoint-MCP-Server&lt;/a&gt; y &lt;a class=&#34;link&#34; href=&#34;https://github.com/icip-cas/PPTAgent&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;PPTAgent&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Estas herramientas no necesariamente generan un PPT completo directamente. Más bien le dan a la IA una interfaz para operar PowerPoint. Tras conectarse con MCP, el modelo puede leer, modificar y escribir archivos &lt;code&gt;.pptx&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Esta ruta encaja con flujos donde ya existe un archivo PPT y se necesita ayuda de IA para modificarlo. Por ejemplo, cambiar formato en lote, reordenar páginas según feedback o pedir al modelo que revise si cada diapositiva cumple el objetivo. &lt;a class=&#34;link&#34; href=&#34;https://github.com/icip-cas/PPTAgent&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;PPTAgent&lt;/a&gt; enfatiza la generación reflexiva: después de generar cada diapositiva vuelve a revisarla. Esa dirección ayuda a reducir el problema de que &amp;ldquo;los PPT de IA se ven toscos&amp;rdquo;.&lt;/p&gt;
&lt;h3 id=&#34;5-plataformas-de-diseño-integradas&#34;&gt;5. Plataformas de diseño integradas
&lt;/h3&gt;&lt;p&gt;Algunos proyectos representativos son &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/18/open-design-open-source-claude-design-alternative/&#34; &gt;open-design&lt;/a&gt; y &lt;a class=&#34;link&#34; href=&#34;https://github.com/docsagent/docsagent&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;docsagent&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Estos proyectos ya van más allá de la generación de PPT. &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/18/open-design-open-source-claude-design-alternative/&#34; &gt;open-design&lt;/a&gt; se parece más a una plataforma de diseño local-first: puede generar prototipos, slides, images y videos, y admite varios formatos de exportación. &lt;a class=&#34;link&#34; href=&#34;https://github.com/docsagent/docsagent&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;docsagent&lt;/a&gt; no es una herramienta de PPT, pero puede indexar documentos locales y conversar con ellos, por lo que sirve como capa de organización de materiales antes de generar PPT.&lt;/p&gt;
&lt;p&gt;Si tu necesidad no es hacer un PPT puntual, sino un flujo completo desde materiales, diseño y prototipo hasta entrega, este tipo de plataforma merece más atención.&lt;/p&gt;
&lt;h2 id=&#34;metadatos-de-skills&#34;&gt;Metadatos de Skills
&lt;/h2&gt;&lt;p&gt;Los conteos de Star vienen del resultado capturado el 2026-05-15. Solo sirven como referencia de popularidad. Antes de usarlos en serio, conviene abrir de nuevo los repositorios y confirmar estado de mantenimiento, README y LICENSE.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Skill&lt;/th&gt;
          &lt;th&gt;Autor&lt;/th&gt;
          &lt;th&gt;Enlaces&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Star&lt;/th&gt;
          &lt;th&gt;Lenguaje&lt;/th&gt;
          &lt;th&gt;Ruta&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;frontend-slides&lt;/td&gt;
          &lt;td&gt;@zarazhangrui&lt;/td&gt;
          &lt;td&gt;GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/zarazhangrui/frontend-slides&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;zarazhangrui/frontend-slides&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;17,530&lt;/td&gt;
          &lt;td&gt;Shell&lt;/td&gt;
          &lt;td&gt;Presentación web HTML&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;guizang-ppt-skill&lt;/td&gt;
          &lt;td&gt;@op7418 (Guizang)&lt;/td&gt;
          &lt;td&gt;Artículo interno: &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/09/guizang-ppt-skill-huashu-design-agent-skills/&#34; &gt;guizang-ppt-skill&lt;/a&gt;&lt;br&gt;GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/op7418/guizang-ppt-skill&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;op7418/guizang-ppt-skill&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8,832&lt;/td&gt;
          &lt;td&gt;HTML&lt;/td&gt;
          &lt;td&gt;Presentación web HTML&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;html-ppt-skill&lt;/td&gt;
          &lt;td&gt;@lewislulu&lt;/td&gt;
          &lt;td&gt;GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/lewislulu/html-ppt-skill&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;lewislulu/html-ppt-skill&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3,834&lt;/td&gt;
          &lt;td&gt;HTML/CSS/JS&lt;/td&gt;
          &lt;td&gt;Presentación web HTML&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;mckinsey-pptx&lt;/td&gt;
          &lt;td&gt;@seulee26&lt;/td&gt;
          &lt;td&gt;GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/seulee26/mckinsey-pptx&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;seulee26/mckinsey-pptx&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;426&lt;/td&gt;
          &lt;td&gt;Python&lt;/td&gt;
          &lt;td&gt;PPTX nativo&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;ppt-agent-skills&lt;/td&gt;
          &lt;td&gt;@sunbigfly&lt;/td&gt;
          &lt;td&gt;GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/sunbigfly/ppt-agent-skills&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;sunbigfly/ppt-agent-skills&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;714&lt;/td&gt;
          &lt;td&gt;Python&lt;/td&gt;
          &lt;td&gt;PPTX nativo&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;claude-office-skills&lt;/td&gt;
          &lt;td&gt;@tfriedel&lt;/td&gt;
          &lt;td&gt;GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/tfriedel/claude-office-skills&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;tfriedel/claude-office-skills&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;631&lt;/td&gt;
          &lt;td&gt;Python&lt;/td&gt;
          &lt;td&gt;PPTX nativo&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;ppt-master&lt;/td&gt;
          &lt;td&gt;@hugohe3&lt;/td&gt;
          &lt;td&gt;GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/hugohe3/ppt-master&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;hugohe3/ppt-master&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16,626&lt;/td&gt;
          &lt;td&gt;Python&lt;/td&gt;
          &lt;td&gt;PPTX nativo&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;NanoBanana-PPT-Skills&lt;/td&gt;
          &lt;td&gt;@op7418 (Guizang)&lt;/td&gt;
          &lt;td&gt;GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/op7418/NanoBanana-PPT-Skills&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;op7418/NanoBanana-PPT-Skills&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2,668&lt;/td&gt;
          &lt;td&gt;Python&lt;/td&gt;
          &lt;td&gt;Impulsado por imágenes de IA&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;gpt_image_2_skill&lt;/td&gt;
          &lt;td&gt;@wuyoscar&lt;/td&gt;
          &lt;td&gt;GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/wuyoscar/gpt_image_2_skill&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;wuyoscar/gpt_image_2_skill&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2,102&lt;/td&gt;
          &lt;td&gt;Python&lt;/td&gt;
          &lt;td&gt;Impulsado por imágenes de IA&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;ppt-image-first&lt;/td&gt;
          &lt;td&gt;@NyxTides&lt;/td&gt;
          &lt;td&gt;GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/NyxTides/ppt-image-first&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;NyxTides/ppt-image-first&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;799&lt;/td&gt;
          &lt;td&gt;Python&lt;/td&gt;
          &lt;td&gt;Impulsado por imágenes de IA&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Office-PowerPoint-MCP-Server&lt;/td&gt;
          &lt;td&gt;@GongRzhe&lt;/td&gt;
          &lt;td&gt;GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/GongRzhe/Office-PowerPoint-MCP-Server&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;GongRzhe/Office-PowerPoint-MCP-Server&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1,708&lt;/td&gt;
          &lt;td&gt;Python&lt;/td&gt;
          &lt;td&gt;MCP / capa de protocolo&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;PPTAgent&lt;/td&gt;
          &lt;td&gt;@icip-cas&lt;/td&gt;
          &lt;td&gt;GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/icip-cas/PPTAgent&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;icip-cas/PPTAgent&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4,354&lt;/td&gt;
          &lt;td&gt;Python&lt;/td&gt;
          &lt;td&gt;MCP / capa de protocolo&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;open-design&lt;/td&gt;
          &lt;td&gt;@nexu-io&lt;/td&gt;
          &lt;td&gt;Artículo interno: &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/18/open-design-open-source-claude-design-alternative/&#34; &gt;open-design&lt;/a&gt;&lt;br&gt;GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/nexu-io/open-design&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;nexu-io/open-design&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;40,822&lt;/td&gt;
          &lt;td&gt;TypeScript&lt;/td&gt;
          &lt;td&gt;Plataforma de diseño integrada&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;docsagent&lt;/td&gt;
          &lt;td&gt;@docsagent&lt;/td&gt;
          &lt;td&gt;GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/docsagent/docsagent&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;docsagent/docsagent&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;687&lt;/td&gt;
          &lt;td&gt;TypeScript&lt;/td&gt;
          &lt;td&gt;Plataforma de diseño integrada&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;cómo-elegir&#34;&gt;Cómo elegir
&lt;/h2&gt;&lt;p&gt;Si el cliente necesita seguir editando, prioriza la ruta de PPTX nativo, especialmente &lt;a class=&#34;link&#34; href=&#34;https://github.com/hugohe3/ppt-master&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ppt-master&lt;/a&gt;, &lt;a class=&#34;link&#34; href=&#34;https://github.com/seulee26/mckinsey-pptx&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;mckinsey-pptx&lt;/a&gt; y &lt;a class=&#34;link&#34; href=&#34;https://github.com/sunbigfly/ppt-agent-skills&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ppt-agent-skills&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Si vas a presentar tú mismo y la expresión visual pesa más que la edición posterior, prioriza la ruta HTML, especialmente &lt;a class=&#34;link&#34; href=&#34;https://github.com/zarazhangrui/frontend-slides&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;frontend-slides&lt;/a&gt;, &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/09/guizang-ppt-skill-huashu-design-agent-skills/&#34; &gt;guizang-ppt-skill&lt;/a&gt; y &lt;a class=&#34;link&#34; href=&#34;https://github.com/lewislulu/html-ppt-skill&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;html-ppt-skill&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Si el objetivo es una pieza con sensación de póster, portada o imagen para difusión, prioriza la ruta de imágenes, como &lt;a class=&#34;link&#34; href=&#34;https://github.com/NyxTides/ppt-image-first&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ppt-image-first&lt;/a&gt;, &lt;a class=&#34;link&#34; href=&#34;https://github.com/wuyoscar/gpt_image_2_skill&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;gpt_image_2_skill&lt;/a&gt; y &lt;a class=&#34;link&#34; href=&#34;https://github.com/op7418/NanoBanana-PPT-Skills&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;NanoBanana-PPT-Skills&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Si ya tienes un archivo PPT y solo quieres que la IA te ayude a leerlo, editarlo y reorganizarlo, mira la ruta MCP.&lt;/p&gt;
&lt;p&gt;Para escenarios claros como academia, marketing, traducción o compresión de informes largos, también puedes buscar Skills verticales en lugar de forzar un generador generalista de PPT.&lt;/p&gt;
&lt;h2 id=&#34;notas-finales&#34;&gt;Notas finales
&lt;/h2&gt;&lt;p&gt;No conviene juzgar proyectos open source solo por sus Star. Antes de usarlos de verdad, confirma tres cosas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si la LICENSE permite tu forma de uso.&lt;/li&gt;
&lt;li&gt;Si el resultado generado cumple los requisitos de entrega, especialmente la editabilidad.&lt;/li&gt;
&lt;li&gt;Si el coste es aceptable, incluyendo llamadas a modelos, generación de imágenes, modelos de contexto largo y posibles servicios cloud.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas herramientas cambian muy rápido. Los Star cambian y el estado de mantenimiento también. Pero la lógica de selección es relativamente estable: primero define la forma de entrega y luego mira las herramientas concretas. Si un PPT es para presentar, para que otros lo editen o para que otros lo miren, esas tres respuestas suelen reducir mucho el rango de opciones.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>wx-cli explicado: consultar el historial local de WeChat desde la línea de comandos</title>
        <link>https://knightli.com/es/2026/05/18/wx-cli-wechat-local-data-command-line-tool/</link>
        <pubDate>Mon, 18 May 2026 21:02:21 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/18/wx-cli-wechat-local-data-command-line-tool/</guid>
        <description>&lt;p&gt;&lt;code&gt;wx-cli&lt;/code&gt; es una herramienta de línea de comandos escrita en Rust para datos locales de WeChat. Su objetivo es permitirte consultar desde la terminal tus propias sesiones de WeChat, historial de chats, contactos, miembros de grupos, favoritos, Moments, artículos de cuentas oficiales, adjuntos y estadísticas.&lt;/p&gt;
&lt;p&gt;No es un servicio de sincronización de WeChat en la nube, ni un chatbot. Se parece más a una capa local de recuperación de datos en modo solo lectura: WeChat sigue ejecutándose en tu máquina, los datos siguen quedándose en tu máquina, y &lt;code&gt;wx-cli&lt;/code&gt; se encarga de descifrar, cachear y consultar las bases de datos locales bajo demanda, para después devolver resultados en YAML o JSON a una persona o a un Agent.&lt;/p&gt;
&lt;p&gt;Hay dos puntos que hacen interesante este proyecto. Primero, convierte la consulta de datos locales de WeChat en una CLI multiplataforma. Segundo, tiene en cuenta de forma explícita los escenarios de AI Agent con herramientas como Claude Code, Cursor y Codex, ofreciendo un archivo &lt;code&gt;SKILL.md&lt;/code&gt; y salida estructurada con campos &lt;code&gt;meta&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;qué-puede-hacer-wx-cli&#34;&gt;Qué puede hacer wx-cli
&lt;/h2&gt;&lt;p&gt;Según el README del proyecto, &lt;code&gt;wx-cli&lt;/code&gt; cubre un conjunto de funciones bastante completo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ver sesiones recientes y sesiones no leídas.&lt;/li&gt;
&lt;li&gt;Consultar el historial de chat de un contacto o grupo.&lt;/li&gt;
&lt;li&gt;Buscar palabras clave en toda la base de datos local.&lt;/li&gt;
&lt;li&gt;Ver mensajes nuevos.&lt;/li&gt;
&lt;li&gt;Consultar contactos, miembros de grupos y apodos dentro de grupos.&lt;/li&gt;
&lt;li&gt;Consultar favoritos.&lt;/li&gt;
&lt;li&gt;Consultar notificaciones, línea de tiempo y contenido de Moments.&lt;/li&gt;
&lt;li&gt;Consultar artículos enviados por cuentas oficiales.&lt;/li&gt;
&lt;li&gt;Listar y extraer adjuntos de imágenes en chats.&lt;/li&gt;
&lt;li&gt;Generar estadísticas de chat.&lt;/li&gt;
&lt;li&gt;Exportar historiales de chat como Markdown o JSON.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas capacidades hacen que no sea solo una herramienta para &amp;ldquo;buscar chats&amp;rdquo;, sino una forma de convertir los datos locales de WeChat en una base de información local que se puede buscar, analizar y exportar.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-encaja-con-ai-agents&#34;&gt;Por qué encaja con AI Agents
&lt;/h2&gt;&lt;p&gt;Muchas herramientas CLI están pensadas solo para personas, y su salida es un bloque de texto. &lt;code&gt;wx-cli&lt;/code&gt;, en cambio, claramente considera la lectura por parte de agentes.&lt;/p&gt;
&lt;p&gt;El README menciona que comandos como &lt;code&gt;history&lt;/code&gt;, &lt;code&gt;search&lt;/code&gt;, &lt;code&gt;sessions&lt;/code&gt;, &lt;code&gt;unread&lt;/code&gt;, &lt;code&gt;new-messages&lt;/code&gt;, &lt;code&gt;stats&lt;/code&gt; y &lt;code&gt;attachments&lt;/code&gt; incluyen información &lt;code&gt;meta&lt;/code&gt;. Esa metadata contiene estado del resultado, shards desconocidos, la hora más reciente de los datos encontrados, la hora más reciente registrada en la session y otros campos similares.&lt;/p&gt;
&lt;p&gt;Esto es útil para un Agent. La IA no solo necesita saber &amp;ldquo;qué se encontró&amp;rdquo;; también necesita saber si el resultado está actualizado, si puede faltar algún mensaje y si conviene ejecutar &lt;code&gt;init&lt;/code&gt; de nuevo. Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;status&lt;/code&gt; puede indicar si el resultado es &lt;code&gt;ok&lt;/code&gt; o &lt;code&gt;possibly_stale&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;unknown_shards&lt;/code&gt; puede indicar si existen shards de base de datos para los que el daemon aún no tiene key.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;chat_latest_timestamp&lt;/code&gt; le dice al Agent cuál es la hora del mensaje más reciente en los datos encontrados.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;session_last_timestamp&lt;/code&gt; ayuda a determinar si el registro local de la session está claramente por delante del resultado de la consulta.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Este tipo de metadata reduce errores de juicio de la IA y hace que herramientas como Claude Code, Cursor y Codex sean más fiables al trabajar con datos de WeChat.&lt;/p&gt;
&lt;h2 id=&#34;instalación&#34;&gt;Instalación
&lt;/h2&gt;&lt;p&gt;El proyecto recomienda la instalación multiplataforma mediante npm:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -g @jackwener/wx-cli
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;También admite instalación con curl en macOS / Linux:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -fsSL https://raw.githubusercontent.com/jackwener/wx-cli/main/install.sh &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;En Windows, ejecútalo en PowerShell como administrador:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;irm &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;https&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;//&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;raw&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;githubusercontent&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;com&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;jackwener&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;wx-cli&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;install&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;ps1&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;iex
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si quieres compilar desde el código fuente, también puedes usar Rust directamente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone git@github.com:jackwener/wx-cli.git &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; wx-cli
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cargo build --release
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El artefacto generado es &lt;code&gt;target/release/wx&lt;/code&gt;; en Windows, &lt;code&gt;wx.exe&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;relación-con-agent-skills&#34;&gt;Relación con Agent Skills
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;wx-cli&lt;/code&gt; también ofrece una Skill orientada a AI Agents. Se puede instalar con un solo comando en Claude Code, Cursor, Codex y otros entornos compatibles con Skills mediante la skills CLI:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npx skills add jackwener/wx-cli
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Instalación global:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npx skills add jackwener/wx-cli -g
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Después de instalarla, el Agent lee el &lt;code&gt;SKILL.md&lt;/code&gt; del repositorio y entiende cómo instalar, inicializar y llamar a &lt;code&gt;wx-cli&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Esto significa que puedes pedir a un Agent que te ayude con tareas locales de organización de información, por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Encontrar palabras clave comentadas en un grupo durante un periodo determinado.&lt;/li&gt;
&lt;li&gt;Resumir mensajes recientes no leídos.&lt;/li&gt;
&lt;li&gt;Exportar el historial reciente de una sesión concreta.&lt;/li&gt;
&lt;li&gt;Buscar enlaces de artículos de cuentas oficiales.&lt;/li&gt;
&lt;li&gt;Analizar estadísticas de participación en un grupo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La condición sigue siendo la misma: esos datos deben ser tus propios datos de WeChat, en tu propia máquina.&lt;/p&gt;
&lt;h2 id=&#34;uso-básico&#34;&gt;Uso básico
&lt;/h2&gt;&lt;p&gt;Antes de inicializar, mantén WeChat en ejecución. Los requisitos varían según la plataforma.&lt;/p&gt;
&lt;p&gt;En Linux:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo wx init
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;En Windows, usa PowerShell como administrador:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;wx&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;init&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;En macOS es más complejo. El README explica que, con la ruta predeterminada, primero hay que aplicar una firma ad-hoc a WeChat para poder escanear la memoria del proceso. Después de volver a firmar, también hay que limpiar registros antiguos de autorización TCC; de lo contrario, permisos como captura de pantalla, videollamadas o micrófono pueden parecer activados pero estar realmente denegados. La documentación del proyecto también advierte que volver a firmar puede hacer que macOS muestre con frecuencia avisos para acceder a datos de otras apps.&lt;/p&gt;
&lt;p&gt;Después de inicializar, puedes verificarlo con:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx sessions
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si ves las sesiones recientes, la ruta básica ya funciona. El daemon se inicia automáticamente en la primera llamada.&lt;/p&gt;
&lt;h2 id=&#34;ejemplos-de-comandos-comunes&#34;&gt;Ejemplos de comandos comunes
&lt;/h2&gt;&lt;p&gt;Ver sesiones recientes:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx sessions
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Ver sesiones no leídas:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx unread
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Mostrar solo no leídos de personas y grupos, filtrando cuentas oficiales y entradas plegadas:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx unread --filter private,group
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Ver el historial reciente de una sesión:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx &lt;span class=&#34;nb&#34;&gt;history&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;张三&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Obtener más historial:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx &lt;span class=&#34;nb&#34;&gt;history&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;张三&amp;#34;&lt;/span&gt; -n &lt;span class=&#34;m&#34;&gt;2000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Consultar un grupo por rango de fechas:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx &lt;span class=&#34;nb&#34;&gt;history&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;AI群&amp;#34;&lt;/span&gt; --since 2026-04-01 --until 2026-04-15
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Buscar en toda la base:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx search &lt;span class=&#34;s2&#34;&gt;&amp;#34;关键词&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Buscar una palabra clave dentro de un grupo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx search &lt;span class=&#34;s2&#34;&gt;&amp;#34;会议&amp;#34;&lt;/span&gt; --in &lt;span class=&#34;s2&#34;&gt;&amp;#34;工作群&amp;#34;&lt;/span&gt; --since 2026-01-01
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Exportar historial de chat:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx &lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;张三&amp;#34;&lt;/span&gt; --format markdown -o chat.md
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx &lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;AI群&amp;#34;&lt;/span&gt; --since 2026-01-01 --format json
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Estos comandos encajan bien con scripts o Agents, sobre todo cuando se combinan con &lt;code&gt;--json&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;moments-y-artículos-de-cuentas-oficiales&#34;&gt;Moments y artículos de cuentas oficiales
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;wx-cli&lt;/code&gt; no se limita a consultar chats.&lt;/p&gt;
&lt;p&gt;Los comandos relacionados con Moments se dividen en notificaciones y publicaciones:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx sns-notifications
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx sns-feed
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx sns-search &lt;span class=&#34;s2&#34;&gt;&amp;#34;关键词&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Conviene tener presente que los datos de Moments solo cubren contenido que haya aparecido localmente. El cliente de WeChat descarga datos bajo demanda; si algo nunca apareció en tu entorno local, la herramienta no puede obtenerlo de la nada.&lt;/p&gt;
&lt;p&gt;Los artículos de cuentas oficiales se consultan mediante comandos independientes:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx biz-articles
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx biz-articles --account &lt;span class=&#34;s2&#34;&gt;&amp;#34;返朴&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx biz-articles --since 2026-05-01 --until 2026-05-10
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx biz-articles --json &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; jq &lt;span class=&#34;s1&#34;&gt;&amp;#39;.[].url&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Devuelve campos como nombre de la cuenta oficial, título, URL, resumen, portada y hora. Para quienes organizan referencias, recopilan artículos o construyen una base de conocimiento local, esta función resulta muy práctica.&lt;/p&gt;
&lt;h2 id=&#34;extracción-de-adjuntos&#34;&gt;Extracción de adjuntos
&lt;/h2&gt;&lt;p&gt;Los adjuntos de imagen en chats de WeChat normalmente no son archivos de imagen corrientes que se puedan leer directamente. Suelen existir como archivos &lt;code&gt;.dat&lt;/code&gt; bajo &lt;code&gt;xwechat_files/&amp;lt;wxid&amp;gt;/msg/attach/...&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;wx-cli&lt;/code&gt; ofrece un flujo de dos pasos:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx attachments &lt;span class=&#34;s2&#34;&gt;&amp;#34;张三&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx attachments &lt;span class=&#34;s2&#34;&gt;&amp;#34;AI群&amp;#34;&lt;/span&gt; --kind image -n &lt;span class=&#34;m&#34;&gt;100&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Primero obtienes el &lt;code&gt;attachment_id&lt;/code&gt;; después lo extraes:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx extract &amp;lt;attachment_id&amp;gt; -o ~/Desktop/photo.jpg
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El informe de salida incluye campos como &lt;code&gt;md5&lt;/code&gt;, &lt;code&gt;dat_path&lt;/code&gt;, &lt;code&gt;dat_size&lt;/code&gt;, &lt;code&gt;output&lt;/code&gt;, &lt;code&gt;format&lt;/code&gt; y &lt;code&gt;decoder&lt;/code&gt;. El README indica que admite modos de decodificación como legacy XOR, V1 fixed-AES y V2 AES + XOR, y que la extracción de image key varía según la plataforma.&lt;/p&gt;
&lt;p&gt;Esta parte es potente, pero también requiere más cautela: procesa solo tus propios datos y no la uses para acceder a datos sin autorización.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-importa-la-arquitectura-daemon&#34;&gt;Por qué importa la arquitectura daemon
&lt;/h2&gt;&lt;p&gt;El punto de rendimiento de &lt;code&gt;wx-cli&lt;/code&gt; está en su daemon.&lt;/p&gt;
&lt;p&gt;La estructura descrita en el README es aproximadamente esta:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx (CLI) ──Unix socket──▶ wx-daemon (proceso en segundo plano)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                              │
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    ┌─────────┴──────────┐
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;               DBCache               caché de contactos
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           (reutilización sensible a mtime)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Después del primer descifrado, el daemon persiste información de base de datos y mtime en &lt;code&gt;~/.wx-cli/cache/&lt;/code&gt;. Si el mtime del archivo de base de datos no cambió, las llamadas posteriores pueden reutilizar la caché sin volver a descifrarlo todo.&lt;/p&gt;
&lt;p&gt;Esto es clave para consultas de línea de comandos y bucles de Agent. Un Agent puede consultar varias sesiones seguidas, buscar múltiples palabras clave y luego generar estadísticas o exportaciones. Si cada llamada tuviera que escanear y descifrar todo de nuevo, la experiencia sería mala. La caché del daemon lo acerca más a un servicio local de consultas.&lt;/p&gt;
&lt;h2 id=&#34;principio-básico&#34;&gt;Principio básico
&lt;/h2&gt;&lt;p&gt;El README del proyecto explica el principio de forma directa: WeChat 4.x cifra las bases de datos locales con SQLCipher 4, y WCDB cachea la raw key derivada en la memoria del proceso.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;wx-cli&lt;/code&gt; usa métodos diferentes según la plataforma para escanear la memoria del proceso de WeChat, encontrar patrones de key y extraer la clave. Luego el daemon descifra y cachea las bases de datos bajo demanda.&lt;/p&gt;
&lt;p&gt;El mecanismo de bajo nivel varía por plataforma:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;macOS usa Mach VM API.&lt;/li&gt;
&lt;li&gt;Linux usa &lt;code&gt;/proc/&amp;lt;pid&amp;gt;/mem&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Windows usa &lt;code&gt;VirtualQueryEx&lt;/code&gt; y &lt;code&gt;ReadProcessMemory&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas capacidades explican por qué la inicialización suele requerir permisos elevados, y por qué en macOS intervienen firma y autorización de privacidad.&lt;/p&gt;
&lt;h2 id=&#34;límites-y-riesgos-de-uso&#34;&gt;Límites y riesgos de uso
&lt;/h2&gt;&lt;p&gt;Con herramientas de este tipo, primero hay que hablar de límites.&lt;/p&gt;
&lt;p&gt;El descargo de responsabilidad del README de &lt;code&gt;wx-cli&lt;/code&gt; es claro: la herramienta es solo para aprendizaje e investigación, para descifrar tus propios datos de WeChat, y exige cumplir las leyes y regulaciones aplicables. No debe usarse para acceder a datos sin autorización.&lt;/p&gt;
&lt;p&gt;En la práctica, también conviene tener en cuenta lo siguiente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Úsala solo en tu propio ordenador y con tu propia cuenta de WeChat.&lt;/li&gt;
&lt;li&gt;No subas sin pensar historiales de chat exportados a modelos en la nube.&lt;/li&gt;
&lt;li&gt;Si usas un Agent para analizar chats, confirma primero el proveedor de API y los riesgos de transferencia de datos.&lt;/li&gt;
&lt;li&gt;Después de exportar Markdown / JSON, cuida los permisos del archivo y la ubicación de las copias de seguridad.&lt;/li&gt;
&lt;li&gt;En equipos de empresa o compartidos, confirma antes la autorización y el cumplimiento normativo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Una herramienta local no significa que no haya riesgo de privacidad. Reduce la ruta predeterminada por la que los datos salen de tu máquina, pero si entregas la salida a un modelo en la nube, un disco en la nube o un script de terceros, el riesgo vuelve.&lt;/p&gt;
&lt;h2 id=&#34;para-quién-es&#34;&gt;Para quién es
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;wx-cli&lt;/code&gt; encaja en estos escenarios:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Quieres buscar rápidamente tu propio historial de mensajes de WeChat de forma local.&lt;/li&gt;
&lt;li&gt;Necesitas exportar una sesión como Markdown o JSON.&lt;/li&gt;
&lt;li&gt;Quieres analizar la actividad de mensajes de un grupo durante un periodo.&lt;/li&gt;
&lt;li&gt;Quieres que Claude Code, Cursor, Codex u otros Agents organicen material local de WeChat.&lt;/li&gt;
&lt;li&gt;Quieres incorporar enlaces de artículos de cuentas oficiales a una base de conocimiento local.&lt;/li&gt;
&lt;li&gt;Quieres estudiar la estructura local de bases de datos de WeChat y su flujo de descifrado.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No encaja tan bien en estos casos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Quieres sincronización de WeChat en la nube.&lt;/li&gt;
&lt;li&gt;Quieres saltarte permisos de dispositivos o cuentas de otras personas.&lt;/li&gt;
&lt;li&gt;Quieres operar solo con una interfaz gráfica y no tocar la línea de comandos.&lt;/li&gt;
&lt;li&gt;No quieres lidiar con permisos de macOS, derechos de administrador en Windows o sudo en Linux.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;El valor de &lt;code&gt;wx-cli&lt;/code&gt; no es simplemente &amp;ldquo;buscar historiales de chat de WeChat desde la línea de comandos&amp;rdquo;. De forma más precisa, convierte los datos locales de WeChat en una fuente local que se puede consultar, exportar y consumir desde Agents.&lt;/p&gt;
&lt;p&gt;Su arquitectura daemon resuelve los problemas de descifrado repetido y rendimiento de consulta; el wrapper &lt;code&gt;meta&lt;/code&gt; ayuda a los AI Agents a determinar si los resultados están actualizados; y &lt;code&gt;SKILL.md&lt;/code&gt; permite que herramientas como Claude Code, Cursor y Codex entiendan cómo instalarlo y usarlo.&lt;/p&gt;
&lt;p&gt;Si a menudo necesitas encontrar información en WeChat, organizar chats de grupos, exportar registros o construir una base de conocimiento personal, &lt;code&gt;wx-cli&lt;/code&gt; merece atención. Pero al usarlo conviene recordar siempre una regla básica: procesa solo tus propios datos y gestiona con cuidado los resultados exportados.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/jackwener/wx-cli&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Repositorio GitHub de jackwener/wx-cli&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Open Design explicado: convertir Claude Code y Codex en herramientas de diseño con IA</title>
        <link>https://knightli.com/es/2026/05/18/open-design-open-source-claude-design-alternative/</link>
        <pubDate>Mon, 18 May 2026 18:57:16 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/18/open-design-open-source-claude-design-alternative/</guid>
        <description>&lt;p&gt;Open Design es un proyecto open source de diseño con IA creado por nexu-io. Se posiciona como una alternativa local-first y abierta a Claude Design y Figma.&lt;/p&gt;
&lt;p&gt;El problema que intenta resolver es claro: Claude Design demostró que los modelos grandes pueden generar artefactos de diseño directamente, pero si esta capacidad solo existe dentro de un producto cerrado, en la nube y atado a un único modelo, los usuarios no pueden autohospedar, conectar sus propios agentes, cambiar modelos, crear sistemas de diseño privados ni integrar los resultados en un flujo local.&lt;/p&gt;
&lt;p&gt;Open Design no intenta construir un nuevo modelo base. En su lugar, conecta los coding-agent CLI que ya tienes en tu equipo a un espacio de trabajo de diseño. Claude Code, Codex, Cursor Agent, Gemini CLI, OpenCode, Qwen, Copilot CLI, Kimi, DeepSeek TUI y herramientas similares pueden convertirse en su motor de diseño.&lt;/p&gt;
&lt;h2 id=&#34;qué-es-open-design&#34;&gt;Qué es Open Design
&lt;/h2&gt;&lt;p&gt;Open Design puede entenderse como la combinación de tres partes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Una Web UI para conversar, previsualizar, gestionar proyectos y exportar.&lt;/li&gt;
&lt;li&gt;Un daemon local que coordina agentes, gestiona archivos, guarda proyectos y ofrece APIs.&lt;/li&gt;
&lt;li&gt;Un conjunto de Skills, Design Systems y plantillas que guían al agente para generar artefactos de diseño, no páginas genéricas de IA.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Después de que el usuario introduce una petición, Open Design no se limita a enviar una frase al modelo. Primero pide completar el brief de diseño, elegir escenario y dirección, y luego inyecta metadatos del proyecto, el sistema de diseño activo, archivos de Skill, plantillas y checklists en el contexto del agente. El agente lee y escribe archivos en una carpeta real de proyecto y genera un artifact que se previsualiza en un iframe con sandbox.&lt;/p&gt;
&lt;p&gt;Eso lo acerca más a un flujo de diseño con IA que a un generador de páginas de un solo disparo.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-no-es-un-generador-web-de-ia-común&#34;&gt;Por qué no es un generador web de IA común
&lt;/h2&gt;&lt;p&gt;Muchas herramientas de IA pueden generar una página HTML. El foco de Open Design no es &amp;ldquo;hacer que el modelo escriba una página&amp;rdquo;, sino &amp;ldquo;hacer que el modelo siga un proceso de diseño para entregar artefactos que puedan previsualizarse, exportarse e iterarse&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Destaca varias decisiones:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Preguntar antes de generar. Un nuevo design brief empieza con un question form interactivo para fijar audiencia, tono, contexto de marca, restricciones y dirección visual.&lt;/li&gt;
&lt;li&gt;Skills son archivos, no plugins de caja negra. Cada Skill contiene &lt;code&gt;SKILL.md&lt;/code&gt;, &lt;code&gt;assets/&lt;/code&gt; y &lt;code&gt;references/&lt;/code&gt;, por lo que puede leerse, reemplazarse y ampliarse.&lt;/li&gt;
&lt;li&gt;Design Systems son Markdown, no JSON de tema fijo. Color, tipografía, espaciado, componentes, movimiento, voz de marca y antipatrones pueden escribirse en &lt;code&gt;DESIGN.md&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;El agente trabaja en un directorio real de proyecto. Puede leer plantillas, escribir archivos, generar imágenes y producir &lt;code&gt;.pptx&lt;/code&gt;, &lt;code&gt;.pdf&lt;/code&gt;, &lt;code&gt;.zip&lt;/code&gt; y otros archivos.&lt;/li&gt;
&lt;li&gt;Los artifacts se previsualizan en un iframe con sandbox, reduciendo el riesgo de ejecutar directamente código no controlado.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El objetivo es que la IA se parezca más a un colaborador de diseño con reglas, materiales y checklists.&lt;/p&gt;
&lt;h2 id=&#34;qué-agentes-soporta&#34;&gt;Qué agentes soporta
&lt;/h2&gt;&lt;p&gt;Uno de los puntos fuertes de Open Design es que trata a los agentes como runtime, en lugar de fijarse a un solo proveedor de modelos.&lt;/p&gt;
&lt;p&gt;El README lista soporte para Claude Code, Codex CLI, Devin for Terminal, Cursor Agent, Gemini CLI, OpenCode, Qwen Code, Qoder CLI, GitHub Copilot CLI, Hermes, Kimi, Pi, Kiro, Kilo, Mistral Vibe, DeepSeek TUI y otros. Detecta estos CLI desde &lt;code&gt;PATH&lt;/code&gt; y permite cambiar entre ellos.&lt;/p&gt;
&lt;p&gt;Si no hay un CLI local adecuado, también puede usar un proxy BYOK compatible con OpenAI. El usuario proporciona &lt;code&gt;baseUrl&lt;/code&gt;, &lt;code&gt;apiKey&lt;/code&gt; y modelo, y el daemon normaliza la salida en streaming al mismo flujo de chat.&lt;/p&gt;
&lt;p&gt;Este diseño aporta varios beneficios:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No bloquea al usuario en un único modelo.&lt;/li&gt;
&lt;li&gt;Reutiliza agentes ya instalados y configurados por el usuario.&lt;/li&gt;
&lt;li&gt;El daemon gestiona lecturas y escrituras locales de archivos, con límites de permisos más claros.&lt;/li&gt;
&lt;li&gt;Para empresas y usuarios avanzados, facilita conectar modelos propios y proveedores de API.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;skills-y-design-systems-son-sus-activos-centrales&#34;&gt;Skills y Design Systems son sus activos centrales
&lt;/h2&gt;&lt;p&gt;Open Design incluye muchas Skills y Design Systems. El README menciona Skills para prototipos web, SaaS landing pages, dashboards, mobile apps, gamified apps, carruseles sociales, posters tipo revista, decks, actualizaciones semanales, informes financieros, HR onboarding, facturas, kanban, OKRs y más.&lt;/p&gt;
&lt;p&gt;Design Systems proporciona restricciones visuales de marca al agente. La descripción del repositorio menciona fuentes como Linear, Stripe, Vercel, Airbnb, Tesla, Notion, Apple, Anthropic, Cursor, Supabase, Figma, Xiaohongshu y otras.&lt;/p&gt;
&lt;p&gt;La relación es sencilla:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Skill decide qué tipo de artifact se debe entregar.&lt;/li&gt;
&lt;li&gt;Design System decide qué estilo de marca debe seguir.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Sin estas dos capas, la IA tiende a generar páginas genéricas que se ven familiares pero carecen de criterio. Con Skills y Design Systems, el modelo tiene límites de tarea, referencias visuales y reglas de revisión más claras.&lt;/p&gt;
&lt;h2 id=&#34;qué-puede-generar&#34;&gt;Qué puede generar
&lt;/h2&gt;&lt;p&gt;Open Design no se limita a prototipos web.&lt;/p&gt;
&lt;p&gt;Según el README, cubre web, desktop, mobile prototypes, slides, images, videos, HyperFrames y más. También soporta exportación a HTML, PDF, PPTX, ZIP y Markdown. La generación multimedia entra en el mismo ciclo de diseño: posters, avatares, infografías, mapas ilustrados, videos cortos y motion graphics HTML a MP4.&lt;/p&gt;
&lt;p&gt;Esto amplía los usos posibles:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Equipos startup pueden crear pitch decks rápidamente.&lt;/li&gt;
&lt;li&gt;Equipos de producto pueden generar landing pages o prototipos funcionales.&lt;/li&gt;
&lt;li&gt;Equipos de operaciones pueden crear páginas de campaña, imágenes sociales y reportes semanales.&lt;/li&gt;
&lt;li&gt;Diseñadores pueden usarlo para moodboards, direcciones visuales y primeros layouts.&lt;/li&gt;
&lt;li&gt;Desarrolladores pueden convertir requisitos en artifacts frontend ejecutables.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Su valor no es solo generar una página, sino poner múltiples formatos de contenido dentro del mismo workflow de agentes.&lt;/p&gt;
&lt;h2 id=&#34;qué-significa-local-first&#34;&gt;Qué significa local-first
&lt;/h2&gt;&lt;p&gt;Open Design enfatiza local-first. No entrega todo a un backend SaaS remoto, sino que ejecuta un daemon local y un workspace de proyecto local.&lt;/p&gt;
&lt;p&gt;La arquitectura descrita en el README se resume así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Frontend con Next.js, React y TypeScript.&lt;/li&gt;
&lt;li&gt;Daemon local con Node, Express, SQLite y SSE.&lt;/li&gt;
&lt;li&gt;Proyectos, sesiones, mensajes, tabs y plantillas guardados en SQLite local y &lt;code&gt;.od/projects/&amp;lt;id&amp;gt;/&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Agentes iniciados con &lt;code&gt;child_process.spawn&lt;/code&gt;, leyendo y escribiendo en carpetas de artifact del proyecto.&lt;/li&gt;
&lt;li&gt;Vista previa mediante iframe con sandbox.&lt;/li&gt;
&lt;li&gt;Exportación a HTML, PDF, PPTX, ZIP y Markdown.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esta estructura encaja con usuarios que quieren mantener los resultados en su máquina, conectar agentes locales, controlar API keys y mantener workspaces privados.&lt;/p&gt;
&lt;p&gt;Pero local-first no significa totalmente offline. La generación real depende del agente y modelo utilizados. Si usas una API de modelo en la nube, el contenido irá a ese proveedor. Una descripción más precisa es que Open Design trae workspace, scheduling, archivos y preview al control local, y deja la capa de modelo a elección del usuario.&lt;/p&gt;
&lt;h2 id=&#34;relación-con-claude-design-y-figma&#34;&gt;Relación con Claude Design y Figma
&lt;/h2&gt;&lt;p&gt;Open Design se describe en el README como una alternativa open source a Claude Design y Figma, pero no es un clon tradicional de Figma.&lt;/p&gt;
&lt;p&gt;Figma es una herramienta profesional para edición manual, colaboración y entrega de diseño. Open Design es más agent-native: el usuario guía agentes mediante lenguaje natural, formularios, Skills y sistemas de diseño para producir artifacts ejecutables.&lt;/p&gt;
&lt;p&gt;Combina varias ideas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La experiencia artifact-first de Claude Design.&lt;/li&gt;
&lt;li&gt;La conciencia de sistemas de diseño de Figma.&lt;/li&gt;
&lt;li&gt;La capacidad de lectura, escritura y ejecución de agentes como Claude Code y Codex.&lt;/li&gt;
&lt;li&gt;Gestión local de proyectos y preview en sandbox mediante daemon.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por eso quizá no reemplace todo el flujo profesional de diseño, pero sí funciona como ruta rápida desde una idea hasta un prototipo previsualizable.&lt;/p&gt;
&lt;h2 id=&#34;para-quién-es&#34;&gt;Para quién es
&lt;/h2&gt;&lt;p&gt;Open Design encaja mejor con:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Desarrolladores que ya usan Claude Code, Codex, Cursor, Gemini CLI y agentes similares.&lt;/li&gt;
&lt;li&gt;Usuarios que quieren gestionar outputs de diseño con IA dentro de carpetas locales de proyecto.&lt;/li&gt;
&lt;li&gt;Equipos startup que necesitan prototipos web, decks, posters y materiales de marketing rápidamente.&lt;/li&gt;
&lt;li&gt;Usuarios avanzados que quieren personalizar Skills, Design Systems y prompt stacks.&lt;/li&gt;
&lt;li&gt;Equipos que no quieren quedar atados a un solo modelo o producto cloud.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Encaja peor con:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Usuarios ligeros que solo quieren abrir una web, escribir una frase y descargar una imagen.&lt;/li&gt;
&lt;li&gt;Personas que no quieren tocar Node, pnpm, daemons, CLIs ni configuración local.&lt;/li&gt;
&lt;li&gt;Flujos Figma profesionales que necesitan colaboración madura, revisión de diseño y edición vectorial.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En resumen, Open Design parece más una herramienta para usuarios de agentes y equipos de diseño técnicos que un SaaS ligero de diseño para todo el mundo.&lt;/p&gt;
&lt;h2 id=&#34;aspectos-a-tener-en-cuenta&#34;&gt;Aspectos a tener en cuenta
&lt;/h2&gt;&lt;p&gt;El README marca el proyecto como &lt;code&gt;0.8.0-preview&lt;/code&gt; y señala que aún evoluciona rápidamente. Esa actividad es buena, pero también significa que APIs, directorios de datos, migración de la app desktop, estructura de Skills y flujos de exportación pueden cambiar.&lt;/p&gt;
&lt;p&gt;Antes de usarlo en serio:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No lo trates como una plataforma empresarial de diseño plenamente estable.&lt;/li&gt;
&lt;li&gt;Prueba el flujo con proyectos de test antes de importar materiales importantes.&lt;/li&gt;
&lt;li&gt;Haz backup de &lt;code&gt;.od/&lt;/code&gt; antes de migrar datos y asegúrate de detener el daemon y la app desktop.&lt;/li&gt;
&lt;li&gt;Al usar BYOK, cuida API keys, URLs de proxy y riesgos de acceso a redes privadas locales.&lt;/li&gt;
&lt;li&gt;Revisa manualmente los diseños generados, especialmente marca, copyright, copy y consistencia visual.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La ventaja del open source es que puede inspeccionarse, modificarse y recibir contribuciones. El costo es aceptar cierta fricción de ingeniería.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Lo interesante de Open Design no es solo ser una alternativa open source a Claude Design. Lo importante es cómo organiza Agent CLIs, Skills, Design Systems, daemon local y preview en sandbox dentro de un mismo workflow de diseño.&lt;/p&gt;
&lt;p&gt;Mueve la generación de diseño desde un prompt único hacia un proceso más estructurado: preguntar, elegir dirección, cargar un sistema de diseño, leer la Skill, escribir archivos reales, previsualizar el artifact y exportar el resultado.&lt;/p&gt;
&lt;p&gt;Si ya usas Claude Code, Codex o Cursor para trabajar con código, Open Design merece atención. Representa una nueva forma de producto: la IA no solo dibuja una imagen, sino que trabaja dentro de un espacio de proyecto local, siguiendo sistemas de diseño y habilidades de tarea, para generar artefactos de diseño que pueden seguir iterándose.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/nexu-io/open-design&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Repositorio GitHub nexu-io/open-design&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Guía para ahorrar tokens en Claude Code: cómo modelos, MCP, CLAUDE.md y Skills afectan la caché</title>
        <link>https://knightli.com/es/2026/05/18/claude-code-prompt-cache-token-optimization/</link>
        <pubDate>Mon, 18 May 2026 18:30:24 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/18/claude-code-prompt-cache-token-optimization/</guid>
        <description>&lt;p&gt;En tareas largas con Claude Code, la tasa de aciertos de Prompt Cache afecta directamente el costo y la velocidad. Muchos usuarios saben que la caché puede ahorrar tokens, pero no qué acciones hacen que falle de repente.&lt;/p&gt;
&lt;p&gt;La forma más simple de entenderlo es imaginar cada petición como una cadena de contexto de izquierda a derecha:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;tools -&amp;gt; system -&amp;gt; CLAUDE.md / skills -&amp;gt; messages
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Cuanto más a la izquierda está un contenido, más estable debería ser y mayor es el beneficio de cachearlo. Si cambia una sección de la izquierda, todo lo que va después puede necesitar recalcularse. Si cambia algo a la derecha, el impacto suele ser menor.&lt;/p&gt;
&lt;p&gt;Optimizar Prompt Cache en Claude Code no es magia. La regla es simple: antes de iniciar una tarea, prepara modelo, servidores MCP, Skills, &lt;code&gt;CLAUDE.md&lt;/code&gt; y el contexto base. Una vez iniciada, cambia lo menos posible esa parte fija.&lt;/p&gt;
&lt;h2 id=&#34;prompt-cache-no-guarda-texto-plano&#34;&gt;Prompt Cache no guarda texto plano
&lt;/h2&gt;&lt;p&gt;Prompt Cache no es solo una caché de cadenas de texto. En la inferencia Transformer, lo importante es el estado Key/Value calculado por las capas de atención a partir del prefijo de contexto, lo que solemos llamar KV cache.&lt;/p&gt;
&lt;p&gt;Eso implica dos cosas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si el prefijo se mantiene estable, parte del cálculo previo puede reutilizarse.&lt;/li&gt;
&lt;li&gt;Si cambian el modelo, las definiciones de herramientas, el prompt del sistema o los mensajes iniciales, las entradas antiguas de caché pueden dejar de coincidir.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La documentación de Anthropic resume la jerarquía de invalidación como &lt;code&gt;tools -&amp;gt; system -&amp;gt; messages&lt;/code&gt;. Cambiar definiciones de herramientas puede invalidar toda la caché; cambios en system afectan system y messages; cambios en messages afectan sobre todo la caché de mensajes.&lt;/p&gt;
&lt;p&gt;Claude Code añade otras fuentes de contexto como &lt;code&gt;CLAUDE.md&lt;/code&gt;, Skills, MCP, plugins y subagents, así que es fácil romper la caché sin querer.&lt;/p&gt;
&lt;h2 id=&#34;asesino-de-caché-1-cambiar-de-modelo-a-mitad-de-tarea&#34;&gt;Asesino de caché 1: cambiar de modelo a mitad de tarea
&lt;/h2&gt;&lt;p&gt;Cambiar de modelo es una de las operaciones más caras.&lt;/p&gt;
&lt;p&gt;Prompt Cache está aislada por modelo. Opus, Sonnet y Haiku tienen arquitecturas y pesos distintos, así que el KV cache calculado desde el mismo texto no es intercambiable. Si construyes un contexto largo en Opus y luego cambias a Sonnet, Sonnet no puede reutilizar la caché de Opus.&lt;/p&gt;
&lt;p&gt;Esto produce un resultado poco intuitivo: cambiar a un modelo más barato a mitad de tarea puede hacer inútil la caché acumulada. El contexto que podría leerse a precio de cache read quizá tenga que escribirse y calcularse de nuevo.&lt;/p&gt;
&lt;p&gt;Un patrón más estable:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mantén la conversación principal en un solo modelo.&lt;/li&gt;
&lt;li&gt;Usa un subagent para tareas laterales que puedan ejecutarse con un modelo más barato.&lt;/li&gt;
&lt;li&gt;Deja que el agente lateral busque, explore o resuma, y devuelva un resultado breve a la conversación principal.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Así el prefijo largo de la conversación principal se mantiene estable y la caché acierta con más consistencia.&lt;/p&gt;
&lt;h2 id=&#34;asesino-de-caché-2-añadir-mcp-o-recargar-plugins-a-mitad-de-tarea&#34;&gt;Asesino de caché 2: añadir MCP o recargar plugins a mitad de tarea
&lt;/h2&gt;&lt;p&gt;MCP proporciona herramientas a Claude Code. Al añadir un servidor MCP, cambia la lista de herramientas, y las definiciones de herramientas están en el extremo izquierdo de la cadena de contexto.&lt;/p&gt;
&lt;p&gt;Desde la perspectiva de Prompt Cache, cuando cambia la lista de herramientas, system y messages pueden necesitar recalcularse. Si usas muchos MCP, las definiciones de herramientas pueden ocupar muchos tokens, y el costo de invalidación se nota.&lt;/p&gt;
&lt;p&gt;Un detalle importante: Claude Code suele leer la configuración MCP al iniciar la sesión. Cambiar configuración durante la sesión no siempre afecta de inmediato. Los momentos peligrosos son reiniciar, hacer resume, recargar plugins o reconstruir la lista de herramientas.&lt;/p&gt;
&lt;p&gt;Recomendaciones:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Instala los MCP necesarios antes de iniciar una tarea larga.&lt;/li&gt;
&lt;li&gt;Evita descubrir a mitad de trabajo que falta una herramienta y recargar.&lt;/li&gt;
&lt;li&gt;Reduce los MCP habilitados por defecto cuando sea posible.&lt;/li&gt;
&lt;li&gt;No mantengas servidores MCP raramente usados siempre activos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Las definiciones de herramientas estables son la base de una Prompt Cache estable.&lt;/p&gt;
&lt;h2 id=&#34;asesino-de-caché-3-editar-claudemd-durante-la-sesión&#34;&gt;Asesino de caché 3: editar CLAUDE.md durante la sesión
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; es el archivo de memoria de proyecto de Claude Code. Sirve para comandos de build, tests, convenciones de arquitectura, estilo de código y restricciones del proyecto.&lt;/p&gt;
&lt;p&gt;Es útil, pero también entra en el contexto. La ayuda de Claude explica que &lt;code&gt;CLAUDE.md&lt;/code&gt; se lee al iniciar la sesión y se entrega como mensaje de usuario. También se beneficia de Prompt Cache: la primera petición paga el precio completo de entrada, y las siguientes pueden usar el precio menor de cache read si la caché sigue válida.&lt;/p&gt;
&lt;p&gt;El problema es que &lt;code&gt;CLAUDE.md&lt;/code&gt; se identifica por contenido. Si cambias el archivo, la caché antigua deja de coincidir.&lt;/p&gt;
&lt;p&gt;Por eso conviene no editar &lt;code&gt;CLAUDE.md&lt;/code&gt; con frecuencia durante tareas largas. Mejor:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Revisa si &lt;code&gt;CLAUDE.md&lt;/code&gt; es suficiente antes de empezar.&lt;/li&gt;
&lt;li&gt;Coloca reglas estables en el archivo e instrucciones temporales en la conversación.&lt;/li&gt;
&lt;li&gt;No edites la memoria de largo plazo por una necesidad puntual.&lt;/li&gt;
&lt;li&gt;Si debes cambiarlo, trata la siguiente fase como una nueva sesión o etapa.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; debería ser guía estable de proyecto, no un borrador temporal que cambia cada ronda.&lt;/p&gt;
&lt;h2 id=&#34;asesino-de-caché-4-instalar-o-actualizar-skills-a-mitad-de-tarea&#34;&gt;Asesino de caché 4: instalar o actualizar Skills a mitad de tarea
&lt;/h2&gt;&lt;p&gt;Skills también forman parte del contexto. Instalar una Skill nueva, actualizar una Skill o cambiar la lista de Skills cambia lo que se inyecta en la sesión.&lt;/p&gt;
&lt;p&gt;Estos cambios suelen aplicarse al recargar, reanudar o abrir una nueva sesión. Cuando messages se reconstruye, las entradas antiguas de caché pueden dejar de servir.&lt;/p&gt;
&lt;p&gt;La recomendación es similar a MCP:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Decide qué Skills necesitas antes de empezar.&lt;/li&gt;
&lt;li&gt;Mantén estable el conjunto de Skills para tareas similares.&lt;/li&gt;
&lt;li&gt;Evita instalar Skills en mitad de una tarea larga.&lt;/li&gt;
&lt;li&gt;Si instalas una Skill nueva, trátalo como inicio de una nueva etapa.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para flujos repetibles como producción de contenido, review, despliegue o traducción, mantener un conjunto fijo de Skills ayuda a estabilizar la estructura del contexto.&lt;/p&gt;
&lt;h2 id=&#34;asesino-de-caché-5-estar-inactivo-más-allá-del-ttl&#34;&gt;Asesino de caché 5: estar inactivo más allá del TTL
&lt;/h2&gt;&lt;p&gt;Prompt Cache no dura para siempre. Un TTL común está en el orden de minutos, y la documentación relacionada con Claude Code suele hablar de una ventana cercana a cinco minutos. Pasado el TTL, incluso la misma petición puede requerir reconstruir la caché.&lt;/p&gt;
&lt;p&gt;Esto explica una sensación común en tareas largas: todo iba rápido y barato, sales por un café, vuelves y el costo de tokens sube otra vez.&lt;/p&gt;
&lt;p&gt;Es fácil que ocurra. Lees la salida de Claude Code, inspeccionas archivos, ejecutas tests o piensas el siguiente paso. Cinco minutos pasan rápido.&lt;/p&gt;
&lt;p&gt;Si tu entorno lo permite, puedes pedir un TTL de una hora antes de tareas largas:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;ENABLE_PROMPT_CACHING_1H&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;En Windows PowerShell:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$env:ENABLE_PROMPT_CACHING_1H&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;1&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Las escrituras de caché de una hora suelen costar más que las de cinco minutos. No siempre conviene para tareas cortas, pero en bases de código grandes, conversaciones largas y trabajos complejos de varias etapas, puede ser más barato que sufrir expiraciones repetidas.&lt;/p&gt;
&lt;h2 id=&#34;un-flujo-de-claude-code-que-ahorra-tokens&#34;&gt;Un flujo de Claude Code que ahorra tokens
&lt;/h2&gt;&lt;p&gt;Un flujo más estable sería:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Elegir el modelo antes de empezar y evitar cambios frecuentes.&lt;/li&gt;
&lt;li&gt;Habilitar los MCP necesarios y desactivar los que no usarás.&lt;/li&gt;
&lt;li&gt;Mantener &lt;code&gt;CLAUDE.md&lt;/code&gt; breve, estable y centrado en reglas duraderas.&lt;/li&gt;
&lt;li&gt;Preparar por adelantado las Skills necesarias.&lt;/li&gt;
&lt;li&gt;En tareas complejas, considerar TTL de una hora.&lt;/li&gt;
&lt;li&gt;Dividir la tarea en fases, pero mantener estable la estructura de contexto dentro de cada fase.&lt;/li&gt;
&lt;li&gt;Usar subagents o sesiones separadas para exploraciones laterales, sin alterar la conversación principal.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;El objetivo no es eliminar todos los fallos de caché. Es evitar los fallos caros y fáciles de pasar por alto.&lt;/p&gt;
&lt;h2 id=&#34;regla-rápida&#34;&gt;Regla rápida
&lt;/h2&gt;&lt;p&gt;Hazte esta pregunta:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;¿Esta operación cambia el modelo, las definiciones de herramientas, el contexto del sistema o los mensajes fijos del inicio de la sesión?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Si la respuesta es sí, probablemente afecte a Prompt Cache. Cuanto más a la izquierda esté en la cadena de contexto, mayor será el impacto.&lt;/p&gt;
&lt;p&gt;Operaciones comunes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cambiar modelo: alto riesgo, cachés aisladas por modelo.&lt;/li&gt;
&lt;li&gt;Añadir MCP o recargar plugins: alto riesgo, cambia la lista de herramientas.&lt;/li&gt;
&lt;li&gt;Editar &lt;code&gt;CLAUDE.md&lt;/code&gt;: riesgo medio-alto, cambia la memoria del proyecto.&lt;/li&gt;
&lt;li&gt;Instalar Skills: riesgo medio-alto, cambia el contexto inyectado.&lt;/li&gt;
&lt;li&gt;Continuar una conversación normal: bajo riesgo, principalmente añade messages.&lt;/li&gt;
&lt;li&gt;Superar el TTL en inactividad: alto riesgo, la caché del servidor expira.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Optimizar Prompt Cache en Claude Code consiste en mantener estable el prefijo de la sesión.&lt;/p&gt;
&lt;p&gt;No cambies modelos sin necesidad. No instales MCP y Skills a mitad de trabajo. No uses &lt;code&gt;CLAUDE.md&lt;/code&gt; como borrador temporal. En tareas complejas, considera un TTL más largo. Con estas bases estables, el costo en tokens y la velocidad de respuesta se vuelven mucho más predecibles.&lt;/p&gt;
&lt;p&gt;La frase práctica es: configura antes de empezar, cambia menos después.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-use-with-prompt-caching&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Anthropic: Tool use with prompt caching&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://support.claude.com/en/articles/14553240-give-claude-context-claude-md-and-better-prompts&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Claude Help Center: CLAUDE.md and prompt caching&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://code.claude.com/docs/en/mcp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Claude Code Docs: Connect Claude Code to tools via MCP&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Midjourney vs Stable Diffusion: qué herramienta de imagen con IA elegir</title>
        <link>https://knightli.com/es/2026/05/18/midjourney-vs-stable-diffusion-ai-image-generator/</link>
        <pubDate>Mon, 18 May 2026 18:23:50 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/18/midjourney-vs-stable-diffusion-ai-image-generator/</guid>
        <description>&lt;p&gt;Midjourney y Stable Diffusion son dos de las herramientas de generación de imágenes con IA que más se comparan hoy. Ambas pueden crear imágenes de alta calidad, pero responden a lógicas de producto muy distintas.&lt;/p&gt;
&lt;p&gt;Midjourney se parece a una cámara de gama alta bien calibrada: cerrada, en la nube, de pago y fácil de usar. Escribes unas pocas frases y normalmente obtienes una imagen con buen gusto visual. Stable Diffusion se parece más a un estudio profesional que puedes montar a tu manera: abierto, ejecutable en local y profundamente configurable, pero exige entender modelos, parámetros, flujos de trabajo y hardware.&lt;/p&gt;
&lt;p&gt;La pregunta no es simplemente cuál es más potente. La pregunta correcta es qué necesitas. Si buscas resultados rápidos y estética estable, Midjourney es más cómodo. Si necesitas control preciso, producción por lotes, despliegue privado o flujos personalizables, Stable Diffusion ofrece más margen.&lt;/p&gt;
&lt;h2 id=&#34;respuesta-corta&#34;&gt;Respuesta corta
&lt;/h2&gt;&lt;p&gt;Si eres creador de contenido, diseñador independiente, ilustrador o buscas inspiración visual para portadas, carteles, conceptos o moodboards, empieza por Midjourney.&lt;/p&gt;
&lt;p&gt;Si necesitas imágenes de producto para ecommerce, prueba virtual de ropa, renders de arquitectura e interiorismo, assets para juegos, generación masiva, despliegue privado o APIs de automatización, Stable Diffusion suele ser mejor opción.&lt;/p&gt;
&lt;p&gt;Si solo quieres probar la generación de imágenes con IA sin lidiar con equipos y parámetros, Midjourney tiene una curva de aprendizaje mucho más baja.&lt;/p&gt;
&lt;p&gt;Si estás dispuesto a aprender ComfyUI, LoRA, ControlNet y Checkpoints, y tienes una buena GPU NVIDIA, Stable Diffusion tiene un techo más alto.&lt;/p&gt;
&lt;h2 id=&#34;diferencia-central-producto-frente-a-ecosistema&#34;&gt;Diferencia central: producto frente a ecosistema
&lt;/h2&gt;&lt;p&gt;Midjourney es ante todo un producto completo. Lo usas desde la web o Discord. Modelos, cómputo, colas, estilos, parámetros y funciones de video están mantenidos por el equipo oficial. Sus ventajas son buenos resultados por defecto, estética estable e ideación rápida. Su límite es que no puedes modificar realmente el modelo ni mover todo el flujo a tu propia máquina.&lt;/p&gt;
&lt;p&gt;Stable Diffusion es más bien un ecosistema abierto. Puedes ejecutar SDXL, SD3.5, Flux y muchos modelos comunitarios con WebUI, ComfyUI, scripts locales o plataformas de terceros. Sus ventajas son control, entrenamiento, generación por lotes y despliegue privado. Su costo es el tiempo de configuración: GPU, modelos, extensiones, parámetros y gestión de workflows.&lt;/p&gt;
&lt;p&gt;Eso define la experiencia:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Midjourney reduce decisiones y ofrece una estética por defecto más estable.&lt;/li&gt;
&lt;li&gt;Stable Diffusion ofrece más opciones y también más complejidad.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;calidad-visual-midjourney-da-primeras-imágenes-atractivas-con-más-facilidad&#34;&gt;Calidad visual: Midjourney da primeras imágenes atractivas con más facilidad
&lt;/h2&gt;&lt;p&gt;Midjourney destaca por la calidad de la primera imagen. Puedes escribir &amp;ldquo;retrato cinematográfico&amp;rdquo;, &amp;ldquo;cartel de ciudad futurista&amp;rdquo; o &amp;ldquo;anuncio de perfume de lujo&amp;rdquo;, y normalmente completará iluminación, composición, materiales y atmósfera. Para personas sin experiencia en fotografía o diseño, esa estética por defecto es muy útil.&lt;/p&gt;
&lt;p&gt;Stable Diffusion también puede crear imágenes excelentes, pero el modelo base no siempre basta. A menudo necesitas el modelo correcto, LoRA, sampler, prompt, negative prompt y postprocesado para alcanzar el mismo nivel de pulido.&lt;/p&gt;
&lt;p&gt;En simple:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Midjourney tiene un piso promedio más alto.&lt;/li&gt;
&lt;li&gt;Stable Diffusion tiene un techo muy alto, pero requiere configuración y experiencia.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para portadas sociales, imágenes de blog, moodboards e ideas visuales rápidas, Midjourney suele ahorrar más tiempo.&lt;/p&gt;
&lt;h2 id=&#34;control-stable-diffusion-encaja-mejor-con-flujos-de-producción&#34;&gt;Control: Stable Diffusion encaja mejor con flujos de producción
&lt;/h2&gt;&lt;p&gt;Lo más difícil en la generación de imágenes con IA no es crear algo bonito. Es hacer que el modelo dibuje exactamente lo pedido.&lt;/p&gt;
&lt;p&gt;Quizá necesitas que un personaje conserve la misma cara, que una pose siga un esqueleto, que un producto no se deforme, que el estampado de una prenda no cambie, que un boceto arquitectónico se vuelva render realista o que el mismo personaje aparezca en varias viñetas. Estas tareas exigen control.&lt;/p&gt;
&lt;p&gt;Stable Diffusion es mucho más fuerte aquí. ControlNet permite guiar pose, line art, mapas de profundidad y bordes. LoRA permite entrenar una persona, producto, ropa o estilo específico. ComfyUI puede unir generación, escalado, recorte, inpainting, reemplazo de rostro, prueba virtual y procesamiento por lotes en un solo flujo.&lt;/p&gt;
&lt;p&gt;Midjourney también tiene referencias de estilo, referencias de personaje, referencias de imagen y edición local. Las versiones recientes mejoran la comprensión del prompt y la retención de detalles. Pero sigue siendo más adecuado para exploración creativa que para flujos industriales muy restringidos.&lt;/p&gt;
&lt;h2 id=&#34;lógica-de-prompts-estética-frente-a-ingeniería&#34;&gt;Lógica de prompts: estética frente a ingeniería
&lt;/h2&gt;&lt;p&gt;Midjourney tiende a entender la intención estética. Escribes lenguaje natural y completa muchos elementos que hacen que el resultado se vea bien. Para usuarios comunes, esto es una ventaja: no hace falta detallar cada luz, lente, material y composición.&lt;/p&gt;
&lt;p&gt;Stable Diffusion funciona más como un sistema parametrizable. Puedes describir la imagen en lenguaje natural, pero también especificar modelo, resolución, pasos de muestreo, CFG, entradas de ControlNet, pesos de LoRA y zonas de inpainting. No es un botón; es una tubería de generación que puedes desmontar, reutilizar y automatizar.&lt;/p&gt;
&lt;p&gt;Por eso muchas personas sienten que Stable Diffusion es complicado al principio. No es una sola app; es una caja de herramientas.&lt;/p&gt;
&lt;h2 id=&#34;consistencia-de-personaje-y-estilo&#34;&gt;Consistencia de personaje y estilo
&lt;/h2&gt;&lt;p&gt;Midjourney ya ofrece referencias de personaje y estilo. Sirven para mantener una sensación general de personaje, dirección de ropa y estilo visual. Para proyectos cortos, series de carteles y contenido social, puede ser suficiente.&lt;/p&gt;
&lt;p&gt;Pero si haces cómics largos, assets de personajes para juegos, modelos virtuales o visuales de marca para ecommerce, la capacidad de entrenar de Stable Diffusion pesa más. Con LoRA o DreamBooth puedes fijar un personaje, producto, prenda o estilo y mantenerlo en muchas imágenes.&lt;/p&gt;
&lt;p&gt;La diferencia es:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Midjourney es bueno para &amp;ldquo;parecer la misma persona&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;Stable Diffusion es mejor para &amp;ldquo;ser esta persona o este producto exacto&amp;rdquo;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;texto-y-maquetación&#34;&gt;Texto y maquetación
&lt;/h2&gt;&lt;p&gt;Los modelos de imagen con IA históricamente han sido malos generando texto. Han mejorado, pero no conviene tratarlos como herramientas profesionales de maquetación.&lt;/p&gt;
&lt;p&gt;Las versiones recientes de Midjourney manejan mejor texto corto en inglés, letras de título y tipografía de póster, pero aún fallan con textos largos, chino, español complejo o copys comerciales de varias líneas.&lt;/p&gt;
&lt;p&gt;En el ecosistema Stable Diffusion, modelos nuevos como SD3.5 incorporan codificadores de texto más fuertes y entienden mejor prompts largos. Aun así, el flujo comercial más seguro sigue siendo: generar la imagen con IA y terminar texto y composición en Photoshop, Illustrator, Figma o Canva.&lt;/p&gt;
&lt;h2 id=&#34;video&#34;&gt;Video
&lt;/h2&gt;&lt;p&gt;Midjourney incluye funciones de imagen a video. Puedes convertir una imagen en un video corto y extenderlo. La entrada es simple, útil para clips sociales, piezas de ambiente o portadas dinámicas.&lt;/p&gt;
&lt;p&gt;Stable Diffusion también tiene AnimateDiff, SVD y flujos de video en ComfyUI, pero la configuración es más compleja. Encaja mejor con usuarios dispuestos a trabajar con nodos, VRAM, modelos y consistencia entre fotogramas.&lt;/p&gt;
&lt;p&gt;Si solo quieres animar una imagen, Midjourney es más fácil.&lt;/p&gt;
&lt;p&gt;Si quieres integrar video en tu propia automatización, el ecosistema Stable Diffusion es más libre.&lt;/p&gt;
&lt;h2 id=&#34;hardware-y-costo&#34;&gt;Hardware y costo
&lt;/h2&gt;&lt;p&gt;Midjourney es un servicio de suscripción en la nube. No necesitas GPU. Un móvil, tableta o portátil ligero basta. Los principales costos son la suscripción y los créditos o límites de generación.&lt;/p&gt;
&lt;p&gt;Stable Diffusion puede ejecutarse en local, y muchas herramientas y modelos son gratuitos, pero el hardware no lo es. Para una buena experiencia normalmente conviene una GPU NVIDIA con suficiente VRAM. SDXL, SD3.5, Flux, flujos de video, escalado y generación por lotes consumen bastante VRAM. Puedes empezar con 8GB, pero 12GB, 16GB o más resultan mucho más cómodos.&lt;/p&gt;
&lt;p&gt;En costos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Uso ocasional: Midjourney suele ser más sencillo y económico.&lt;/li&gt;
&lt;li&gt;Producción masiva: Stable Diffusion local puede ser más barato a largo plazo.&lt;/li&gt;
&lt;li&gt;Sin GPU: usa Midjourney o una plataforma SD en la nube.&lt;/li&gt;
&lt;li&gt;Ya tienes una GPU potente: vale la pena explorar Stable Diffusion.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;uso-comercial-imagen-creativa-o-línea-de-producción&#34;&gt;Uso comercial: imagen creativa o línea de producción
&lt;/h2&gt;&lt;p&gt;Midjourney es excelente para exploración conceptual temprana: dirección de marca, atmósfera publicitaria, portadas, ideas de escenarios para juegos y bocetos de personajes.&lt;/p&gt;
&lt;p&gt;Stable Diffusion encaja mejor en producción: prueba virtual de ropa, cambio masivo de fondos, boceto a render de interiorismo, entrenamiento de LoRA de personajes, generación privada de materiales empresariales y automatización vía API. Puede integrarse en scripts, bases de datos, tareas backend y herramientas internas.&lt;/p&gt;
&lt;p&gt;En otras palabras:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Midjourney es un acelerador de inspiración para equipos creativos.&lt;/li&gt;
&lt;li&gt;Stable Diffusion es un sistema de producción de imágenes que los equipos técnicos pueden construir.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;cómo-elegir-en-2026&#34;&gt;Cómo elegir en 2026
&lt;/h2&gt;&lt;p&gt;Elige Midjourney si:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Quieres imágenes de alta calidad con unas pocas frases.&lt;/li&gt;
&lt;li&gt;No quieres estudiar GPU, modelos, nodos ni parámetros.&lt;/li&gt;
&lt;li&gt;Principalmente haces portadas, ilustraciones, carteles, conceptos o moodboards.&lt;/li&gt;
&lt;li&gt;Prefieres pagar una suscripción por comodidad.&lt;/li&gt;
&lt;li&gt;No necesitas control extremadamente preciso.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Elige Stable Diffusion si:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Necesitas controlar pose, forma del producto, estructura de líneas o composición.&lt;/li&gt;
&lt;li&gt;Quieres entrenar tus propios personajes, productos, estilo de marca o modelos.&lt;/li&gt;
&lt;li&gt;Necesitas generar imágenes por lotes o integrarlas en sitios web, software y workflows.&lt;/li&gt;
&lt;li&gt;Te importan despliegue local, privacidad y control.&lt;/li&gt;
&lt;li&gt;Estás dispuesto a aprender ComfyUI, LoRA, ControlNet y herramientas relacionadas.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;la-combinación-más-práctica&#34;&gt;La combinación más práctica
&lt;/h2&gt;&lt;p&gt;Muchos usuarios profesionales acaban usando ambos.&lt;/p&gt;
&lt;p&gt;Un flujo común es explorar estilo y composición en Midjourney, luego usar Stable Diffusion para control preciso, consistencia de personaje, consistencia de producto y producción por lotes. Finalmente, las herramientas tradicionales de diseño resuelven texto, layout y retoque.&lt;/p&gt;
&lt;p&gt;Eso es más útil que discutir cuál es más potente.&lt;/p&gt;
&lt;p&gt;Midjourney ayuda a ver posibilidades más rápido. Stable Diffusion convierte esas posibilidades en workflows controlables. El primero acelera la creatividad; el segundo mejora la certeza de producción.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;La diferencia entre Midjourney y Stable Diffusion es la diferencia entre estética automatizada y workflows controlables.&lt;/p&gt;
&lt;p&gt;Midjourney es mejor para la mayoría de personas que quieren imágenes bonitas con rapidez. Reduce la barrera de entrada y permite crear sin conocimientos técnicos.&lt;/p&gt;
&lt;p&gt;Stable Diffusion es para quienes necesitan control, entrenamiento, generación por lotes, privacidad y automatización. Tiene una curva de aprendizaje más alta, pero cuando el flujo funciona, puede convertirse en infraestructura real de producción visual.&lt;/p&gt;
&lt;p&gt;Si aún no tienes una necesidad clara, empieza con Midjourney.&lt;br&gt;
Si ya dices &amp;ldquo;la imagen se ve genial, pero no sigue mis requisitos&amp;rdquo;, es momento de aprender Stable Diffusion.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.midjourney.com/hc/en-us/articles/32199405667853-Version&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Documentación de versiones de Midjourney&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.midjourney.com/hc/en-us/articles/37460773864589-Video&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Documentación de Midjourney Video&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Stability-AI/sd3.5&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Stability AI Stable Diffusion 3.5 GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Por qué Sulphur 2 se volvió popular: generación abierta de video con IA, debate uncensored y barreras de despliegue local</title>
        <link>https://knightli.com/es/2026/05/18/sulphur-2-open-ai-video-generation-model/</link>
        <pubDate>Mon, 18 May 2026 00:27:37 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/18/sulphur-2-open-ai-video-generation-model/</guid>
        <description>&lt;p&gt;Sulphur 2 ha generado bastante discusión recientemente en la comunidad de generación de video con IA.&lt;/p&gt;
&lt;p&gt;No es un producto comercial online como Sora, Runway o Pika, ni una arquitectura nueva entrenada desde cero. Más precisamente, Sulphur 2 es un modelo open-weights de generación de video ajustado a partir de LTX 2.3, orientado a generación local, flujos controlables y una respuesta más abierta a los prompts.&lt;/p&gt;
&lt;p&gt;Lo que realmente lo volvió interesante no es solo que pueda generar video. Vuelve a poner sobre la mesa una vieja pregunta: ¿deben las plataformas definir de forma uniforme los límites de contenido de los modelos de video con IA, o deben los usuarios locales asumir responsabilidad dentro de los límites legales?&lt;/p&gt;
&lt;h2 id=&#34;relación-entre-sulphur-2-y-ltx-23&#34;&gt;Relación entre Sulphur 2 y LTX 2.3
&lt;/h2&gt;&lt;p&gt;La base de Sulphur 2 es LTX 2.3, publicado por Lightricks.&lt;/p&gt;
&lt;p&gt;LTX 2.3 ya es una línea de modelos de generación de video bastante completa, con soporte para text-to-video, image-to-video, tasa de frames variable, control de primer y último frame, sincronización de audio y más. Su ecosistema también se conecta con relativa facilidad a flujos locales como ComfyUI.&lt;/p&gt;
&lt;p&gt;Sulphur 2 no cambia esa estructura base. Lo que hace es ajustar LTX 2.3 hacia una dirección más específica. El artículo original señala que el equipo entrenó con más de 125.000 muestras de video y ofrece versiones como BF16, FP8 mixed y Distill LoRA, para que el usuario elija según su hardware.&lt;/p&gt;
&lt;p&gt;Esto significa que Sulphur 2 se parece más a un paquete de modelo derivado dentro del ecosistema LTX 2.3 que a una plataforma totalmente independiente.&lt;/p&gt;
&lt;p&gt;Si te interesan el despliegue local, los requisitos de VRAM y los workflows de ComfyUI, también puedes leer la nota previa del sitio: &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/12/sulphur-2-ltx-2-3-video-generation/&#34; &gt;Can Sulphur 2 Run on 8GB VRAM? Notes on Local Deployment of an LTX 2.3 Video Model&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-se-le-llama-uncensored&#34;&gt;Por qué se le llama &amp;ldquo;uncensored&amp;rdquo;
&lt;/h2&gt;&lt;p&gt;La etiqueta más controversial alrededor de Sulphur 2 es uncensored.&lt;/p&gt;
&lt;p&gt;La palabra se presta a malentendidos. No debería interpretarse como &amp;ldquo;puede generar cualquier cosa&amp;rdquo;, y desde luego no significa que pueda usarse para contenido ilegal, infracción, acoso, suplantación o imágenes no consensuadas. Una interpretación más precisa es que, frente a muchas plataformas comerciales de generación de video, Sulphur 2 tiene menos probabilidades de rechazar directamente temas sensibles pero legales.&lt;/p&gt;
&lt;p&gt;Las plataformas comerciales suelen adoptar estrategias conservadoras. Para reducir riesgos legales, de marca y de cumplimiento, pueden bloquear una serie de prompts en zonas grises. Eso reduce la probabilidad de abuso, pero también puede afectar escenarios creativos legítimos, como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Educación médica.&lt;/li&gt;
&lt;li&gt;Temas históricos.&lt;/li&gt;
&lt;li&gt;Reconstrucción de noticias.&lt;/li&gt;
&lt;li&gt;Experimentos artísticos.&lt;/li&gt;
&lt;li&gt;Creación en estilos de nicho.&lt;/li&gt;
&lt;li&gt;Planificación de material documental serio.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La idea de Sulphur 2 es devolver más juicio al usuario local, conservando un filtro mínimo para contenido ilegal. Esa dirección trae más libertad creativa, pero también más responsabilidad.&lt;/p&gt;
&lt;h2 id=&#34;técnicamente-no-es-solo-quitar-límites&#34;&gt;Técnicamente, no es solo &amp;ldquo;quitar límites&amp;rdquo;
&lt;/h2&gt;&lt;p&gt;Describir Sulphur 2 como &amp;ldquo;LTX 2.3 sin capa de censura&amp;rdquo; es incompleto.&lt;/p&gt;
&lt;p&gt;Según la información pública, ofrece un conjunto de pesos y herramientas alrededor de LTX 2.3:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Una versión BF16 de precisión completa, para hardware con más VRAM.&lt;/li&gt;
&lt;li&gt;Una versión FP8 mixed, que reduce memoria a cambio de mayor usabilidad.&lt;/li&gt;
&lt;li&gt;Una versión Distill LoRA, para equilibrar velocidad y calidad.&lt;/li&gt;
&lt;li&gt;Workflows de ComfyUI para probar text-to-video e image-to-video.&lt;/li&gt;
&lt;li&gt;Prompt Enhancer, para expandir descripciones cortas a prompts más adecuados para video.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La generación de video es distinta de la generación de imágenes. En video no solo importan sujeto y estilo; también movimiento de cámara, movimiento de personajes, continuidad temporal, consistencia entre frames, encuadre y ritmo. Si el prompt es demasiado corto, el modelo suele completar detalles inestables.&lt;/p&gt;
&lt;p&gt;Por eso Prompt Enhancer tiene sentido. El usuario introduce una idea simple, un modelo pequeño la expande a una descripción más adecuada para el modelo de video, y luego el workflow de Sulphur 2 genera el resultado.&lt;/p&gt;
&lt;h2 id=&#34;experiencia-real-más-obediente-no-omnipotente&#34;&gt;Experiencia real: más obediente, no omnipotente
&lt;/h2&gt;&lt;p&gt;Según comentarios de la comunidad, una característica clara de Sulphur 2 es que está más dispuesto a seguir el prompt.&lt;/p&gt;
&lt;p&gt;Como tiene menos restricciones, es menos probable que rechace, degrade o rodee la intención del usuario en ciertos temas legales. Esto resulta atractivo para quienes necesitan control preciso, especialmente en creación local, video experimental, cortos conceptuales y temas de nicho.&lt;/p&gt;
&lt;p&gt;Pero no es el punto final de la generación de video.&lt;/p&gt;
&lt;p&gt;Los modelos abiertos de video actuales todavía presentan problemas comunes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Movimiento humano poco natural.&lt;/li&gt;
&lt;li&gt;Extremidades y manos deformadas.&lt;/li&gt;
&lt;li&gt;Consistencia débil en tomas largas.&lt;/li&gt;
&lt;li&gt;Confusión en interacciones con varios sujetos.&lt;/li&gt;
&lt;li&gt;Comprensión demasiado literal de escenas complejas.&lt;/li&gt;
&lt;li&gt;Imágenes que cumplen el prompt pero carecen de gusto visual o sentido de edición.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estos problemas no son exclusivos de Sulphur 2, sino comunes en los modelos actuales de video con IA. Puede mejorar parte del seguimiento de prompts, pero no elimina las dificultades técnicas propias del video.&lt;/p&gt;
&lt;h2 id=&#34;los-requisitos-de-hardware-siguen-presentes&#34;&gt;Los requisitos de hardware siguen presentes
&lt;/h2&gt;&lt;p&gt;Sulphur 2 es un modelo abierto, pero abierto no significa que corra sin esfuerzo en cualquier computadora.&lt;/p&gt;
&lt;p&gt;Para obtener buenos resultados, aún se necesita una GPU relativamente fuerte. El artículo original menciona que la versión FP8 reduce requisitos de VRAM, pero un uso estable normalmente sigue requiriendo una cantidad considerable. La versión BF16 exige más hardware y encaja mejor con GPUs de gama alta o GPUs cloud.&lt;/p&gt;
&lt;p&gt;Esto significa que la &amp;ldquo;popularización&amp;rdquo; de Sulphur 2 no es la de una herramienta web de un clic, sino la de la comunidad open source:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Los pesos pueden descargarse.&lt;/li&gt;
&lt;li&gt;Los workflows pueden modificarse.&lt;/li&gt;
&lt;li&gt;El usuario puede ejecutarlo localmente.&lt;/li&gt;
&lt;li&gt;Los desarrolladores pueden hacer nuevos fine-tunes.&lt;/li&gt;
&lt;li&gt;La comunidad puede compartir parámetros y configuraciones de nodos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Reduce la barrera de control, no necesariamente la barrera de hardware.&lt;/p&gt;
&lt;h2 id=&#34;la-gran-disputa-cómo-equilibrar-apertura-y-seguridad&#34;&gt;La gran disputa: cómo equilibrar apertura y seguridad
&lt;/h2&gt;&lt;p&gt;La controversia de Sulphur 2 no trata realmente de si los parámetros de un modelo son buenos o no. Trata de gobernanza para la generación abierta de video con IA.&lt;/p&gt;
&lt;p&gt;Quienes lo apoyan creen que los modelos abiertos no deberían juzgar en exceso en nombre del usuario. Mientras el contenido sea legal, el usuario debería poder explorar límites artísticos, educativos, de investigación y creativos en un entorno local.&lt;/p&gt;
&lt;p&gt;Quienes lo cuestionan temen que el video cause más daño real que una imagen. Modelos más abiertos podrían usarse para falsificación, acoso, infracción, desinformación u otros abusos. Incluso si los desarrolladores mantienen filtros para contenido ilegal, es difícil impedir por completo modificaciones secundarias y uso malicioso.&lt;/p&gt;
&lt;p&gt;Ninguna de las dos posturas debería descartarse fácilmente.&lt;/p&gt;
&lt;p&gt;Los modelos abiertos necesitan libertad, pero también responsabilidad. Una dirección más viable no es cerrar el modelo por completo ni dejar todo sin límites, sino construir normas comunitarias más claras, model cards, restricciones de uso, herramientas de procedencia y mecanismos de reporte.&lt;/p&gt;
&lt;h2 id=&#34;a-quién-le-conviene-seguirlo&#34;&gt;A quién le conviene seguirlo
&lt;/h2&gt;&lt;p&gt;Sulphur 2 encaja mejor con:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Usuarios que ya conocen ComfyUI o flujos locales de generación de video.&lt;/li&gt;
&lt;li&gt;Desarrolladores que quieren estudiar modelos derivados de LTX 2.3.&lt;/li&gt;
&lt;li&gt;Creadores que necesitan mejor respuesta a prompts.&lt;/li&gt;
&lt;li&gt;Equipos que quieren hacer experimentos controlables en local.&lt;/li&gt;
&lt;li&gt;Usuarios avanzados que hacen fine-tuning, LoRA u optimización de workflows.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si solo quieres generar rápido un video corto para redes sociales, las herramientas online probablemente sigan siendo más cómodas. El valor de Sulphur 2 no está en &amp;ldquo;hacer un video final con un clic&amp;rdquo;, sino en dar más control a quienes están dispuestos a experimentar.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Sulphur 2 no importa solo porque haya un modelo más de generación de video con IA.&lt;/p&gt;
&lt;p&gt;Se parece más a una respuesta de la comunidad de video abierto frente a las políticas conservadoras de las plataformas comerciales: a medida que los modelos se vuelven más potentes, ¿quién debe definir los límites de contenido?&lt;/p&gt;
&lt;p&gt;Desde el punto de vista técnico, se basa en LTX 2.3 y ofrece varias versiones de precisión, LoRA, workflows de ComfyUI y Prompt Enhancer, lo que lo hace adecuado para generación local y desarrollo posterior.&lt;/p&gt;
&lt;p&gt;Desde el punto de vista del ecosistema, también recuerda que abrir la generación de video trae más libertad creativa y más riesgo de abuso al mismo tiempo. Que los modelos abiertos de video con IA se desarrollen de forma saludable dependerá de que capacidad técnica, normas comunitarias y responsabilidad del usuario avancen juntas.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://zhuanlan.zhihu.com/p/2036113362052965203&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Zhihu: Open video generation breakthrough, Sulphur 2 brings &amp;ldquo;uncensored&amp;rdquo; AI video to the public&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://sulphur-2.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Página oficial de Sulphur 2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://opencsg.com/models/AIWizards/Sulphur-2-base&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Página del modelo Sulphur 2 en OpenCSG&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://sulphur2.org/deploy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Sulphur 2 Base Deploy Guide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Cuál es el mejor Free AI Image Generator: guía comparativa de herramientas gratuitas de dibujo con IA</title>
        <link>https://knightli.com/es/2026/05/17/free-ai-image-generator-tools-guide/</link>
        <pubDate>Sun, 17 May 2026 23:10:43 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/17/free-ai-image-generator-tools-guide/</guid>
        <description>&lt;p&gt;Buscar un buen &lt;strong&gt;free ai image generator&lt;/strong&gt; ya no es una cuestión de si existe. La pregunta difícil es cuál elegir.&lt;/p&gt;
&lt;p&gt;Las herramientas gratuitas de generación de imágenes con IA se pueden dividir en tres grupos: herramientas open source locales, plataformas web con créditos gratuitos y entradas gratuitas o de alta cuota ofrecidas por grandes compañías. Todas pueden generar imágenes, pero difieren mucho en usuarios ideales, curva de aprendizaje, límites de derechos y control.&lt;/p&gt;
&lt;p&gt;Conviene aclarar algo desde el principio: gratis no significa necesariamente gratis para siempre, ilimitado o seguro para uso comercial. Las plataformas web pueden cambiar créditos gratuitos, colas, marcas de agua, límites de resolución y condiciones comerciales. Las herramientas open source locales pueden ser gratuitas como software, pero aun así necesitas GPU, archivos de modelos, tiempo y revisar licencias.&lt;/p&gt;
&lt;h2 id=&#34;open-source-local-para-uso-gratuito-a-largo-plazo-y-control-profundo&#34;&gt;Open source local: para uso gratuito a largo plazo y control profundo
&lt;/h2&gt;&lt;p&gt;Si tienes una GPU NVIDIA razonablemente potente, como una RTX 3060, 4060 o superior, el despliegue local sigue siendo lo más cercano a una generación &amp;ldquo;gratis e ilimitada&amp;rdquo;. No se cobra por imagen y no necesitas subir prompts ni materiales a una plataforma de terceros. Es especialmente adecuado para usuarios intensivos, diseñadores y flujos que requieren privacidad.&lt;/p&gt;
&lt;h3 id=&#34;stable-diffusion-webui--comfyui&#34;&gt;Stable Diffusion WebUI / ComfyUI
&lt;/h3&gt;&lt;p&gt;El ecosistema Stable Diffusion es uno de los más maduros dentro de la generación open source de imágenes con IA. Las entradas más comunes son Stable Diffusion WebUI y ComfyUI.&lt;/p&gt;
&lt;p&gt;Stable Diffusion WebUI se parece más a una interfaz de software tradicional y sirve para empezar rápido con text-to-image, image-to-image, inpainting y escalado. ComfyUI usa un flujo por nodos. Tiene más curva de aprendizaje, pero ofrece mucho más control, por lo que encaja con generación por lotes, ControlNet, restricciones por imagen de referencia, combinación de varios modelos y pipelines automatizados.&lt;/p&gt;
&lt;p&gt;Su mayor ventaja no es solo que sean gratis, sino el ecosistema: Checkpoints, LoRA, ControlNet, VAE, plantillas de workflow y plugins abundan. Puedes generar retratos realistas, personajes anime, imágenes de producto para ecommerce, conceptos arquitectónicos, bocetos de assets de juego y refinar un estilo consistente.&lt;/p&gt;
&lt;p&gt;El coste también es claro: debes instalar el entorno, gestionar modelos, aprender parámetros y revisar las licencias de cada modelo. Para principiantes no es el free ai image generator más cómodo, pero sí una de las mejores opciones para experimentar y personalizar a fondo durante mucho tiempo.&lt;/p&gt;
&lt;h3 id=&#34;fooocus&#34;&gt;Fooocus
&lt;/h3&gt;&lt;p&gt;Fooocus puede entenderse como una herramienta local basada en Stable Diffusion XL, pero mucho más sencilla. Oculta muchos parámetros y permite generar buenas imágenes introduciendo prompts y eligiendo estilos.&lt;/p&gt;
&lt;p&gt;Si ComfyUI te parece demasiado técnico y Stable Diffusion WebUI tiene demasiados parámetros, Fooocus es un punto de partida más amable. Sirve para explorar estilos, crear borradores de portadas, conceptos de personajes, visuales de producto e imágenes para redes sociales. Tiene menos control que un workflow completo de ComfyUI, pero para muchas personas esa simplicidad es una ventaja.&lt;/p&gt;
&lt;h2 id=&#34;plataformas-web-con-créditos-gratis-para-uso-ligero-sin-instalar&#34;&gt;Plataformas web con créditos gratis: para uso ligero sin instalar
&lt;/h2&gt;&lt;p&gt;Si no tienes GPU dedicada, o solo necesitas generar algunas imágenes ocasionalmente, las herramientas web son más cómodas. Suelen ofrecer uso gratuito mediante créditos diarios, tokens gratis, colas o modos más lentos.&lt;/p&gt;
&lt;p&gt;El criterio clave no es solo &amp;ldquo;cuántos créditos gratis dan&amp;rdquo;, sino si la cuota es estable, si la calidad basta, si soporta chino, si permite image-to-image y edición local, si se pueden descargar imágenes en alta resolución y si permite uso comercial.&lt;/p&gt;
&lt;h3 id=&#34;seaart-ai&#34;&gt;SeaArt AI
&lt;/h3&gt;&lt;p&gt;SeaArt AI es una plataforma web de dibujo con IA bastante completa. Integra muchos modelos de estilo Stable Diffusion y suele ofrecer text-to-image, image-to-image, control condicional, escalado, outpainting y comunidad de modelos.&lt;/p&gt;
&lt;p&gt;Sus ventajas son el inicio rápido, muchos estilos y una interfaz amigable para chino. Puedes usarla para personajes anime, fotografía realista, pósters tecnológicos, conceptos de producto o para reproducir rápidamente ciertos estilos visuales con modelos existentes.&lt;/p&gt;
&lt;p&gt;Hay que tener en cuenta que puntos, tareas diarias y créditos gratuitos pueden cambiar según la estrategia de la plataforma. Es más seguro verla como una herramienta web gratuita para uso ligero diario, no como una promesa permanente de una cuota concreta.&lt;/p&gt;
&lt;h3 id=&#34;leonardoai&#34;&gt;Leonardo.ai
&lt;/h3&gt;&lt;p&gt;Leonardo.ai se inclina hacia producción creativa y flujos de arte para videojuegos. Suele destacar en textura, iluminación, diseño conceptual y estilos 3D, por lo que sirve para concept art, diseño de personajes, escenas, visuales de marca y borradores de renderizado de producto.&lt;/p&gt;
&lt;p&gt;Normalmente ofrece un plan gratuito o créditos gratis, pero la cuota puede variar por región, estado de cuenta y política del producto. Para quien no quiere instalar nada localmente pero busca buena calidad visual, Leonardo.ai es un free ai image generator web que vale la pena probar.&lt;/p&gt;
&lt;h3 id=&#34;clipdrop&#34;&gt;Clipdrop
&lt;/h3&gt;&lt;p&gt;Clipdrop pertenece al ecosistema de Stability AI. Además de text-to-image, ofrece herramientas útiles como eliminación de fondo, ampliación de imagen, limpieza de objetos, cambio de iluminación y conversión de doodle a imagen.&lt;/p&gt;
&lt;p&gt;Se parece más a una caja de herramientas de imagen con IA que a una simple puerta de generación. Para editar imágenes existentes, hacer procesamiento visual rápido o crear borradores de materiales, su valor suele estar en el postprocesado posterior a la generación.&lt;/p&gt;
&lt;p&gt;Los usuarios gratuitos pueden encontrar límites de uso, colas, marcas de agua o restricciones de resolución. Conviene revisar siempre las reglas actuales de la plataforma.&lt;/p&gt;
&lt;h2 id=&#34;entradas-de-grandes-compañías-para-simplicidad-y-buena-comprensión-del-lenguaje&#34;&gt;Entradas de grandes compañías: para simplicidad y buena comprensión del lenguaje
&lt;/h2&gt;&lt;p&gt;Las herramientas de imagen con IA de grandes compañías suelen ser estables, fáciles de usar y fuertes entendiendo prompts. Cuando quieres describir una escena compleja con lenguaje natural, o generar pósters, portadas e ilustraciones con texto, a menudo son más cómodas que muchos modelos open source.&lt;/p&gt;
&lt;h3 id=&#34;microsoft-designer--bing-image-creator&#34;&gt;Microsoft Designer / Bing Image Creator
&lt;/h3&gt;&lt;p&gt;Microsoft Designer y Bing Image Creator están conectados con capacidades de imagen DALL-E de OpenAI. Sus fortalezas son la comprensión de prompts, la reconstrucción de escenas complejas y un mejor manejo de texto en inglés, títulos de póster y composición de diseño dentro de la imagen.&lt;/p&gt;
&lt;p&gt;Si necesitas &amp;ldquo;describir una portada en chino o inglés y obtener una imagen bastante terminada&amp;rdquo;, las entradas de Microsoft suelen encajar bien. Sirven para portadas de artículos, pósters sociales, imágenes de eventos, ilustraciones creativas y borradores visuales comerciales ligeros.&lt;/p&gt;
&lt;p&gt;El uso gratuito puede incluir créditos de aceleración, colas o diferencias de velocidad. Las cuotas y restricciones reales deben revisarse en las páginas actuales de Microsoft.&lt;/p&gt;
&lt;h3 id=&#34;adobe-firefly&#34;&gt;Adobe Firefly
&lt;/h3&gt;&lt;p&gt;Adobe Firefly no se posiciona exactamente como una web normal de dibujo con IA. Enfatiza flujos de diseño, Generative Fill, expansión inteligente, efectos de texto e integración con el ecosistema Adobe.&lt;/p&gt;
&lt;p&gt;Si ya usas Photoshop, Illustrator o Express, sus ventajas se vuelven más claras. Sirve para retoque, outpainting, sustitución de fondos, generación de materiales de diseño y edición creativa basada en imágenes existentes.&lt;/p&gt;
&lt;p&gt;Firefly se menciona a menudo junto a la &amp;ldquo;seguridad comercial&amp;rdquo; porque Adobe enfatiza fuentes de datos y límites de licencia. Pero si una salida puede usarse comercialmente, si hace falta un plan pagado y cómo se calculan los créditos gratuitos depende de los términos y planes actuales de Adobe.&lt;/p&gt;
&lt;h2 id=&#34;cómo-elegir-empieza-por-el-uso-no-por-la-fama&#34;&gt;Cómo elegir: empieza por el uso, no por la fama
&lt;/h2&gt;&lt;p&gt;Si quieres portadas, pósters o imágenes creativas con texto de forma sencilla, prueba primero Microsoft Designer o Bing Image Creator. Entienden bien el lenguaje natural y suelen producir resultados acabados rápidamente, especialmente para usuarios no especializados.&lt;/p&gt;
&lt;p&gt;Si quieres explorar estilos como realismo, anime, concept art de juegos, renderizado de producto o visuales tecnológicos, prueba SeaArt AI o Leonardo.ai. Son buenos para explorar estilos rápido y para quienes no tienen GPU local.&lt;/p&gt;
&lt;p&gt;Si quieres editar imágenes existentes, no solo generar nuevas, mira Adobe Firefly y Clipdrop. Firefly se acerca más a producción de diseño, mientras que Clipdrop parece una caja ligera de herramientas visuales.&lt;/p&gt;
&lt;p&gt;Si estás dispuesto a aprender y tu PC tiene potencia suficiente, Stable Diffusion WebUI, ComfyUI y Fooocus siguen siendo las opciones gratuitas con más valor a largo plazo. Tienen mayor techo y menor coste marginal, pero requieren aprendizaje y mantenimiento.&lt;/p&gt;
&lt;h2 id=&#34;trampas-comunes-en-herramientas-gratuitas-de-ia-para-imágenes&#34;&gt;Trampas comunes en herramientas gratuitas de IA para imágenes
&lt;/h2&gt;&lt;p&gt;Primero, las cuotas gratuitas cambian. Los puntos que recibes hoy no tienen por qué ser los mismos el próximo mes. Antes de integrar una herramienta en tu flujo, revisa las reglas actuales.&lt;/p&gt;
&lt;p&gt;Segundo, gratis no significa uso comercial permitido. Muchas herramientas permiten generar gratis, pero los derechos comerciales, propiedad de copyright, disputas sobre datos de entrenamiento y restricciones de materiales de marca requieren revisión aparte.&lt;/p&gt;
&lt;p&gt;Tercero, la calidad no depende solo del modelo. Prompts, imágenes de referencia, resolución, postprocesado, inpainting y selección de resultados influyen en el resultado final.&lt;/p&gt;
&lt;p&gt;Cuarto, el open source local también tiene licencias. Que el software sea open source no significa que todos los modelos puedan usarse comercialmente. Al descargar Checkpoints, LoRA o workflows, revisa las notas del autor.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Si solo buscas una entrada gratuita para generar imágenes con IA, Microsoft Designer, Bing Image Creator, SeaArt AI, Leonardo.ai, Clipdrop y Adobe Firefly merecen una prueba.&lt;/p&gt;
&lt;p&gt;Si quieres generar muchas imágenes de forma estable y con bajo coste a largo plazo, el ecosistema local Stable Diffusion está más cerca de la respuesta &amp;ldquo;gratis definitiva&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;El mejor free ai image generator no es necesariamente el que ofrece más créditos gratis, sino el que mejor encaja con tu caso de uso, requisitos de derechos y coste de aprendizaje.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Stable Diffusion WebUI: &lt;a class=&#34;link&#34; href=&#34;https://github.com/AUTOMATIC1111/stable-diffusion-webui&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/AUTOMATIC1111/stable-diffusion-webui&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ComfyUI: &lt;a class=&#34;link&#34; href=&#34;https://github.com/comfyanonymous/ComfyUI&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/comfyanonymous/ComfyUI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fooocus: &lt;a class=&#34;link&#34; href=&#34;https://github.com/lllyasviel/Fooocus&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/lllyasviel/Fooocus&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;SeaArt AI: &lt;a class=&#34;link&#34; href=&#34;https://www.seaart.ai/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.seaart.ai/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Leonardo.ai: &lt;a class=&#34;link&#34; href=&#34;https://leonardo.ai/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://leonardo.ai/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Clipdrop: &lt;a class=&#34;link&#34; href=&#34;https://clipdrop.co/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://clipdrop.co/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Microsoft Designer: &lt;a class=&#34;link&#34; href=&#34;https://designer.microsoft.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://designer.microsoft.com/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Bing Image Creator: &lt;a class=&#34;link&#34; href=&#34;https://www.bing.com/images/create&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.bing.com/images/create&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Adobe Firefly: &lt;a class=&#34;link&#34; href=&#34;https://www.adobe.com/products/firefly.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.adobe.com/products/firefly.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>¿Es preciso QuillBot AI Detector? Cómo funciona la detección de texto con IA, a quién le sirve y qué conviene vigilar</title>
        <link>https://knightli.com/es/2026/05/17/quillbot-ai-checker-detector-guide/</link>
        <pubDate>Sun, 17 May 2026 23:05:51 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/17/quillbot-ai-checker-detector-guide/</guid>
        <description>&lt;p&gt;QuillBot AI Checker, también conocido como QuillBot AI Detector, es una herramienta de detección de contenido con IA creada por QuillBot.&lt;/p&gt;
&lt;p&gt;Su propósito es directo: ayudar a estimar qué probabilidad tiene un texto de haber sido generado por IA.&lt;/p&gt;
&lt;p&gt;Conviene aclarar algo desde el principio. El AI Detector de texto de QuillBot analiza texto, no imágenes, videos ni otros formatos multimedia. QuillBot también ofrece una herramienta separada, AI Image Detector, para estimar si una imagen parece tomada o dibujada por una persona, o generada por un modelo de imagen con IA. Ambas forman parte del ecosistema de detección de QuillBot, pero trabajan con tipos de entrada distintos.&lt;/p&gt;
&lt;h2 id=&#34;qué-puede-hacer-quillbot-ai-checker&#34;&gt;Qué puede hacer QuillBot AI Checker
&lt;/h2&gt;&lt;p&gt;La función principal de QuillBot AI Checker es la detección de texto generado por IA.&lt;/p&gt;
&lt;p&gt;El usuario puede pegar texto en el cuadro de detección y, según los permisos de la cuenta, también subir archivos. La herramienta analiza patrones del texto y entrega una probabilidad de generación por IA o una señal de riesgo.&lt;/p&gt;
&lt;p&gt;Normalmente no se fija en una sola palabra, sino en el patrón lingüístico general, por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si las estructuras de las frases son demasiado uniformes.&lt;/li&gt;
&lt;li&gt;Si la elección de palabras es muy predecible.&lt;/li&gt;
&lt;li&gt;Si los párrafos avanzan como una plantilla.&lt;/li&gt;
&lt;li&gt;Si hay demasiadas expresiones repetidas.&lt;/li&gt;
&lt;li&gt;Si el tono es demasiado fluido y sin variación natural.&lt;/li&gt;
&lt;li&gt;Si la lógica se parece a una respuesta genérica de un gran modelo de lenguaje.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El resultado suele mostrarse como porcentaje o nivel de riesgo, para ayudar a decidir si el texto podría considerarse generado por IA.&lt;/p&gt;
&lt;h2 id=&#34;para-qué-sirven-los-resaltados-por-frase&#34;&gt;Para qué sirven los resaltados por frase
&lt;/h2&gt;&lt;p&gt;Estas herramientas no solo dan una puntuación global. A menudo también marcan partes concretas del texto.&lt;/p&gt;
&lt;p&gt;Por ejemplo, algunas frases pueden aparecer como más parecidas a IA, otras como más humanas, y otras como texto posiblemente reescrito o pulido con IA.&lt;/p&gt;
&lt;p&gt;El valor de ese resaltado no es perseguir mecánicamente un 0% de IA, sino localizar problemas.&lt;/p&gt;
&lt;p&gt;Si un párrafo aparece muy marcado, conviene revisar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si suena demasiado a manual.&lt;/li&gt;
&lt;li&gt;Si es demasiado genérico.&lt;/li&gt;
&lt;li&gt;Si le faltan ejemplos concretos.&lt;/li&gt;
&lt;li&gt;Si todas las frases tienen una longitud y ritmo parecidos.&lt;/li&gt;
&lt;li&gt;Si faltan experiencia real, proceso de razonamiento o detalles.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para quien escribe, esto es más útil que mirar solo una puntuación total. Lo importante no debería ser &amp;ldquo;que el detector no lo note&amp;rdquo;, sino hacer que el contenido sea más concreto, tenga más criterio y responda mejor a su propósito real.&lt;/p&gt;
&lt;h2 id=&#34;quillbot-también-tiene-ai-image-detector&#34;&gt;QuillBot también tiene AI Image Detector
&lt;/h2&gt;&lt;p&gt;Además de la detección de texto, QuillBot ofrece una herramienta independiente llamada AI Image Detector.&lt;/p&gt;
&lt;p&gt;Esa herramienta analiza imágenes e intenta estimar si una imagen fue tomada o dibujada por una persona, o generada por un modelo de imagen con IA. Es común verla mencionada junto a herramientas como Midjourney, DALL-E y Stable Diffusion.&lt;/p&gt;
&lt;p&gt;Pero el AI Detector de texto y AI Image Detector son herramientas distintas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El detector de texto analiza escritura.&lt;/li&gt;
&lt;li&gt;El detector de imágenes analiza imágenes.&lt;/li&gt;
&lt;li&gt;Ambos solo ofrecen juicios probabilísticos, no peritajes ni conclusiones absolutas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si quieres revisar un artículo y sus imágenes, necesitas usar la herramienta correspondiente para cada tipo de entrada.&lt;/p&gt;
&lt;h2 id=&#34;casos-de-uso-habituales&#34;&gt;Casos de uso habituales
&lt;/h2&gt;&lt;p&gt;QuillBot AI Checker se usa sobre todo en tres escenarios.&lt;/p&gt;
&lt;p&gt;El primero es la revisión propia por parte de estudiantes.&lt;/p&gt;
&lt;p&gt;Muchas instituciones usan Turnitin u otras herramientas de integridad académica para revisar ensayos, informes y tareas. Los estudiantes pueden usar un AI Detector antes de entregar un trabajo para entender si su texto podría ser confundido con contenido generado por IA.&lt;/p&gt;
&lt;p&gt;Hay que tener mucho cuidado. Un detector de IA no es el juez final, no garantiza que el sistema de una escuela dé el mismo resultado, y una puntuación baja de IA tampoco garantiza seguridad. Lo más sólido es conservar el proceso de escritura, fuentes, borradores y registros de edición.&lt;/p&gt;
&lt;p&gt;El segundo escenario es la revisión de tareas por docentes y educadores.&lt;/p&gt;
&lt;p&gt;Un docente puede usar un AI Detector como herramienta de indicios para detectar textos extraños. Pero no es recomendable concluir que hubo fraude solo por una puntuación. Es más razonable combinar desempeño en clase, historial de escritura, preguntas orales, fuentes citadas y versiones anteriores.&lt;/p&gt;
&lt;p&gt;El tercer escenario es la revisión de contenido externo por creadores, editores y administradores de sitios.&lt;/p&gt;
&lt;p&gt;Si un sitio recibe muchas contribuciones, artículos SEO o contenido subcontratado, un AI Detector puede ayudar a filtrar borradores de baja calidad, con plantilla o generados en masa. Esto es útil para medios y sitios de contenido que quieren evitar llenar sus páginas con textos armados por IA sin experiencia, opinión ni verificación factual.&lt;/p&gt;
&lt;p&gt;Aun así, el detector solo ayuda. Lo realmente importante es si el contenido es original, preciso, útil y confiable, no una puntuación concreta.&lt;/p&gt;
&lt;h2 id=&#34;relación-con-paraphraser-y-ai-humanizer&#34;&gt;Relación con Paraphraser y AI Humanizer
&lt;/h2&gt;&lt;p&gt;Una de las funciones más conocidas de QuillBot es Paraphraser, su herramienta de reescritura. También ofrece AI Humanizer, pensada para hacer que un texto generado por IA se lea más como escritura humana.&lt;/p&gt;
&lt;p&gt;Estas herramientas suelen usarse juntas:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;El usuario escribe un borrador con ChatGPT, Claude u otro modelo.&lt;/li&gt;
&lt;li&gt;Luego usa QuillBot Paraphraser para reescribir frases.&lt;/li&gt;
&lt;li&gt;O usa AI Humanizer para ajustar el tono.&lt;/li&gt;
&lt;li&gt;Finalmente pega el resultado en AI Checker para ver la detección.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Este flujo es común, pero puede desviarse fácilmente.&lt;/p&gt;
&lt;p&gt;Si el objetivo es solo bajar la probabilidad de IA, el resultado puede convertirse en una reescritura mecánica. El texto puede volverse más enredado, menos natural o incluso menos exacto.&lt;/p&gt;
&lt;p&gt;Una forma más sana de usarlo sería:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Usar Paraphraser para mejorar la claridad.&lt;/li&gt;
&lt;li&gt;Usar Humanizer para ajustar tono y ritmo.&lt;/li&gt;
&lt;li&gt;Usar AI Checker para encontrar pasajes demasiado genéricos.&lt;/li&gt;
&lt;li&gt;Dejar que una persona revise hechos, lógica e intención final.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Es decir, AI Checker no debería servir solo para &amp;ldquo;evadir detectores&amp;rdquo;, sino para mejorar la calidad del contenido.&lt;/p&gt;
&lt;h2 id=&#34;riesgo-de-falsos-positivos&#34;&gt;Riesgo de falsos positivos
&lt;/h2&gt;&lt;p&gt;Todos los detectores de contenido con IA pueden cometer falsos positivos.&lt;/p&gt;
&lt;p&gt;La razón es simple: no leen &amp;ldquo;quién escribió&amp;rdquo; el texto, sino que estiman patrones. Un texto humano muy ordenado, estandarizado o basado en plantilla puede ser clasificado como IA. A la inversa, un texto generado por IA que fue editado con cuidado, enriquecido con detalles concretos y juicio personal, puede parecer más humano.&lt;/p&gt;
&lt;p&gt;Entre los contenidos fáciles de clasificar mal están:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Resúmenes académicos.&lt;/li&gt;
&lt;li&gt;Comunicados y documentos formales.&lt;/li&gt;
&lt;li&gt;Descripciones de productos.&lt;/li&gt;
&lt;li&gt;Informes estandarizados.&lt;/li&gt;
&lt;li&gt;Inglés muy pulido escrito por personas no nativas.&lt;/li&gt;
&lt;li&gt;Textos concisos editados muchas veces.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por eso, estudiantes, docentes y editores no deberían tratar la puntuación de IA como la única evidencia.&lt;/p&gt;
&lt;p&gt;Una evaluación más segura mira la cadena de pruebas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;¿Hay borradores y registros de edición?&lt;/li&gt;
&lt;li&gt;¿La persona puede explicar su proceso de escritura?&lt;/li&gt;
&lt;li&gt;¿Se citan fuentes reales?&lt;/li&gt;
&lt;li&gt;¿El texto incluye experiencia, observación y criterio concretos?&lt;/li&gt;
&lt;li&gt;¿Hay errores factuales, citas inventadas o estructura claramente plantillada?&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;consejos-de-uso&#34;&gt;Consejos de uso
&lt;/h2&gt;&lt;p&gt;Si solo quieres revisar tu propio artículo, usa QuillBot AI Checker como una señal auxiliar.&lt;/p&gt;
&lt;p&gt;Cuando aparezca una puntuación alta, no corras a &amp;ldquo;lavar&amp;rdquo; el texto. Mira primero el contenido:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;¿Las ideas son demasiado vacías?&lt;/li&gt;
&lt;li&gt;¿Faltan ejemplos?&lt;/li&gt;
&lt;li&gt;¿Los hechos no tienen fuente?&lt;/li&gt;
&lt;li&gt;¿Los párrafos se repiten?&lt;/li&gt;
&lt;li&gt;¿El ritmo de las frases es demasiado uniforme?&lt;/li&gt;
&lt;li&gt;¿Falta contexto real?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si eres docente o editor, no saques una conclusión solo con una captura de una puntuación. Los resultados de detección son más útiles como punto de partida para revisar mejor, no como veredicto final.&lt;/p&gt;
&lt;p&gt;Si haces revisión de contenido para un sitio, combina AI Detector con edición humana, detección de plagio, verificación factual y revisión de fuentes. Puede ayudar a detectar contenido masivo de baja calidad, pero no reemplaza el criterio editorial.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;QuillBot AI Checker es una herramienta práctica para estimar inicialmente si un texto parece generado por IA. Puede ofrecer una probabilidad global y ayudar a localizar frases o párrafos con apariencia más artificial.&lt;/p&gt;
&lt;p&gt;Pero no es un juez absoluto.&lt;/p&gt;
&lt;p&gt;El valor de un detector de IA no está en decir &amp;ldquo;este artículo fue escrito definitivamente por IA&amp;rdquo;, sino en señalar partes que quizá son demasiado plantilladas, demasiado suaves o faltas de detalles reales.&lt;/p&gt;
&lt;p&gt;Una revisión confiable de contenido sigue necesitando proceso de escritura, fuentes, juicio humano y evidencia contextual. Como herramienta auxiliar, QuillBot AI Checker puede ser útil. Como conclusión final, puede perjudicar fácilmente a escritores legítimos.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://quillbot.com/ai-content-detector&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;QuillBot AI Detector&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://quillbot.com/ai-image-detector&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;QuillBot AI Image Detector&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://help.quillbot.com/hc/en-us/articles/35295733817111-Is-QuillBot-s-AI-Detector-free-or-premium&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;QuillBot Help Center: Is QuillBot’s AI Detector free or premium?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Actualización de Midjourney de mayo de 2026: modo conversacional, desarrollo asistido por IA y organización de SREF</title>
        <link>https://knightli.com/es/2026/05/17/midjourney-2026-05-office-hours-conversational-mode/</link>
        <pubDate>Sun, 17 May 2026 20:20:51 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/17/midjourney-2026-05-office-hours-conversational-mode/</guid>
        <description>&lt;p&gt;Lo más importante del Office Hours de Midjourney del 14 de mayo de 2026 no es un parámetro de modelo aislado. Es que el producto sigue moviéndose desde &amp;ldquo;escribir un prompt y generar una imagen&amp;rdquo; hacia un sistema creativo más conversacional, organizado e iterativo.&lt;/p&gt;
&lt;p&gt;La información viene de un resumen japonés de una sesión reciente de preguntas y respuestas del equipo de Midjourney. Cubre modo conversacional, desarrollo asistido por IA, rediseño del sitio web, organización de SREF y etiquetas, Omni-reference, consistencia de múltiples personajes y cómo el propio equipo usa Midjourney.&lt;/p&gt;
&lt;p&gt;En una frase: Midjourney intenta que la generación de imágenes se parezca más a un sistema creativo con el que se puede conversar, ordenar e iterar.&lt;/p&gt;
&lt;h2 id=&#34;el-modo-conversacional-gana-importancia&#34;&gt;El modo conversacional gana importancia
&lt;/h2&gt;&lt;p&gt;El cambio más directo es Conversational Mode, el modo conversacional.&lt;/p&gt;
&lt;p&gt;Hasta ahora, usar Midjourney seguía dependiendo mucho de parámetros y sintaxis fija. Había que recordar reglas de relación de aspecto, referencias de imagen, referencias de estilo, parámetros del modelo y escribirlas en el prompt o ajustarlas en la interfaz.&lt;/p&gt;
&lt;p&gt;La dirección del nuevo modo conversacional es permitir que los usuarios describan esas configuraciones en lenguaje más natural.&lt;/p&gt;
&lt;p&gt;Por ejemplo, mediante voz o texto se podrán especificar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Parámetros predeterminados.&lt;/li&gt;
&lt;li&gt;Relación de aspecto, como &lt;code&gt;16:9&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Referencias de imagen.&lt;/li&gt;
&lt;li&gt;Referencias de estilo, es decir, &lt;code&gt;--sref&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Omni-reference en V7.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto muestra que Midjourney no solo quiere mejorar la calidad de generación. También quiere reducir el coste operativo de manejar parámetros.&lt;/p&gt;
&lt;p&gt;Para usuarios ocasionales, el mayor cambio es no tener que memorizar comandos todo el tiempo. Para usuarios intensivos, si el modo conversacional se vuelve suficientemente estable, puede convertirse en una entrada principal para ajustar configuraciones de generación con lenguaje natural.&lt;/p&gt;
&lt;h2 id=&#34;el-desarrollo-asistido-por-ia-cambia-la-velocidad-de-iteración-de-midjourney&#34;&gt;El desarrollo asistido por IA cambia la velocidad de iteración de Midjourney
&lt;/h2&gt;&lt;p&gt;Otro punto interesante es que el propio equipo de Midjourney está usando desarrollo asistido por IA a gran escala.&lt;/p&gt;
&lt;p&gt;El texto original menciona que ahora pueden corregir pequeños bugs, fricciones de interfaz y problemas de workflow mucho más rápido. Incluso hubo un ejemplo en el que se identificó un bug durante una llamada con usuarios, se corrigió en tiempo real con ayuda de IA, se revisó y se desplegó rápidamente.&lt;/p&gt;
&lt;p&gt;Esto es más interesante que decir simplemente &amp;ldquo;la IA ayuda a los ingenieros a escribir código&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Muestra que las herramientas de desarrollo con IA empiezan a influir en la forma en que los propios productos de IA iteran:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El feedback de usuarios puede entrar antes en el flujo de corrección.&lt;/li&gt;
&lt;li&gt;Los problemas pequeños de experiencia son más fáciles de resolver.&lt;/li&gt;
&lt;li&gt;Los ingenieros pueden dedicar más energía a arquitectura, review, decisiones de diseño y pruebas.&lt;/li&gt;
&lt;li&gt;Los equipos de producto pueden limpiar edge cases con más frecuencia.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un producto como Midjourney tiene muchas rutas creativas, combinaciones de parámetros, experiencia móvil, búsqueda y flujos de organización. Muchos problemas no son que el modelo central no pueda generar, sino que una entrada es incómoda, una operación tiene un paso de más o un estado límite se siente mal.&lt;/p&gt;
&lt;p&gt;El desarrollo asistido por IA encaja especialmente bien para acelerar muchas mejoras pequeñas de este tipo.&lt;/p&gt;
&lt;h2 id=&#34;el-rediseño-del-sitio-trata-de-workflow-no-de-recortar-funciones&#34;&gt;El rediseño del sitio trata de workflow, no de recortar funciones
&lt;/h2&gt;&lt;p&gt;En el Office Hours también se mencionó que el sitio de Midjourney está pasando por un rediseño importante.&lt;/p&gt;
&lt;p&gt;El objetivo no es eliminar funciones complejas, sino hacer el flujo creativo más intuitivo, facilitar el onboarding y organizar mejor herramientas y funciones.&lt;/p&gt;
&lt;p&gt;Esto es clave.&lt;/p&gt;
&lt;p&gt;El problema de Midjourney no es que tenga pocas funciones. Cuando las funciones crecen, entradas, colecciones, organización, referencias, exploración y reutilización se vuelven más complejas. Para usuarios ligeros, la dificultad es &amp;ldquo;por dónde empiezo&amp;rdquo;. Para usuarios intensivos, es &amp;ldquo;cómo gestiono muchos estilos, referencias y resultados experimentales&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Las posibles estrategias de despliegue incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ofrecer interfaces antigua y nueva en paralelo.&lt;/li&gt;
&lt;li&gt;Empezar con una fase alpha.&lt;/li&gt;
&lt;li&gt;Migrar por etapas para evitar afectar a usuarios intensivos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas estrategias muestran que el equipo entiende que Midjourney no es un simple juguete de generación de imágenes. Muchos usuarios ya lo han incorporado a flujos creativos reales, así que un cambio de interfaz no puede romper hábitos existentes sin cuidado.&lt;/p&gt;
&lt;h2 id=&#34;sref-estilos-y-etiquetas-siguen-siendo-puntos-de-dolor&#34;&gt;SREF, estilos y etiquetas siguen siendo puntos de dolor
&lt;/h2&gt;&lt;p&gt;SREF y la organización de estilos fueron una de las partes más interesantes de la sesión.&lt;/p&gt;
&lt;p&gt;Los usuarios quieren mejores sistemas de organización, especialmente para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SREF aleatorios.&lt;/li&gt;
&lt;li&gt;Referencias de estilo.&lt;/li&gt;
&lt;li&gt;Estéticas guardadas.&lt;/li&gt;
&lt;li&gt;Etiquetas y etiquetas de color.&lt;/li&gt;
&lt;li&gt;Más capacidad de filtrar, agrupar y reutilizar.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pero el equipo también planteó una pregunta: si el sistema actual de carpetas ya permite que una imagen pertenezca a varias carpetas, soporta carpetas ilimitadas y permite filtrar y ordenar, ¿qué aportan exactamente las etiquetas que las carpetas no puedan resolver?&lt;/p&gt;
&lt;p&gt;La pregunta es práctica.&lt;/p&gt;
&lt;p&gt;Muchos productos añaden etiquetas porque los usuarios dicen que quieren etiquetas. Pero si el sistema de etiquetas está mal diseñado, se convierte en otra capa de clasificación caótica. Si carpetas, etiquetas, favoritos, búsqueda, filtros, proyectos y bibliotecas de estilo no tienen límites claros, el usuario termina gestionando peor.&lt;/p&gt;
&lt;p&gt;Por eso el equipo de Midjourney quiere ejemplos concretos de workflow: ¿en qué escenario necesitan etiquetas los usuarios? ¿Por qué no bastan las carpetas? ¿Es para combinar estilos rápidamente, reutilizar entre proyectos, filtrar por tema, tono de color, estilo fotográfico o relación entre personajes?&lt;/p&gt;
&lt;p&gt;Para Midjourney, el sistema de organización puede volverse tan importante como el modelo de generación. Cuando los usuarios trabajan a largo plazo, lo difícil no es generar una imagen, sino gestionar miles de imágenes, cientos de direcciones de estilo y resultados de experimentos repetidos.&lt;/p&gt;
&lt;h2 id=&#34;omni-reference-apunta-a-un-control-de-personajes-más-complejo&#34;&gt;Omni-reference apunta a un control de personajes más complejo
&lt;/h2&gt;&lt;p&gt;El texto también menciona que los futuros sistemas Omni-reference / subject reference podrían permitir múltiples referencias de personajes al mismo tiempo y una mejor separación entre sujetos.&lt;/p&gt;
&lt;p&gt;Esto corresponde a un problema persistente de la generación de imágenes con IA: consistencia de personajes y relaciones entre varios personajes.&lt;/p&gt;
&lt;p&gt;Mantener un solo personaje consistente ya es difícil. Varios personajes lo son más. Problemas comunes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Rasgos del personaje A pasan al personaje B.&lt;/li&gt;
&lt;li&gt;Identidades mezcladas entre varias personas.&lt;/li&gt;
&lt;li&gt;Ropa, peinado y rasgos faciales cambian entre imágenes.&lt;/li&gt;
&lt;li&gt;La imagen de referencia afecta demasiado al estilo completo en vez de controlar solo el sujeto.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si Omni-reference puede manejar mejor la separación de sujetos, Midjourney será más útil para cómics, storyboards, visuales publicitarios, diseño de personajes, concept art de juegos y narrativas continuas.&lt;/p&gt;
&lt;p&gt;Esta es una dirección que merece seguimiento después de V7.&lt;/p&gt;
&lt;h2 id=&#34;midjourney-está-reinterpretando-el-prompt&#34;&gt;Midjourney está reinterpretando el prompt
&lt;/h2&gt;&lt;p&gt;El resumen también incluye una idea interesante: el lenguaje es una capa imperfecta de compresión de la imaginación.&lt;/p&gt;
&lt;p&gt;Esa frase explica bien la dirección de producto de Midjourney.&lt;/p&gt;
&lt;p&gt;Muchos usuarios creen que el núcleo de la generación de imágenes con IA es escribir prompts más largos y precisos. Pero en el trabajo creativo real, referencias de imagen, referencias de estilo, moodboards, SREF, variaciones, regeneración y postproducción suelen ser más útiles que un prompt muy largo.&lt;/p&gt;
&lt;p&gt;El workflow de Duncan, miembro del equipo de Midjourney, refleja esto. Usa Midjourney como un sketchbook, combinando moodboards, SREF, poco texto, regeneración alta con &lt;code&gt;--r&lt;/code&gt;, variaciones fuertes y sutiles, retoque en Photoshop y flujos externos de upscaling.&lt;/p&gt;
&lt;p&gt;Esto muestra que los usuarios maduros de Midjourney no trabajan solo con &amp;ldquo;prompts mágicos&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Un proceso más realista sería:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Usar poco lenguaje para marcar dirección.&lt;/li&gt;
&lt;li&gt;Usar referencias de imagen para dar contexto visual.&lt;/li&gt;
&lt;li&gt;Usar SREF para acotar estilo.&lt;/li&gt;
&lt;li&gt;Usar muchas variaciones para explorar el espacio.&lt;/li&gt;
&lt;li&gt;Usar criterio humano para seleccionar resultados.&lt;/li&gt;
&lt;li&gt;Usar herramientas externas para postproducción.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;El prompt sigue importando, pero no lo es todo.&lt;/p&gt;
&lt;h2 id=&#34;qué-significa-para-los-usuarios&#34;&gt;Qué significa para los usuarios
&lt;/h2&gt;&lt;p&gt;Si solo generas imágenes ocasionalmente, el efecto más directo será que el modo conversacional debería ser más fácil de usar. En el futuro podrás expresar proporción, referencias, estilo y parámetros de forma más natural, sin memorizar tantos comandos.&lt;/p&gt;
&lt;p&gt;Si eres usuario intensivo, hay tres áreas que conviene vigilar.&lt;/p&gt;
&lt;p&gt;Primero, la organización.&lt;/p&gt;
&lt;p&gt;La evolución de SREF, estilos, carpetas, favoritos y etiquetas afectará directamente la eficiencia creativa a largo plazo.&lt;/p&gt;
&lt;p&gt;Segundo, el rediseño web.&lt;/p&gt;
&lt;p&gt;Si la nueva interfaz conecta exploración, organización, reutilización y exportación, Midjourney se parecerá más a una herramienta creativa profesional que a un generador aislado.&lt;/p&gt;
&lt;p&gt;Tercero, referencias de personajes y sujetos.&lt;/p&gt;
&lt;p&gt;Si Omni-reference maneja de forma estable múltiples personajes y separación de sujetos, Midjourney será más adecuado para proyectos continuos, no solo para imágenes sueltas.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;El punto central del Office Hours de Midjourney de mayo de 2026 no es un parámetro llamativo, sino que el producto sigue evolucionando hacia un sistema creativo.&lt;/p&gt;
&lt;p&gt;El modo conversacional reduce la barrera de entrada. El desarrollo asistido por IA acelera la iteración. El rediseño web intenta reorganizar workflows. La discusión sobre SREF y etiquetas apunta a gestión de activos a largo plazo. Omni-reference se relaciona con consistencia de personajes y control de sujetos complejos.&lt;/p&gt;
&lt;p&gt;Para las herramientas de generación de imágenes con IA, la capacidad del modelo importa, por supuesto. Pero cuando la calidad de generación alcanza cierto nivel, lo que decide si los usuarios se quedan a largo plazo suele ser workflow, organización, controlabilidad y velocidad de iteración.&lt;/p&gt;
&lt;p&gt;Midjourney está completando esas piezas.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://note.com/akisuke0925/n/nc9e099d9c77f&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Midjourney 最新ニュース（2026年5月14 日）｜アキスケ&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Cómo ve el desarrollo de software con IA Peter Steinberger, creador de OpenClaw: de OpenClaw a la programación en bucle cerrado</title>
        <link>https://knightli.com/es/2026/05/17/peter-steinberger-ai-software-development/</link>
        <pubDate>Sun, 17 May 2026 20:02:26 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/17/peter-steinberger-ai-software-development/</guid>
        <description>&lt;p&gt;La trayectoria de Peter Steinberger sirve para observar qué está cambiando en el desarrollo de software con IA.&lt;/p&gt;
&lt;p&gt;No es un recién llegado que se hizo visible de repente gracias a la IA. Antes de OpenClaw, ya era fundador de PSPDFKit, una empresa dedicada a renderizado PDF, procesamiento de documentos y herramientas para desarrolladores. Este tipo de producto no gana solo con narrativa: debe resolver rendimiento, compatibilidad, diseño de API, clientes empresariales y mantenimiento a largo plazo.&lt;/p&gt;
&lt;p&gt;Por eso, cuando Steinberger construyó OpenClaw con herramientas de IA y empezó a hablar de AI Agent, automatización personal y AI coding, lo importante no fue solo que &amp;ldquo;una persona escribió mucho código&amp;rdquo;. Lo más interesante es cómo combinó años de experiencia en ingeniería de software con una nueva generación de AI coding agents para reinterpretar el proceso de desarrollo.&lt;/p&gt;
&lt;h2 id=&#34;ai-coding-no-es-un-botón-mágico&#34;&gt;AI coding no es un botón mágico
&lt;/h2&gt;&lt;p&gt;Muchas discusiones sobre AI coding se reducen a dos extremos.&lt;/p&gt;
&lt;p&gt;Uno dice que la IA ya puede escribir código y que los programadores pronto no serán necesarios.&lt;/p&gt;
&lt;p&gt;El otro dice que el código generado por IA no es fiable y que la ingeniería real debe seguir escribiéndose a mano.&lt;/p&gt;
&lt;p&gt;La experiencia de Steinberger apunta a una tercera idea: la IA cambia la unidad de operación del desarrollo de software, pero no elimina el juicio de ingeniería.&lt;/p&gt;
&lt;p&gt;Antes, el trabajo del desarrollador giraba alrededor de editar código. Descomponer requisitos, decidir arquitectura, implementar, probar y corregir bugs se organizaba alrededor de cambios manuales.&lt;/p&gt;
&lt;p&gt;Cuando entran AI coding agents, el desarrollador empieza a parecerse más a alguien que gestiona un sistema de ejecución:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Explicar el objetivo.&lt;/li&gt;
&lt;li&gt;Proporcionar contexto.&lt;/li&gt;
&lt;li&gt;Definir límites.&lt;/li&gt;
&lt;li&gt;Dejar que el agent modifique código.&lt;/li&gt;
&lt;li&gt;Ejecutar pruebas y comprobaciones.&lt;/li&gt;
&lt;li&gt;Iterar según los resultados.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto no es simplemente entregar el teclado al modelo. Es pasar de &amp;ldquo;escribir cada línea a mano&amp;rdquo; a &amp;ldquo;definir dirección, diseñar feedback y juzgar resultados&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-no-le-convence-llamarlo-vibe-coding&#34;&gt;Por qué no le convence llamarlo vibe coding
&lt;/h2&gt;&lt;p&gt;Una expresión frecuente alrededor de Steinberger es &lt;code&gt;vibe coding&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;El término nació para describir una nueva forma de desarrollo: el desarrollador describe ideas en lenguaje natural, deja que la IA genere mucho código y luego ajusta con resultados de ejecución y feedback.&lt;/p&gt;
&lt;p&gt;Pero Steinberger no está del todo de acuerdo con esa etiqueta. En cobertura pública se ha señalado que ve &lt;code&gt;vibe coding&lt;/code&gt; como una expresión que puede volverse despectiva, porque sugiere que el desarrollo asistido por IA es solo &amp;ldquo;generar por intuición&amp;rdquo; e ignora la habilidad, el juicio y la experiencia detrás.&lt;/p&gt;
&lt;p&gt;La crítica tiene sentido.&lt;/p&gt;
&lt;p&gt;El AI coding efectivo no consiste en escribir una frase casual y confiar en la salida del modelo. Requiere:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Convertir requisitos vagos en tareas ejecutables.&lt;/li&gt;
&lt;li&gt;Detectar si el modelo entendió mal el objetivo.&lt;/li&gt;
&lt;li&gt;Diseñar pruebas y criterios de aceptación.&lt;/li&gt;
&lt;li&gt;Juzgar si la estructura del código será mantenible.&lt;/li&gt;
&lt;li&gt;Saber cuándo dejar de generar y pasar a revisión humana.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En otras palabras, la IA reduce la fricción de escribir código, pero no reduce la responsabilidad de entender el sistema.&lt;/p&gt;
&lt;h2 id=&#34;la-clave-es-el-bucle&#34;&gt;La clave es el bucle
&lt;/h2&gt;&lt;p&gt;Una idea que se asocia con frecuencia a entrevistas y textos de Steinberger es el bucle.&lt;/p&gt;
&lt;p&gt;Dejar que la IA genere código es un proceso de bucle abierto.&lt;/p&gt;
&lt;p&gt;Dejar que la IA genere código, lo ejecute, lea errores, corrija problemas y vuelva a ejecutar pruebas se acerca más a un bucle cerrado.&lt;/p&gt;
&lt;p&gt;La diferencia es importante.&lt;/p&gt;
&lt;p&gt;La generación en bucle abierto crea con facilidad software que parece utilizable. La página abre, las funciones parecen existir y hay bastante código. Pero al entrar en escenarios reales aparecen problemas de estado, permisos, manejo de errores, casos límite y despliegue.&lt;/p&gt;
&lt;p&gt;El desarrollo en bucle cerrado exige que la salida esté limitada por feedback. El bucle más simple es:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Escribir claramente el objetivo.&lt;/li&gt;
&lt;li&gt;Dejar que la IA modifique el código.&lt;/li&gt;
&lt;li&gt;Ejecutar automáticamente pruebas, type checks, lint o build.&lt;/li&gt;
&lt;li&gt;Devolver los errores a la IA.&lt;/li&gt;
&lt;li&gt;Repetir hasta que pase.&lt;/li&gt;
&lt;li&gt;Hacer una revisión humana de la ruta crítica.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Ahí es donde el desarrollo de software con IA puede mejorar de verdad la eficiencia. No porque el modelo acierte a la primera, sino porque puede participar rápidamente en el ciclo de generar, validar y reparar.&lt;/p&gt;
&lt;h2 id=&#34;cuanta-más-experiencia-mejor-se-usa-la-ia&#34;&gt;Cuanta más experiencia, mejor se usa la IA
&lt;/h2&gt;&lt;p&gt;Uno de los malentendidos más comunes sobre AI coding es que la experiencia deja de importar.&lt;/p&gt;
&lt;p&gt;El caso de Steinberger sugiere lo contrario: la experiencia importa más, aunque su función cambia.&lt;/p&gt;
&lt;p&gt;Un ingeniero con experiencia juzga mejor:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Qué tareas conviene pasar a un agent.&lt;/li&gt;
&lt;li&gt;Qué módulos necesitan pruebas primero.&lt;/li&gt;
&lt;li&gt;Qué cambios son demasiado riesgosos para una refactorización amplia con IA.&lt;/li&gt;
&lt;li&gt;Qué código generado solo parece razonable.&lt;/li&gt;
&lt;li&gt;Qué problemas deberían resolverse con arquitectura y no con más parches.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La IA puede generar muchas soluciones candidatas, pero cuantas más opciones hay, más juicio se necesita. Alguien sin experiencia puede quedar impresionado porque &amp;ldquo;funciona&amp;rdquo;. Un ingeniero con experiencia pregunta: ¿se puede mantener? ¿se puede extender? ¿rompe límites de seguridad? ¿se puede depurar si falla?&lt;/p&gt;
&lt;p&gt;Por eso los AI coding agents no convierten la ingeniería de software en puro chat. Más bien externalizan una parte del trabajo de ejecución y amplifican la importancia de planificar, revisar, validar y decidir trade-offs.&lt;/p&gt;
&lt;h2 id=&#34;openclaw-importa-más-allá-del-proyecto&#34;&gt;OpenClaw importa más allá del proyecto
&lt;/h2&gt;&lt;p&gt;OpenClaw llamó la atención no solo porque es un AI agent open source, ni solo porque creció rápido.&lt;/p&gt;
&lt;p&gt;También funciona como señal: los desarrolladores empiezan a querer que la IA no solo responda preguntas, sino que se conecte a herramientas reales y ejecute acciones reales.&lt;/p&gt;
&lt;p&gt;Los chatbots tradicionales se quedan dentro de la caja de conversación. Pueden explicar código, escribir borradores y dar consejos, pero muchas veces una persona todavía debe copiar, pegar, abrir software y ejecutar comandos.&lt;/p&gt;
&lt;p&gt;La dirección de los agents es conectar modelos con herramientas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sistema de archivos.&lt;/li&gt;
&lt;li&gt;Navegador.&lt;/li&gt;
&lt;li&gt;Terminal.&lt;/li&gt;
&lt;li&gt;Email.&lt;/li&gt;
&lt;li&gt;Calendario.&lt;/li&gt;
&lt;li&gt;Servicios de terceros.&lt;/li&gt;
&lt;li&gt;Repositorios de proyecto.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cuando los modelos pueden usar esas herramientas, cambian los límites del desarrollo de software. La IA deja de ser solo autocompletado de código y participa en lectura de proyectos, descomposición de tareas, edición de archivos, ejecución de pruebas, preparación de PR y automatización de workflows.&lt;/p&gt;
&lt;p&gt;Por eso también llamó la atención la incorporación de Steinberger a OpenAI. No representa solo una historia individual de desarrollador, sino una dirección de producto: los agents personales pasarán de demos a la capa de trabajo diaria.&lt;/p&gt;
&lt;h2 id=&#34;qué-significa-para-desarrolladores-comunes&#34;&gt;Qué significa para desarrolladores comunes
&lt;/h2&gt;&lt;p&gt;Para desarrolladores comunes, la experiencia de Steinberger no se puede copiar directamente en todos los casos.&lt;/p&gt;
&lt;p&gt;No todo el mundo puede gestionar varios agents a la vez. No todos los proyectos toleran generación intensa con IA. No todos los equipos aceptan el ritmo de &amp;ldquo;generar primero e iterar rápido&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Pero hay varias lecciones útiles.&lt;/p&gt;
&lt;p&gt;Primero, escribir tareas con claridad.&lt;/p&gt;
&lt;p&gt;La IA es sensible a objetivos vagos. Si dices &amp;ldquo;optimiza esto&amp;rdquo;, puede cambiar estilo, estructura, funciones y lógica. Si dices &amp;ldquo;cambia el mensaje de error al fallar el login de inglés a chino sin alterar el flujo de autenticación&amp;rdquo;, el resultado suele ser más controlable.&lt;/p&gt;
&lt;p&gt;Segundo, fijar comandos de validación.&lt;/p&gt;
&lt;p&gt;Si un proyecto no tiene pruebas, build ni lint, la IA tiene dificultades para formar un bucle. Incluso comandos básicos como &lt;code&gt;npm test&lt;/code&gt;, &lt;code&gt;go test ./...&lt;/code&gt;, &lt;code&gt;pytest&lt;/code&gt; o &lt;code&gt;hugo&lt;/code&gt; son mejores que revisar solo a ojo.&lt;/p&gt;
&lt;p&gt;Tercero, controlar el alcance del cambio.&lt;/p&gt;
&lt;p&gt;Pedir a la IA que trabaje en un módulo, un bug o una página cada vez suele ser más fiable que pedirle &amp;ldquo;refactoriza todo el proyecto&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Cuarto, mantener revisión humana.&lt;/p&gt;
&lt;p&gt;En autenticación, pagos, permisos, eliminación de datos, scripts de despliegue, migraciones de base de datos y configuración de seguridad, no bajes el estándar de revisión solo porque el código lo generó IA.&lt;/p&gt;
&lt;p&gt;Quinto, revisar prompts y patrones de fallo.&lt;/p&gt;
&lt;p&gt;Si la IA malinterpreta a menudo cierto tipo de tarea, escribe esas restricciones en reglas del proyecto, agent instructions o archivos de skill. La capacidad de AI coding no viene solo del modelo, sino también del entorno de trabajo que construyes alrededor.&lt;/p&gt;
&lt;h2 id=&#34;hacia-dónde-va-el-desarrollo-de-software-con-ia&#34;&gt;Hacia dónde va el desarrollo de software con IA
&lt;/h2&gt;&lt;p&gt;La historia de Steinberger muestra que el desarrollo de software con IA se mueve desde &amp;ldquo;ayudar a escribir código&amp;rdquo; hacia &amp;ldquo;organizar flujos de producción de software&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Las primeras herramientas de AI coding servían sobre todo para completar funciones, explicar errores y generar plantillas. El cambio actual es que los agents pueden trabajar entre archivos, llamar herramientas, ejecutar comprobaciones y seguir corrigiendo con feedback.&lt;/p&gt;
&lt;p&gt;Esto apunta a varias tendencias.&lt;/p&gt;
&lt;p&gt;Primero, subirá el techo productivo de los desarrolladores individuales.&lt;/p&gt;
&lt;p&gt;Una persona puede avanzar más prototipos, scripts, herramientas internas y productos pequeños. Pero producir más no significa producir mejor automáticamente. Cuanto más rápido se genera, más importante es validar.&lt;/p&gt;
&lt;p&gt;Segundo, la estructura del proyecto será más importante.&lt;/p&gt;
&lt;p&gt;Cuanto más claro sea el código, más explícitas las pruebas y más completa la documentación, más fácil será que la IA haga cambios correctos. Los proyectos caóticos son difíciles para humanos y para IA.&lt;/p&gt;
&lt;p&gt;Tercero, los ingenieros de software se parecerán más a diseñadores de workflows.&lt;/p&gt;
&lt;p&gt;En el futuro no importará solo conocer un lenguaje, sino saber organizar requisitos, contexto, herramientas, pruebas, despliegue y permisos en un bucle controlable.&lt;/p&gt;
&lt;p&gt;Cuarto, los límites de seguridad serán más sensibles.&lt;/p&gt;
&lt;p&gt;Si un agent puede hacer cosas, también puede hacer cosas equivocadas. Si puede leer archivos, ejecutar comandos y acceder a servicios, permisos, auditoría y rollback se vuelven infraestructura básica del entorno de desarrollo con IA.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Lo más valioso de la visión de Peter Steinberger sobre desarrollo de software con IA no es &amp;ldquo;cuánto código generó la IA&amp;rdquo;, sino la nueva postura de desarrollo que muestra.&lt;/p&gt;
&lt;p&gt;Las personas ya no solo escriben línea por línea dentro del editor. Diseñan objetivos, gestionan agents, construyen bucles de feedback, revisan resultados y ajustan el sistema. El código sigue siendo importante, pero ya no es el único centro del trabajo.&lt;/p&gt;
&lt;p&gt;Si el desarrollo tradicional enfatizaba &amp;ldquo;escribir bien el código&amp;rdquo;, el desarrollo con IA enfatizará cada vez más &amp;ldquo;hacer que el sistema produzca resultados correctos y verificables de forma continua&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;No se trata solo de bajar la barrera de la ingeniería. Cambia la forma de la capacidad técnica: de implementación manual hacia descomposición de tareas, gestión de contexto, orquestación de herramientas, validación automática y juicio final.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://techcrunch.com/2026/02/25/openclaw-creators-advice-to-ai-builders-is-to-be-more-playful-and-allow-yourself-time-to-improve/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;TechCrunch: OpenClaw creator’s advice to AI builders&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://builtin.com/articles/openclaw-founder-to-openai-analysis&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Built In: What Is OpenAI Getting From the OpenClaw Deal?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://podwise.ai/dashboard/episodes/7026858&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;The Pragmatic Engineer: The creator of Clawd: I ship code I don&amp;rsquo;t read&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.teamday.ai/ai/steinberger-openclaw-builders-unscripted-openai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;TeamDay: Peter Steinberger: Building OpenClaw as a Solo Dev&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Scientific Agent Skills: una biblioteca de skills para dar flujos de investigación a AI Agents</title>
        <link>https://knightli.com/es/2026/05/17/scientific-agent-skills/</link>
        <pubDate>Sun, 17 May 2026 17:52:04 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/17/scientific-agent-skills/</guid>
        <description>&lt;p&gt;&lt;code&gt;K-Dense-AI/scientific-agent-skills&lt;/code&gt; es una colección de Agent Skills para trabajo científico y de investigación.&lt;/p&gt;
&lt;p&gt;Su objetivo no es crear otro chatbot. Convierte tareas frecuentes de investigación, como consultar documentación, conectar bases de datos, escribir scripts de análisis, procesar archivos, generar gráficos y preparar informes, en skills que un AI Agent puede descubrir y llamar.&lt;/p&gt;
&lt;p&gt;Proyecto: &lt;a class=&#34;link&#34; href=&#34;https://github.com/K-Dense-AI/scientific-agent-skills&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/K-Dense-AI/scientific-agent-skills&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A fecha de 2026-05-17, la API de GitHub mostraba unos 23.4k stars, 2.5k forks, licencia MIT y último push el 2026-05-11. El README habla de 135 ready-to-use scientific and research skills, pero el directorio &lt;code&gt;scientific-skills&lt;/code&gt; muestra 137 entradas vía API de GitHub. La diferencia puede venir del criterio de conteo, entradas recientes o retraso en actualizar el README.&lt;/p&gt;
&lt;h2 id=&#34;conclusión-rápida&#34;&gt;Conclusión rápida
&lt;/h2&gt;&lt;p&gt;Scientific Agent Skills encaja con quienes ya usan Codex, Claude Code, Cursor, Gemini CLI u otra herramienta compatible con el estándar Agent Skills.&lt;/p&gt;
&lt;p&gt;Su valor principal está en tres puntos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Escribe el uso de herramientas científicas en &lt;code&gt;SKILL.md&lt;/code&gt;, para que el agent no tenga que adivinar cada vez cómo se usa una librería.&lt;/li&gt;
&lt;li&gt;Organiza bases de datos científicas, paquetes Python, procesamiento de documentos, escritura científica y visualización en una misma colección.&lt;/li&gt;
&lt;li&gt;Hace que un AI Agent se parezca más a un asistente capaz de ejecutar flujos de investigación, no solo a un bot que responde conceptos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pero no es un botón mágico que “hace ciencia” al instalarlo. Las skills pueden ayudar al agent a elegir herramientas correctas y generar código y flujos más fiables, pero la calidad de datos, el diseño experimental, las hipótesis estadísticas, las decisiones clínicas y las conclusiones de investigación siguen requiriendo juicio humano.&lt;/p&gt;
&lt;h2 id=&#34;qué-incluye&#34;&gt;Qué incluye
&lt;/h2&gt;&lt;p&gt;El README describe el proyecto como una colección de skills para investigación, computación científica, ingeniería, análisis, finanzas y escritura. Las áreas principales incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bioinformática y genómica.&lt;/li&gt;
&lt;li&gt;Quimioinformática y descubrimiento de fármacos.&lt;/li&gt;
&lt;li&gt;Proteómica y espectrometría de masas.&lt;/li&gt;
&lt;li&gt;Investigación clínica y medicina de precisión.&lt;/li&gt;
&lt;li&gt;Healthcare AI y machine learning clínico.&lt;/li&gt;
&lt;li&gt;Imagen médica y patología digital.&lt;/li&gt;
&lt;li&gt;Machine learning y AI.&lt;/li&gt;
&lt;li&gt;Ciencia de materiales y química.&lt;/li&gt;
&lt;li&gt;Física y astronomía.&lt;/li&gt;
&lt;li&gt;Simulación y optimización de ingeniería.&lt;/li&gt;
&lt;li&gt;Análisis y visualización de datos.&lt;/li&gt;
&lt;li&gt;Ciencia geoespacial y teledetección.&lt;/li&gt;
&lt;li&gt;Automatización de laboratorio.&lt;/li&gt;
&lt;li&gt;Escritura científica, revisión bibliográfica, peer review y gestión de citas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas skills no buscan limitar al agent a ciertas librerías. El README también deja claro que el agent puede escribir Python y llamar cualquier API o paquete disponible. Las skills aportan documentación curada, ejemplos, buenas prácticas y rutas de integración.&lt;/p&gt;
&lt;p&gt;En otras palabras, son una mezcla de manuales de herramientas científicas, plantillas de workflow y convenciones de llamada para agents.&lt;/p&gt;
&lt;h2 id=&#34;bases-de-datos-y-paquetes-python&#34;&gt;Bases de datos y paquetes Python
&lt;/h2&gt;&lt;p&gt;La parte más atractiva para usuarios científicos es la cobertura de bases de datos y del ecosistema Python.&lt;/p&gt;
&lt;p&gt;El README menciona:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Acceso unificado a 78 bases públicas mediante &lt;code&gt;database-lookup&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Cobertura de PubChem, ChEMBL, UniProt, COSMIC, ClinicalTrials.gov, FRED, USPTO y más.&lt;/li&gt;
&lt;li&gt;Skills dedicadas para DepMap, Imaging Data Commons, PrimeKG, U.S. Treasury Fiscal Data, Hugging Science y otras fuentes.&lt;/li&gt;
&lt;li&gt;Más de 70 Python Package Skills optimizadas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En el directorio aparecen muchos nombres conocidos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;rdkit&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;scanpy&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;biopython&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bioservices&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pydeseq2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;scvelo&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;scvi-tools&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pymatgen&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;qiskit&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pennylane&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openmm&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;mdanalysis&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;scikit-learn&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;statsmodels&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;matplotlib&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;seaborn&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;networkx&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sympy&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pytorch-lightning&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;transformers&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;timesfm-forecasting&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para un desarrollador, esas librerías no sorprenden por sí mismas. Lo útil es que el agent puede leer restricciones, ejemplos de código, flujos comunes y advertencias específicas mientras trabaja. Eso es más estable que depender solo de memoria antigua del modelo.&lt;/p&gt;
&lt;h2 id=&#34;escenarios-típicos&#34;&gt;Escenarios típicos
&lt;/h2&gt;&lt;p&gt;Scientific Agent Skills sirve mejor para tareas de investigación con varios pasos que para preguntas de una sola vuelta.&lt;/p&gt;
&lt;p&gt;En descubrimiento de fármacos, un agent podría consultar ChEMBL para inhibidores de EGFR, analizar relaciones estructura-actividad con RDKit, hacer screening virtual con DiffDock, buscar literatura y generar un informe.&lt;/p&gt;
&lt;p&gt;En análisis single-cell, podría cargar datos 10X en Scanpy, hacer QC, integrar datasets, identificar tipos celulares, ejecutar expresión diferencial y enriquecimiento de vías.&lt;/p&gt;
&lt;p&gt;En multi-omics, podría conectar RNA-seq, espectrometría de masas, metabolitos, interacciones de proteínas, ensayos clínicos y modelado estadístico.&lt;/p&gt;
&lt;p&gt;Sin skills, estas tareas se convierten fácilmente en “el agent entiende la dirección general, pero hay que recordarle cada paso”. La biblioteca de skills guarda rutas frecuentes para reducir desvíos.&lt;/p&gt;
&lt;h2 id=&#34;instalación&#34;&gt;Instalación
&lt;/h2&gt;&lt;p&gt;El README recomienda la herramienta estándar de Agent Skills:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npx skills add K-Dense-AI/scientific-agent-skills
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si usas GitHub CLI &lt;code&gt;v2.90.0+&lt;/code&gt;, también puedes instalar con &lt;code&gt;gh skill&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gh skill install K-Dense-AI/scientific-agent-skills
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Instalar una skill concreta:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gh skill install K-Dense-AI/scientific-agent-skills scanpy
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Indicar un agent destino:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gh skill install K-Dense-AI/scientific-agent-skills --agent codex
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gh skill install K-Dense-AI/scientific-agent-skills --agent cursor
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gh skill install K-Dense-AI/scientific-agent-skills --agent claude-code
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gh skill install K-Dense-AI/scientific-agent-skills --agent gemini
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Para reproducibilidad, puedes fijar release tag o commit SHA:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gh skill install K-Dense-AI/scientific-agent-skills --pin v1.0.0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gh skill install K-Dense-AI/scientific-agent-skills --pin abc123def
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Esto importa en investigación. Lo peor es “la semana pasada corría, esta semana cambió el resultado y nadie sabe por qué”. Si una skill participa en un análisis, registra skill, dependencias y versión de datos.&lt;/p&gt;
&lt;h2 id=&#34;requisitos-de-ejecución&#34;&gt;Requisitos de ejecución
&lt;/h2&gt;&lt;p&gt;El README lista:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Python 3.11+, recomendado 3.12+.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;uv&lt;/code&gt; para instalar dependencias Python.&lt;/li&gt;
&lt;li&gt;Un cliente compatible con Agent Skills.&lt;/li&gt;
&lt;li&gt;macOS, Linux o Windows with WSL2.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Los usuarios de Windows deben fijarse en WSL2. Muchas librerías científicas pueden correr en Windows nativo, pero cadenas de dependencias, compiladores, paquetes binarios y rutas dan más problemas. La mención “Windows with WSL2” sugiere un entorno tipo Unix para computación científica.&lt;/p&gt;
&lt;h2 id=&#34;diferencia-frente-a-una-colección-de-prompts&#34;&gt;Diferencia frente a una colección de prompts
&lt;/h2&gt;&lt;p&gt;Una colección de prompts suele decir al modelo cómo responder. Scientific Agent Skills va más allá: describe herramientas, librerías, bases de datos y workflows como skills descubribles.&lt;/p&gt;
&lt;p&gt;Diferencias prácticas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Una skill puede incluir instrucciones estructuradas y ejemplos de código.&lt;/li&gt;
&lt;li&gt;Puede mantenerse alrededor de una librería o base de datos concreta.&lt;/li&gt;
&lt;li&gt;El agent puede elegir skills según la tarea, en vez de cargar todas las reglas en el system prompt.&lt;/li&gt;
&lt;li&gt;Un equipo puede instalar solo lo que necesita y reducir ruido de contexto.&lt;/li&gt;
&lt;li&gt;Las skills pueden versionarse, revisarse y actualizarse con el repositorio.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para investigación compleja, esto se mantiene mejor que copiar un prompt universal enorme. Modelos, bases de datos y paquetes Python cambian. Capturar esos cambios en skills es más controlable que dejarlos en documentos personales de prompts.&lt;/p&gt;
&lt;h2 id=&#34;seguridad-y-límites-de-confianza&#34;&gt;Seguridad y límites de confianza
&lt;/h2&gt;&lt;p&gt;La advertencia de seguridad del README es directa: las Skills pueden ejecutar código e influir en el comportamiento del coding agent.&lt;/p&gt;
&lt;p&gt;Eso importa. Una skill científica puede instalar dependencias Python, acceder a bases de datos en red, leer y escribir archivos locales, ejecutar scripts de análisis, procesar datos experimentales o clínicos sensibles y generar informes que luego se citen.&lt;/p&gt;
&lt;p&gt;No conviene instalar todo a ciegas. Una ruta más segura:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Instala solo las skills necesarias para la tarea.&lt;/li&gt;
&lt;li&gt;Lee el &lt;code&gt;SKILL.md&lt;/code&gt; correspondiente antes.&lt;/li&gt;
&lt;li&gt;Revisa paquetes, API, archivos y servicios externos que puede llamar.&lt;/li&gt;
&lt;li&gt;Ten más cuidado con skills aportadas por la comunidad.&lt;/li&gt;
&lt;li&gt;Ejecuta tareas con datos y código en un entorno aislado.&lt;/li&gt;
&lt;li&gt;Mantén revisión humana para conclusiones, sugerencias clínicas y resultados estadísticos.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;El README también menciona Cisco AI Defense Skill Scanner y sugiere escanear skills de terceros localmente. El escaneo no sustituye la revisión humana, pero muestra conciencia del riesgo de supply chain de skills.&lt;/p&gt;
&lt;h2 id=&#34;para-quién-es&#34;&gt;Para quién es
&lt;/h2&gt;&lt;p&gt;Este proyecto es más útil para quienes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ya usan AI coding agents a diario.&lt;/li&gt;
&lt;li&gt;Procesan a menudo datos científicos, papers, gráficos e informes.&lt;/li&gt;
&lt;li&gt;Cambian frecuentemente entre herramientas del ecosistema Python científico.&lt;/li&gt;
&lt;li&gt;Quieren que un agent ejecute análisis de varios pasos, no solo explique conceptos.&lt;/li&gt;
&lt;li&gt;Quieren convertir flujos de investigación del equipo en skills reutilizables.&lt;/li&gt;
&lt;li&gt;Quieren estudiar cómo aplicar Agent Skills a dominios profesionales.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No encaja tanto si solo quieres que AI explique un paper de vez en cuando, no tienes entorno Python local, no quieres gestionar dependencias, no has definido límites de privacidad, red y ejecución de código, o necesitas un sistema clínico/productivo regulado sin revisión humana.&lt;/p&gt;
&lt;p&gt;Para análisis ocasionales, pedir al agent que escriba un script puede ser más ligero. Si repites flujos parecidos, la biblioteca gana valor.&lt;/p&gt;
&lt;h2 id=&#34;consejos-de-uso&#34;&gt;Consejos de uso
&lt;/h2&gt;&lt;p&gt;No empieces instalando todo el repositorio y entregando todas las tareas al agent.&lt;/p&gt;
&lt;p&gt;Una ruta más práctica:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Elige una tarea de bajo riesgo, como organizar literatura, generar gráficos o explorar datos públicos.&lt;/li&gt;
&lt;li&gt;Instala solo skills relevantes, como &lt;code&gt;literature-review&lt;/code&gt;, &lt;code&gt;scientific-writing&lt;/code&gt;, &lt;code&gt;scanpy&lt;/code&gt; o &lt;code&gt;rdkit&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Pide al agent que explique el plan antes de ejecutar código.&lt;/li&gt;
&lt;li&gt;Conserva datos de entrada, scripts, entorno y versiones de skills.&lt;/li&gt;
&lt;li&gt;Revisa manualmente los resultados.&lt;/li&gt;
&lt;li&gt;Si el flujo se estabiliza, conviértelo en SOP o skill propia del equipo.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;La clave de un agent científico no es automatizarlo todo. Es dar a las herramientas las partes repetitivas, tediosas y dependientes de documentación, y dejar juicio, hipótesis y conclusiones a las personas.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Scientific Agent Skills importa porque lleva Agent Skills desde programación general hacia investigación.&lt;/p&gt;
&lt;p&gt;El trabajo científico es naturalmente multi-herramienta, multi-base de datos, multi-archivo y multi-paso. Los prompts de chat por sí solos rara vez cubren esos detalles con estabilidad. Este proyecto convierte librerías, fuentes de datos y flujos de investigación comunes en skills, facilitando que un AI Agent entre en workflows reales.&lt;/p&gt;
&lt;p&gt;Pero cuanto más potente es, más límites necesita. Las skills pueden cambiar el comportamiento del agent, ejecutar código, acceder a red y procesar archivos. Lee antes de instalar, aísla la ejecución y no saltes la validación humana de conclusiones científicas.&lt;/p&gt;
&lt;p&gt;Si ya usas Codex, Claude Code, Cursor o Gemini CLI para investigación y análisis de datos, Scientific Agent Skills merece una mirada seria. Aunque no lo instales completo, su forma de dividir skills sirve como referencia para organizar workflows de AI científica en equipo.&lt;/p&gt;
&lt;p&gt;Referencias:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/K-Dense-AI/scientific-agent-skills&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;K-Dense-AI/scientific-agent-skills&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/K-Dense-AI/scientific-agent-skills/blob/main/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;README original&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://agentskills.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Agent Skills standard&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/K-Dense-AI/k-dense-byok&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;K-Dense BYOK&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.blog/changelog/2026-04-16-manage-agent-skills-with-github-cli/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;GitHub CLI gh skill changelog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>ai-goofish-monitor: sistema open-source para vigilar anuncios de Goofish con IA</title>
        <link>https://knightli.com/es/2026/05/17/ai-goofish-monitor/</link>
        <pubDate>Sun, 17 May 2026 17:24:03 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/17/ai-goofish-monitor/</guid>
        <description>&lt;p&gt;ai-goofish-monitor es un sistema open-source de Usagi-org para monitorizar productos en Goofish.&lt;/p&gt;
&lt;p&gt;Su objetivo es claro: automatizar búsqueda, filtrado, análisis de productos, registro de resultados y notificaciones en Goofish, para ayudar a encontrar antes los artículos de segunda mano que cumplen ciertas condiciones. El proyecto usa Playwright para automatización de páginas y se conecta a modelos de IA con entrada de imágenes para evaluar mejor la información del producto.&lt;/p&gt;
&lt;p&gt;Proyecto: &lt;a class=&#34;link&#34; href=&#34;https://github.com/Usagi-org/ai-goofish-monitor&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/Usagi-org/ai-goofish-monitor&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;resumen-rápido&#34;&gt;Resumen rápido
&lt;/h2&gt;&lt;p&gt;ai-goofish-monitor se parece más a un &amp;ldquo;panel de inteligencia de compras para Goofish&amp;rdquo; que a un simple script de alertas por palabras clave.&lt;/p&gt;
&lt;p&gt;Tiene varias características claras:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Interfaz web completa para gestionar tareas, cuentas, criterios de IA, logs y resultados.&lt;/li&gt;
&lt;li&gt;Monitoreo concurrente de múltiples tareas; cada tarea puede configurar palabras clave, precio, filtros y AI Prompt.&lt;/li&gt;
&lt;li&gt;Uso de Playwright para capturar páginas de Goofish, útil cuando se necesita estado de login e interacción con la página.&lt;/li&gt;
&lt;li&gt;Evaluación con IA para decidir si un producto cumple los requisitos, no solo coincidencia por palabras clave.&lt;/li&gt;
&lt;li&gt;Soporte para ntfy.sh, WeCom, Bark, Telegram, Webhook y otros canales.&lt;/li&gt;
&lt;li&gt;Cron, gestión de múltiples cuentas, rotación de proxies, reintentos y despliegue con Docker.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Es útil para quienes buscan a menudo productos concretos en Goofish: electrónica de segunda mano, cámaras, GPU, discos, consolas, instrumentos, electrodomésticos o coleccionables. Pero no es una &amp;ldquo;máquina automática de chollos&amp;rdquo;. Los resultados de Goofish cambian, el estado de login puede caducar y los controles de riesgo de la plataforma afectan la estabilidad. Conviene usarlo como herramienta auxiliar de filtrado, no como sustituto del juicio humano.&lt;/p&gt;
&lt;h2 id=&#34;qué-problema-resuelve&#34;&gt;Qué problema resuelve
&lt;/h2&gt;&lt;p&gt;Buscar productos de segunda mano en Goofish suele tener varios problemas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Hay demasiados anuncios para revisarlos manualmente.&lt;/li&gt;
&lt;li&gt;Títulos y descripciones no son uniformes, así que las palabras clave fallan o generan falsos positivos.&lt;/li&gt;
&lt;li&gt;Los buenos precios duran poco y se descubren tarde.&lt;/li&gt;
&lt;li&gt;Un mismo producto puede variar por región, precio, estado y vendedor.&lt;/li&gt;
&lt;li&gt;Entre productos baratos se mezclan accesorios, dañados, reacondicionados y títulos engañosos.&lt;/li&gt;
&lt;li&gt;Vigilar muchas palabras clave de forma continua es difícil manualmente.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Las alertas básicas por palabra clave solo resuelven una parte. Si buscas &amp;ldquo;ThinkPad X1&amp;rdquo;, pueden aparecer accesorios, pantallas rotas, cajas vacías o piezas desmontadas. Si buscas &amp;ldquo;Sony A7C&amp;rdquo;, puedes encontrar kits con lentes, alquileres, títulos llamativos o precios anómalos.&lt;/p&gt;
&lt;p&gt;La idea de ai-goofish-monitor es recoger candidatos con automatización, dejar que la IA aplique tus criterios y finalmente enviar los resultados que merecen atención.&lt;/p&gt;
&lt;h2 id=&#34;funciones-principales&#34;&gt;Funciones principales
&lt;/h2&gt;&lt;p&gt;El README del proyecto lista capacidades bastante completas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Gestión visual web: tareas, cuentas, criterios de IA, logs de ejecución y resultados.&lt;/li&gt;
&lt;li&gt;Flujo impulsado por IA: creación de tareas con lenguaje natural y análisis con modelos multimodales.&lt;/li&gt;
&lt;li&gt;Tareas concurrentes: cada tarea puede configurar palabras clave, precio, filtros y AI Prompt por separado.&lt;/li&gt;
&lt;li&gt;Filtros avanzados: envío gratis, rango de publicación reciente y filtro por provincia / ciudad / distrito.&lt;/li&gt;
&lt;li&gt;Notificaciones instantáneas: ntfy.sh, WeCom, Bark, Telegram, Webhook y más.&lt;/li&gt;
&lt;li&gt;Programación: tareas periódicas con Cron.&lt;/li&gt;
&lt;li&gt;Rotación de cuentas y proxies: múltiples cuentas, asociación de tareas, pool de proxies y reintentos.&lt;/li&gt;
&lt;li&gt;Docker: despliegue en contenedores.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Juntas, estas funciones cubren el flujo completo desde crear una tarea hasta recibir una alerta.&lt;/p&gt;
&lt;h2 id=&#34;flujo-de-trabajo&#34;&gt;Flujo de trabajo
&lt;/h2&gt;&lt;p&gt;Un flujo típico sería:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Desplegar el servicio y abrir la Web UI.&lt;/li&gt;
&lt;li&gt;Importar el estado de login de una cuenta Goofish.&lt;/li&gt;
&lt;li&gt;Crear una tarea de monitoreo.&lt;/li&gt;
&lt;li&gt;Configurar palabras clave, rango de precio, región, ventana de publicación reciente y otros filtros.&lt;/li&gt;
&lt;li&gt;Escribir criterios o dejar que la IA los genere.&lt;/li&gt;
&lt;li&gt;Ejecutar la tarea en tiempo real o de forma programada.&lt;/li&gt;
&lt;li&gt;Playwright abre páginas y extrae información de productos.&lt;/li&gt;
&lt;li&gt;La IA evalúa título, descripción, imágenes y Prompt según tus necesidades.&lt;/li&gt;
&lt;li&gt;Los resultados que coinciden se guardan en SQLite.&lt;/li&gt;
&lt;li&gt;El sistema envía notificaciones por los canales configurados.&lt;/li&gt;
&lt;li&gt;El usuario revisa resultados, logs e historial de precios en la Web UI.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;El valor de la IA está sobre todo en el paso 8. Puede entender condiciones en lenguaje natural como &amp;ldquo;buen estado, precio razonable, sin accesorios, no reparado, idealmente recogida local&amp;rdquo;, algo más flexible que reglas simples de palabras clave.&lt;/p&gt;
&lt;h2 id=&#34;despliegue-con-docker&#34;&gt;Despliegue con Docker
&lt;/h2&gt;&lt;p&gt;El proyecto recomienda Docker:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/Usagi-org/ai-goofish-monitor &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; ai-goofish-monitor
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cp .env.example .env
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;vim .env
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker compose up -d
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker compose logs -f app
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker compose down
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;La dirección por defecto de la Web UI es:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://127.0.0.1:8000
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;La imagen oficial es:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ghcr.io/usagi-org/ai-goofish:latest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si descargar la imagen es lento, el README también muestra un ejemplo con mirror:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker pull ghcr.nju.edu.cn/usagi-org/ai-goofish:latest
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker tag ghcr.nju.edu.cn/usagi-org/ai-goofish:latest ghcr.io/usagi-org/ai-goofish:latest
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker compose up -d
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;La imagen Docker ya incluye Chromium, por lo que no hace falta instalar un navegador adicional en el host. Los directorios persistentes por defecto incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;data/&lt;/code&gt;: almacenamiento principal SQLite para tareas, resultados e historial de precios.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;state/&lt;/code&gt;: archivos cookie de estado de login.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;prompts/&lt;/code&gt;: prompts de tareas.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;logs/&lt;/code&gt;: logs de ejecución.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;images/&lt;/code&gt;: imágenes de productos y directorios temporales.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si cambias &lt;code&gt;SERVER_PORT&lt;/code&gt; en &lt;code&gt;.env&lt;/code&gt;, también debes ajustar el mapeo de puertos en &lt;code&gt;docker-compose.yaml&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;configuración-mínima&#34;&gt;Configuración mínima
&lt;/h2&gt;&lt;p&gt;La configuración mínima gira alrededor del modelo de IA y el login de la Web UI:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-env&#34; data-lang=&#34;env&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;OPENAI_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_api_key
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;OPENAI_BASE_URL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_openai_compatible_base_url
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;OPENAI_MODEL_NAME&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_multimodal_model
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;WEB_USERNAME&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;admin
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;WEB_PASSWORD&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;change_me
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Los tres primeros son obligatorios para conectar el modelo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;OPENAI_API_KEY&lt;/code&gt;: API Key del modelo.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;OPENAI_BASE_URL&lt;/code&gt;: endpoint compatible con OpenAI.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;OPENAI_MODEL_NAME&lt;/code&gt;: nombre de un modelo con entrada de imágenes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;WEB_USERNAME&lt;/code&gt; y &lt;code&gt;WEB_PASSWORD&lt;/code&gt; se usan para acceder a la Web UI. El README menciona las credenciales por defecto &lt;code&gt;admin/admin123&lt;/code&gt;; en producción hay que cambiarlas.&lt;/p&gt;
&lt;h2 id=&#34;primer-uso&#34;&gt;Primer uso
&lt;/h2&gt;&lt;p&gt;El flujo inicial es aproximadamente:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Abrir &lt;code&gt;http://127.0.0.1:8000&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Iniciar sesión en la Web UI.&lt;/li&gt;
&lt;li&gt;Ir a gestión de cuentas de Goofish.&lt;/li&gt;
&lt;li&gt;Usar la extensión de Chrome del proyecto para exportar el estado de login de Goofish en JSON.&lt;/li&gt;
&lt;li&gt;Pegar ese estado en el sistema.&lt;/li&gt;
&lt;li&gt;El archivo se guarda en &lt;code&gt;state/&lt;/code&gt;, por ejemplo &lt;code&gt;state/acc_1.json&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Volver a gestión de tareas, crear una tarea y asociar una cuenta.&lt;/li&gt;
&lt;li&gt;Ejecutar la tarea y revisar resultados.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;El punto clave es el estado de login. Goofish no ofrece una API estándar abierta para scraping de terceros, así que el proyecto usa el estado de login del navegador para simular acceso normal a páginas. Caducidad del login, controles de riesgo, captchas o anomalías de cuenta pueden afectar la ejecución.&lt;/p&gt;
&lt;h2 id=&#34;tareas-de-ia-y-tareas-por-palabra-clave&#34;&gt;Tareas de IA y tareas por palabra clave
&lt;/h2&gt;&lt;p&gt;El proyecto soporta dos formas de crear tareas.&lt;/p&gt;
&lt;p&gt;La primera es &lt;code&gt;AI判断&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Puedes escribir requisitos detallados y el sistema genera criterios de análisis de forma asíncrona. Encaja con necesidades complejas, por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Solo la unidad principal, sin accesorios.&lt;/li&gt;
&lt;li&gt;Alertar solo si el precio está claramente por debajo del mercado.&lt;/li&gt;
&lt;li&gt;Buen estado, sin agua, reparación ni defectos ocultos en la descripción.&lt;/li&gt;
&lt;li&gt;Preferir la misma ciudad y recogida en persona.&lt;/li&gt;
&lt;li&gt;Las imágenes deben mostrar número de serie, caja o accesorios clave.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La segunda es &lt;code&gt;关键词判断&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Se parece más al monitoreo tradicional por reglas: crea tareas directamente según palabras clave, precio, región y otras condiciones, sin pasar por generación con IA. Sirve para reglas simples donde se aceptan falsos positivos.&lt;/p&gt;
&lt;p&gt;En la práctica se pueden combinar: palabras clave para el primer filtro, IA para reducir falsos positivos.&lt;/p&gt;
&lt;h2 id=&#34;qué-permite-la-web-ui&#34;&gt;Qué permite la Web UI
&lt;/h2&gt;&lt;p&gt;La Web UI es una diferencia importante frente a scripts normales.&lt;/p&gt;
&lt;p&gt;La página de tareas permite configurar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tareas creadas con IA.&lt;/li&gt;
&lt;li&gt;Reglas por palabras clave.&lt;/li&gt;
&lt;li&gt;Rangos de precio.&lt;/li&gt;
&lt;li&gt;Ventana de publicación reciente.&lt;/li&gt;
&lt;li&gt;Filtros de región.&lt;/li&gt;
&lt;li&gt;Asociación de cuenta.&lt;/li&gt;
&lt;li&gt;Reglas de programación.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La página de cuentas permite:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Importar estado de login de Goofish.&lt;/li&gt;
&lt;li&gt;Actualizar estado de login.&lt;/li&gt;
&lt;li&gt;Eliminar cuentas.&lt;/li&gt;
&lt;li&gt;Asignar cuentas a tareas.&lt;/li&gt;
&lt;li&gt;Permitir que el sistema elija cuenta automáticamente.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Las páginas de resultados y logs permiten:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ver productos coincidentes.&lt;/li&gt;
&lt;li&gt;Exportar resultados.&lt;/li&gt;
&lt;li&gt;Consultar historial.&lt;/li&gt;
&lt;li&gt;Ver el proceso de ejecución.&lt;/li&gt;
&lt;li&gt;Diagnosticar caducidad de login, controles de riesgo y problemas de llamadas a IA.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La página de ajustes permite:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ver estado del sistema.&lt;/li&gt;
&lt;li&gt;Editar Prompt.&lt;/li&gt;
&lt;li&gt;Ajustar proxies y rotación.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para monitoreo a largo plazo, la Web UI es esencial. Si no, al aumentar tareas, configuración, logs, resultados y notificaciones se vuelven difíciles de mantener.&lt;/p&gt;
&lt;h2 id=&#34;almacenamiento-de-datos&#34;&gt;Almacenamiento de datos
&lt;/h2&gt;&lt;p&gt;El almacenamiento principal actual usa SQLite, con ruta por defecto:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;data/app.sqlite3
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Docker monta por defecto la base SQLite así:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./data:/app/data
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Al arrancar, la aplicación crea base y tablas automáticamente, e intenta importar una vez datos históricos desde &lt;code&gt;config.json&lt;/code&gt;, &lt;code&gt;jsonl/&lt;/code&gt; y &lt;code&gt;price_history/&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Hay que tener en cuenta que &lt;code&gt;state/&lt;/code&gt;, &lt;code&gt;prompts/&lt;/code&gt;, &lt;code&gt;logs/&lt;/code&gt; e &lt;code&gt;images/&lt;/code&gt; siguen siendo directorios del sistema de archivos y no están dentro de SQLite. Las imágenes de productos se guardan temporalmente en rutas como:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;images/task_images_&amp;lt;task_name&amp;gt;/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Al terminar la tarea, por defecto se limpian.&lt;/p&gt;
&lt;p&gt;Esta estructura encaja bien con despliegues personales o de equipos pequeños: SQLite es ligero y fácil de migrar; los directorios conservan login, imágenes y logs de forma fácil de inspeccionar.&lt;/p&gt;
&lt;h2 id=&#34;canales-de-notificación&#34;&gt;Canales de notificación
&lt;/h2&gt;&lt;p&gt;El proyecto soporta varios canales de notificación. Configuraciones habituales:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;NTFY_TOPIC_URL&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GOTIFY_URL&lt;/code&gt; / &lt;code&gt;GOTIFY_TOKEN&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;BARK_URL&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;WX_BOT_URL&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;TELEGRAM_BOT_TOKEN&lt;/code&gt; / &lt;code&gt;TELEGRAM_CHAT_ID&lt;/code&gt; / &lt;code&gt;TELEGRAM_API_BASE_URL&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;WEBHOOK_*&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Las notificaciones son el centro de la experiencia. Si el monitor solo escribe resultados en el backend, el usuario debe seguir entrando a revisar. Con push, los productos que coinciden llegan inmediatamente.&lt;/p&gt;
&lt;p&gt;Una configuración práctica es separar por valor del producto:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Coincidencias normales por palabra clave solo al backend.&lt;/li&gt;
&lt;li&gt;Resultados de alta confianza de IA al móvil.&lt;/li&gt;
&lt;li&gt;Productos de alto valor a WeCom o Telegram.&lt;/li&gt;
&lt;li&gt;Más logs durante depuración, menos ruido cuando ya sea estable.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;ejecución-para-desarrolladores&#34;&gt;Ejecución para desarrolladores
&lt;/h2&gt;&lt;p&gt;Sin Docker, el desarrollo local requiere:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Python 3.10+&lt;/li&gt;
&lt;li&gt;Node.js + npm&lt;/li&gt;
&lt;li&gt;Playwright CLI&lt;/li&gt;
&lt;li&gt;Chromium o Chrome / Edge&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Comandos básicos:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/Usagi-org/ai-goofish-monitor
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; ai-goofish-monitor
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cp .env.example .env
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Arranque con un comando:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;chmod +x start.sh
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./start.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;start.sh&lt;/code&gt; revisa Playwright CLI y navegador, instala dependencias, construye el frontend, copia artefactos y arranca el backend.&lt;/p&gt;
&lt;p&gt;Arranque manual del backend:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python -m src.app
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;O:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;uvicorn src.app:app --host 0.0.0.0 --port &lt;span class=&#34;m&#34;&gt;8000&lt;/span&gt; --reload
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Desarrollo frontend:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; web-ui
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm run dev
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Pruebas y build:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;PYTEST_DISABLE_PLUGIN_AUTOLOAD&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; pytest
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; web-ui &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; npm run build
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;para-quién-sirve&#34;&gt;Para quién sirve
&lt;/h2&gt;&lt;p&gt;ai-goofish-monitor sirve para usuarios que:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Vigilan modelos concretos en Goofish con frecuencia.&lt;/li&gt;
&lt;li&gt;Quieren monitorizar electrónica de segunda mano, cámaras, videojuegos o hardware.&lt;/li&gt;
&lt;li&gt;Quieren automatizar &amp;ldquo;búsqueda por palabras clave + filtrado manual&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;Tienen una API compatible con OpenAI y aceptan pagar el coste de juicio con IA.&lt;/li&gt;
&lt;li&gt;Conocen Docker o despliegue básico por línea de comandos.&lt;/li&gt;
&lt;li&gt;Necesitan recibir resultados en móvil, WeCom o Telegram.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No encaja tanto si:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No sabes desplegar nada y quieres una App lista para usar.&lt;/li&gt;
&lt;li&gt;No quieres manejar estado de login, captchas o controles de cuenta.&lt;/li&gt;
&lt;li&gt;Necesitas APIs oficiales y muy conformes a regulación.&lt;/li&gt;
&lt;li&gt;Quieres capturar datos de plataforma a gran escala y alta frecuencia.&lt;/li&gt;
&lt;li&gt;Esperas que la IA juzgue riesgo de transacción y compre por ti.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;riesgos-y-límites&#34;&gt;Riesgos y límites
&lt;/h2&gt;&lt;p&gt;Estas herramientas requieren límites claros.&lt;/p&gt;
&lt;p&gt;Primero, respeta las reglas de la plataforma.&lt;/p&gt;
&lt;p&gt;Goofish tiene sus propios términos, controles de riesgo y mecanismos de seguridad de cuenta. La automatización puede activar restricciones. No hagas scraping de alta frecuencia, no intentes saltarte controles, no acoses vendedores, no recolectes privacidad en masa y no alteres el orden de la plataforma.&lt;/p&gt;
&lt;p&gt;Segundo, protege el estado de login.&lt;/p&gt;
&lt;p&gt;Los archivos de &lt;code&gt;state/&lt;/code&gt; son cookies de sesión. En la práctica equivalen a credenciales de acceso. No los subas a Git y no los pongas en servidores no confiables. Si el servidor queda expuesto a internet, cambia la contraseña por defecto de la Web UI y colócalo detrás de VPN, autenticación de proxy inverso o red interna.&lt;/p&gt;
&lt;p&gt;Tercero, el juicio de IA no garantiza hechos.&lt;/p&gt;
&lt;p&gt;La IA puede reducir falsos positivos, pero no garantiza autenticidad del producto, fiabilidad del vendedor, precio razonable o seguridad de la transacción. Aún debes revisar detalles, reputación del vendedor, historial de chat, envío y pago.&lt;/p&gt;
&lt;p&gt;Cuarto, vigila costes.&lt;/p&gt;
&lt;p&gt;Si cada candidato pasa por un modelo multimodal, el coste puede subir rápido. Filtra primero por palabra clave, precio y región, y solo envía pocos candidatos a IA.&lt;/p&gt;
&lt;p&gt;Quinto, cuida la privacidad.&lt;/p&gt;
&lt;p&gt;Capturas de producto, contenido relacionado con chats, estado de cuenta y notificaciones pueden contener información sensible. Protege Webhooks, logs y bases de datos.&lt;/p&gt;
&lt;h2 id=&#34;diferencia-con-scripts-comunes&#34;&gt;Diferencia con scripts comunes
&lt;/h2&gt;&lt;p&gt;Un script normal de monitoreo de Goofish suele hacer tres cosas:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Buscar palabras clave.&lt;/li&gt;
&lt;li&gt;Revisar precio.&lt;/li&gt;
&lt;li&gt;Enviar notificación.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;ai-goofish-monitor va más allá:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Gestiona tareas y cuentas con Web UI.&lt;/li&gt;
&lt;li&gt;Expresa criterios de compra complejos con AI Prompt.&lt;/li&gt;
&lt;li&gt;Usa modelos multimodales para mirar imágenes y descripciones.&lt;/li&gt;
&lt;li&gt;Guarda resultados e historial de precios en SQLite.&lt;/li&gt;
&lt;li&gt;Usa páginas de logs para diagnosticar fallos.&lt;/li&gt;
&lt;li&gt;Mejora estabilidad con rotación de proxies y múltiples cuentas.&lt;/li&gt;
&lt;li&gt;Soporta ejecución a largo plazo con Cron.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Precisamente por tener más funciones, también cuesta más desplegarlo y mantenerlo. Para usuarios normales, Docker es lo más sencillo. Para desarrolladores, la estructura Web UI, FastAPI, Playwright y SQLite es razonable para desarrollo secundario.&lt;/p&gt;
&lt;h2 id=&#34;cómo-usarlo&#34;&gt;Cómo usarlo
&lt;/h2&gt;&lt;p&gt;Lo más práctico es empezar con tareas pequeñas.&lt;/p&gt;
&lt;p&gt;Por ejemplo, si buscas una cámara de segunda mano, puedes crear una tarea:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Palabras clave: &lt;code&gt;A7C&lt;/code&gt;, &lt;code&gt;索尼 A7C&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Rango de precio: límite superior según precio de mercado&lt;/li&gt;
&lt;li&gt;Región: misma provincia o ciudad&lt;/li&gt;
&lt;li&gt;Ventana de publicación: último día o últimas horas&lt;/li&gt;
&lt;li&gt;Criterios de IA: excluir lentes sueltas, unidades reparadas y accesorios obvios; fijarse en disparos y estado&lt;/li&gt;
&lt;li&gt;Notificación: solo resultados aprobados por IA&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cuando funcione estable, aumenta tareas gradualmente. No empieces con decenas de palabras clave, varias cuentas y Cron de alta frecuencia. Primero observa estabilidad de login, falsos positivos, coste de IA y ruido de notificaciones.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;ai-goofish-monitor lleva el monitoreo de Goofish desde un &amp;ldquo;script por palabras clave&amp;rdquo; a un sistema de monitoreo con IA gestionable. Usa Playwright para automatizar páginas, IA para juicios complejos, Web UI para tareas y resultados, SQLite para datos y varios canales para notificaciones.&lt;/p&gt;
&lt;p&gt;Encaja mejor con personas o equipos pequeños que vigilan productos concretos, especialmente electrónica, hardware y cámaras de segunda mano, donde el precio cambia mucho, el tiempo importa y las descripciones son ruidosas.&lt;/p&gt;
&lt;p&gt;Pero hay que usarlo con cuidado: proteger el login, cambiar contraseñas por defecto, limitar frecuencia, revisar manualmente resultados de IA y respetar reglas de plataforma y privacidad. Como herramienta auxiliar de filtrado puede ser valiosa; como sistema de compra totalmente automático, es fácil sobreestimarla.&lt;/p&gt;
&lt;p&gt;Referencias:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Usagi-org/ai-goofish-monitor&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Usagi-org/ai-goofish-monitor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Usagi-org/ai-goofish-monitor/blob/master/README_EN.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;README en inglés del proyecto&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Usagi-org/ai-goofish-monitor/blob/master/DISCLAIMER.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Disclaimer del proyecto&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>OpenKB: compilar documentos en una base de conocimiento LLM que se actualiza continuamente</title>
        <link>https://knightli.com/es/2026/05/17/openkb-llm-knowledge-base/</link>
        <pubDate>Sun, 17 May 2026 17:15:08 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/17/openkb-llm-knowledge-base/</guid>
        <description>&lt;p&gt;OpenKB es una herramienta de base de conocimiento LLM de código abierto creada por VectifyAI.&lt;/p&gt;
&lt;p&gt;No es un sistema RAG tradicional que divide documentos en fragmentos, los vectoriza y vuelve a ensamblar contexto en cada consulta. OpenKB primero compila los documentos originales en una wiki estructurada: resúmenes de documentos, páginas de conceptos, referencias cruzadas, consultas posteriores y comprobaciones con lint. En otras palabras, se parece más a una CLI de base de conocimiento que organiza materiales de forma continua.&lt;/p&gt;
&lt;p&gt;Proyecto: &lt;a class=&#34;link&#34; href=&#34;https://github.com/VectifyAI/OpenKB&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/VectifyAI/OpenKB&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;la-idea-principal&#34;&gt;La idea principal
&lt;/h2&gt;&lt;p&gt;OpenKB merece atención por tres razones:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Exporta la base de conocimiento como archivos Markdown normales, no como datos encerrados en una base de datos específica.&lt;/li&gt;
&lt;li&gt;Usa PageIndex para procesar PDFs largos, con recuperación de documentos largos sin depender de una base vectorial.&lt;/li&gt;
&lt;li&gt;Pone el foco en la &amp;ldquo;compilación de conocimiento&amp;rdquo;: el LLM genera resúmenes, páginas de conceptos y enlaces cruzados, en vez de buscar desde cero en cada pregunta.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Esto hace que OpenKB encaje bien en escenarios de acumulación de conocimiento a largo plazo: lectura de papers, documentación de proyectos, materiales internos, normas técnicas, investigación de productos y bases de conocimiento personales.&lt;/p&gt;
&lt;p&gt;No es un reemplazo universal. Si necesitas Q&amp;amp;A online de alta concurrencia, permisos complejos, panel web de administración, auditoría empresarial o multitenancy a gran escala, OpenKB hoy se parece más a una herramienta para desarrolladores y a un prototipo de base de conocimiento que a una plataforma empresarial completa.&lt;/p&gt;
&lt;h2 id=&#34;qué-es-openkb&#34;&gt;Qué es OpenKB
&lt;/h2&gt;&lt;p&gt;OpenKB significa Open Knowledge Base.&lt;/p&gt;
&lt;p&gt;Funciona como una CLI: convierte, organiza, resume y genera un conjunto de archivos wiki a partir de los documentos añadidos. El README oficial lo explica de forma directa: OpenKB usa LLMs para compilar documentos originales en una base de conocimiento estilo wiki, estructurada e interconectada, con PageIndex para recuperación de documentos largos sin vectores.&lt;/p&gt;
&lt;p&gt;Los formatos de entrada soportados incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;PDF&lt;/li&gt;
&lt;li&gt;Word&lt;/li&gt;
&lt;li&gt;Markdown&lt;/li&gt;
&lt;li&gt;PowerPoint&lt;/li&gt;
&lt;li&gt;HTML&lt;/li&gt;
&lt;li&gt;Excel&lt;/li&gt;
&lt;li&gt;Texto plano&lt;/li&gt;
&lt;li&gt;Otros formatos convertibles con markitdown&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La base de conocimiento generada vive en &lt;code&gt;wiki/&lt;/code&gt; e incluye principalmente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;index.md&lt;/code&gt;: visión general de la base de conocimiento&lt;/li&gt;
&lt;li&gt;&lt;code&gt;log.md&lt;/code&gt;: línea de tiempo de operaciones&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AGENTS.md&lt;/code&gt;: estructura e instrucciones de mantenimiento&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sources/&lt;/code&gt;: textos fuente convertidos&lt;/li&gt;
&lt;li&gt;&lt;code&gt;summaries/&lt;/code&gt;: resúmenes de cada documento&lt;/li&gt;
&lt;li&gt;&lt;code&gt;concepts/&lt;/code&gt;: páginas de conceptos entre documentos&lt;/li&gt;
&lt;li&gt;&lt;code&gt;explorations/&lt;/code&gt;: resultados de consultas guardados&lt;/li&gt;
&lt;li&gt;&lt;code&gt;reports/&lt;/code&gt;: informes de lint&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La mayor ventaja de este diseño es la transparencia. Puedes abrir los archivos Markdown directamente, en lugar de recibir respuestas únicamente desde una interfaz de recuperación opaca.&lt;/p&gt;
&lt;h2 id=&#34;diferencia-con-el-rag-tradicional&#34;&gt;Diferencia con el RAG tradicional
&lt;/h2&gt;&lt;p&gt;Un flujo RAG tradicional suele ser:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Dividir los documentos en chunks.&lt;/li&gt;
&lt;li&gt;Generar embeddings.&lt;/li&gt;
&lt;li&gt;Guardarlos en una base vectorial.&lt;/li&gt;
&lt;li&gt;Recuperar fragmentos relevantes al consultar.&lt;/li&gt;
&lt;li&gt;Pasar esos fragmentos al LLM para generar una respuesta.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Este flujo está maduro y funciona bien para sistemas de preguntas y respuestas. Pero tiene un problema: el conocimiento no se acumula realmente. Cada pregunta vuelve a buscar fragmentos, recomponer contexto y generar una respuesta.&lt;/p&gt;
&lt;p&gt;OpenKB sigue más bien la lógica de &amp;ldquo;organizar primero, preguntar después&amp;rdquo;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Los documentos entran en &lt;code&gt;raw/&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Los documentos cortos se convierten a Markdown mediante markitdown.&lt;/li&gt;
&lt;li&gt;Los PDFs largos pasan por PageIndex para generar índices en árbol y resúmenes.&lt;/li&gt;
&lt;li&gt;El LLM genera resúmenes de documentos.&lt;/li&gt;
&lt;li&gt;El LLM lee páginas de conceptos existentes y crea o actualiza conceptos entre documentos.&lt;/li&gt;
&lt;li&gt;Se actualizan el índice, el log y los enlaces cruzados de la base de conocimiento.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;El resultado es que añadir un documento no solo crea otro archivo recuperable. Puede actualizar una docena de páginas wiki. El conocimiento se escribe en páginas de conceptos y se conecta con materiales existentes.&lt;/p&gt;
&lt;p&gt;Esto se parece más a cómo una persona mantiene una base de conocimiento: cuando llega material nuevo, no basta con archivarlo; también hay que actualizar páginas temáticas, resumir diferencias y añadir referencias.&lt;/p&gt;
&lt;h2 id=&#34;qué-problema-resuelve-pageindex&#34;&gt;Qué problema resuelve PageIndex
&lt;/h2&gt;&lt;p&gt;Los documentos largos siempre han sido difíciles para RAG y para las bases de conocimiento con LLM.&lt;/p&gt;
&lt;p&gt;Si divides directamente un PDF largo en muchos chunks, aparecen varios problemas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Se pierden las relaciones entre capítulos.&lt;/li&gt;
&lt;li&gt;Tablas, imágenes y notas al pie son difíciles de manejar.&lt;/li&gt;
&lt;li&gt;Los fragmentos recuperados son demasiado pequeños y la respuesta pierde estructura global.&lt;/li&gt;
&lt;li&gt;Aunque la ventana de contexto sea grande, no conviene meter todo el documento en el prompt.&lt;/li&gt;
&lt;li&gt;Las cadenas largas de resumen pueden comprimir y perder detalles importantes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;OpenKB usa PageIndex para procesar PDFs largos. Según la descripción del proyecto, PageIndex crea índices en árbol y resúmenes para documentos largos, de modo que el LLM razona sobre el árbol del documento en lugar de leer todo el documento directamente.&lt;/p&gt;
&lt;p&gt;El punto no es encontrar &amp;ldquo;los párrafos con mayor similitud vectorial&amp;rdquo;, sino permitir que el modelo use la jerarquía del documento para localizar contenido relevante. Para informes de investigación, papers, manuales, prospectos y documentos de cumplimiento, esta idea tiene mucho sentido.&lt;/p&gt;
&lt;p&gt;OpenKB puede usar por defecto la versión open-source de PageIndex de forma local. Si necesitas OCR, procesamiento de PDFs complejos o generación de estructura más rápida, puedes configurar &lt;code&gt;PAGEINDEX_API_KEY&lt;/code&gt; para usar PageIndex Cloud.&lt;/p&gt;
&lt;h2 id=&#34;instalación-e-inicio-rápido&#34;&gt;Instalación e inicio rápido
&lt;/h2&gt;&lt;p&gt;OpenKB se puede instalar directamente con pip:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install openkb
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;También puedes instalar la versión más reciente desde GitHub:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install git+https://github.com/VectifyAI/OpenKB.git
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Instalación editable desde el código fuente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/VectifyAI/OpenKB.git
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; OpenKB
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install -e .
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Crea un directorio para la base de conocimiento:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mkdir my-kb &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; my-kb
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openkb init
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Añade documentos:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openkb add paper.pdf
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openkb add ~/papers/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Haz una pregunta:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openkb query &lt;span class=&#34;s2&#34;&gt;&amp;#34;What are the main findings?&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Inicia un chat interactivo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openkb chat
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si quieres que OpenKB procese nuevos archivos automáticamente, usa el modo watch:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openkb watch
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Después, coloca archivos en &lt;code&gt;raw/&lt;/code&gt; y OpenKB actualizará la wiki automáticamente.&lt;/p&gt;
&lt;h2 id=&#34;configuración-del-llm&#34;&gt;Configuración del LLM
&lt;/h2&gt;&lt;p&gt;OpenKB usa LiteLLM para soportar varios proveedores de modelos, incluidos OpenAI, Claude y Gemini.&lt;/p&gt;
&lt;p&gt;Puedes establecer el modelo durante la inicialización o configurarlo en &lt;code&gt;.openkb/config.yaml&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;gpt-5.4&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;language&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;en&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;pageindex_threshold&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;m&#34;&gt;20&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Los nombres de modelos siguen el formato &lt;code&gt;provider/model&lt;/code&gt; de LiteLLM. Los modelos de OpenAI pueden omitir el prefijo del proveedor:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;gpt-5.4&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Modelos como Anthropic y Gemini suelen escribirse así:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;anthropic/claude-sonnet-4-6&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;gemini/gemini-3.1-pro-preview&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;La API key va en &lt;code&gt;.env&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;LLM_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_llm_api_key
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si activas PageIndex Cloud, añade:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;PAGEINDEX_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_pageindex_api_key
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;comandos-habituales&#34;&gt;Comandos habituales
&lt;/h2&gt;&lt;p&gt;Los comandos de OpenKB son cómodos para desarrolladores:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;openkb init&lt;/code&gt;: inicializa una nueva base de conocimiento.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openkb add &amp;lt;file_or_dir&amp;gt;&lt;/code&gt;: añade un archivo o directorio.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openkb remove &amp;lt;doc&amp;gt;&lt;/code&gt;: elimina un documento y limpia páginas wiki, imágenes, registro y estado de PageIndex relacionados.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openkb query &amp;quot;question&amp;quot;&lt;/code&gt;: hace una pregunta puntual sobre la base de conocimiento.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openkb chat&lt;/code&gt;: entra en una conversación de varios turnos.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openkb watch&lt;/code&gt;: vigila &lt;code&gt;raw/&lt;/code&gt; y actualiza automáticamente.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openkb lint&lt;/code&gt;: comprueba la estructura y la salud del contenido.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openkb list&lt;/code&gt;: lista documentos y conceptos indexados.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openkb status&lt;/code&gt;: muestra estadísticas de la base de conocimiento.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;openkb chat&lt;/code&gt; es más adecuado que &lt;code&gt;openkb query&lt;/code&gt; para exploración continua. Soporta reanudar sesiones, listarlas y eliminarlas, y también permite slash commands como &lt;code&gt;/status&lt;/code&gt;, &lt;code&gt;/list&lt;/code&gt;, &lt;code&gt;/add &amp;lt;path&amp;gt;&lt;/code&gt;, &lt;code&gt;/save&lt;/code&gt; y &lt;code&gt;/lint&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-importa-una-wiki-markdown&#34;&gt;Por qué importa una wiki Markdown
&lt;/h2&gt;&lt;p&gt;El problema de muchas herramientas de conocimiento es el coste de migración.&lt;/p&gt;
&lt;p&gt;Cuando el material entra en una base de datos, índice o formato propietario, es difícil inspeccionarlo, editarlo, respaldarlo o migrarlo directamente. OpenKB escribe el resultado como Markdown normal, lo que lo hace compatible de forma natural con herramientas existentes.&lt;/p&gt;
&lt;p&gt;El uso más directo es abrir &lt;code&gt;wiki/&lt;/code&gt; con Obsidian:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Las páginas de resumen se pueden leer directamente.&lt;/li&gt;
&lt;li&gt;Las páginas de conceptos pueden conectarse con &lt;code&gt;[[wikilinks]]&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;La vista de grafo muestra relaciones entre conocimientos.&lt;/li&gt;
&lt;li&gt;Los resultados de consultas pueden guardarse en &lt;code&gt;explorations/&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AGENTS.md&lt;/code&gt; puede definir cómo se mantiene la base de conocimiento.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Así OpenKB no es solo una herramienta de Q&amp;amp;A; también puede convertirse en una canalización de organización de conocimiento para personas o equipos.&lt;/p&gt;
&lt;h2 id=&#34;escenarios-adecuados&#34;&gt;Escenarios adecuados
&lt;/h2&gt;&lt;p&gt;OpenKB encaja especialmente bien en:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Lectura de papers e informes técnicos.&lt;/li&gt;
&lt;li&gt;Organización de documentación de proyectos.&lt;/li&gt;
&lt;li&gt;Archivos de investigación de producto.&lt;/li&gt;
&lt;li&gt;Bases de conocimiento documentales alrededor de proyectos open-source.&lt;/li&gt;
&lt;li&gt;Organización de normas internas, actas de reuniones y documentos explicativos.&lt;/li&gt;
&lt;li&gt;Mantenimiento automático de una base personal en Obsidian.&lt;/li&gt;
&lt;li&gt;Estructuración de PDFs largos, PPTs, archivos Word y materiales web.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si trabajas a menudo con montones de documentos y no solo quieres &amp;ldquo;hacer una pregunta y obtener una respuesta&amp;rdquo;, sino convertir esos materiales en una base navegable, reutilizable y trazable, OpenKB va en la dirección correcta.&lt;/p&gt;
&lt;h2 id=&#34;aspectos-a-tener-en-cuenta&#34;&gt;Aspectos a tener en cuenta
&lt;/h2&gt;&lt;p&gt;Primero, OpenKB depende de la calidad del LLM.&lt;/p&gt;
&lt;p&gt;Resúmenes, páginas de conceptos y enlaces cruzados son generados por el modelo. Cuanto más fuerte sea el modelo, más estable será la compilación de conocimiento; si el modelo es débil, la extracción de conceptos, detección de contradicciones y síntesis entre documentos se resentirán.&lt;/p&gt;
&lt;p&gt;Segundo, conviene estimar costes desde el principio.&lt;/p&gt;
&lt;p&gt;Si importas muchos documentos largos a la vez, las llamadas al LLM pueden ser caras. Es mejor probar con un conjunto pequeño, verificar estructura y calidad, y luego ampliar.&lt;/p&gt;
&lt;p&gt;Tercero, la wiki generada aún necesita revisión humana.&lt;/p&gt;
&lt;p&gt;OpenKB puede organizar materiales, pero no garantiza automáticamente que todos los hechos sean correctos. Las bases de conocimiento importantes siguen necesitando revisión humana de resúmenes, conceptos y referencias.&lt;/p&gt;
&lt;p&gt;Cuarto, cuidado con materiales sensibles.&lt;/p&gt;
&lt;p&gt;Si usas LLMs en la nube o PageIndex Cloud, presta atención a privacidad, secretos comerciales y requisitos de cumplimiento. Para material interno, conviene confirmar primero el proveedor del modelo, la política de retención de datos y los límites de acceso.&lt;/p&gt;
&lt;p&gt;Quinto, por ahora es más una herramienta CLI.&lt;/p&gt;
&lt;p&gt;El roadmap menciona una futura Web UI, almacenamiento con base de datos, soporte para grandes colecciones e indexación jerárquica de conceptos. En la etapa actual, si el equipo no está cómodo con la línea de comandos, todavía habrá fricción de adopción.&lt;/p&gt;
&lt;h2 id=&#34;relación-con-obsidian-notebooklm-y-rag-empresarial&#34;&gt;Relación con Obsidian, NotebookLM y RAG empresarial
&lt;/h2&gt;&lt;p&gt;La relación entre OpenKB y Obsidian se entiende mejor como una &amp;ldquo;capa de organización automática&amp;rdquo; más una &amp;ldquo;capa de lectura y edición&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Obsidian es bueno para que las personas escriban, editen, naveguen y creen enlaces. OpenKB es bueno para convertir documentos originales en una wiki que pueda entrar en Obsidian.&lt;/p&gt;
&lt;p&gt;OpenKB y NotebookLM se diferencian más por control local y formato abierto.&lt;/p&gt;
&lt;p&gt;NotebookLM ofrece una experiencia más directa para cargar materiales, preguntar y generar resúmenes rápidamente. OpenKB encaja mejor cuando un desarrollador quiere dejar el resultado organizado en un directorio local y seguir manteniéndolo como Markdown.&lt;/p&gt;
&lt;p&gt;OpenKB no sustituye al RAG empresarial; lo complementa.&lt;/p&gt;
&lt;p&gt;El RAG empresarial prioriza permisos, auditoría, despliegue como servicio, aislamiento de acceso, monitoreo y throughput estable. OpenKB sirve mejor para construir una capa de conocimiento legible, editable y acumulable. Si más adelante construyes Q&amp;amp;A online, la wiki generada por OpenKB también puede ser un corpus de mayor calidad.&lt;/p&gt;
&lt;h2 id=&#34;un-flujo-recomendado&#34;&gt;Un flujo recomendado
&lt;/h2&gt;&lt;p&gt;Si quieres probar OpenKB, puedes empezar así:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Crea un directorio de prueba para la base de conocimiento.&lt;/li&gt;
&lt;li&gt;Añade de 3 a 5 documentos sobre el mismo tema.&lt;/li&gt;
&lt;li&gt;Ejecuta &lt;code&gt;openkb add&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Abre &lt;code&gt;wiki/&lt;/code&gt; y revisa resúmenes y páginas de conceptos.&lt;/li&gt;
&lt;li&gt;Haz algunas preguntas concretas con &lt;code&gt;openkb query&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Ejecuta &lt;code&gt;openkb lint&lt;/code&gt; para revisar la salud de la base.&lt;/li&gt;
&lt;li&gt;Abre &lt;code&gt;wiki/&lt;/code&gt; en Obsidian y mira si el grafo de enlaces tiene sentido.&lt;/li&gt;
&lt;li&gt;Cuando la calidad sea aceptable, importa una colección más grande.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;No metas cientos de archivos desde el principio. Primero comprueba si entiende bien tu tipo de material, especialmente tablas, imágenes, PDFs largos y fusión de conceptos entre documentos.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;El valor de OpenKB está en adelantar un paso el flujo de una base de conocimiento LLM: en vez de armar contexto temporalmente al consultar, primero organiza los materiales como wiki y luego permite preguntar, chatear, revisar y seguir manteniendo esa wiki.&lt;/p&gt;
&lt;p&gt;Esta ruta no sirve para todos los sistemas de Q&amp;amp;A, pero sí para trabajo de conocimiento que necesita acumulación a largo plazo. Archivos Markdown, compatibilidad con Obsidian, manejo de documentos largos con PageIndex, soporte multi-modelo y flujo CLI forman una herramienta útil para desarrolladores y usuarios orientados a investigación.&lt;/p&gt;
&lt;p&gt;Si tienes muchos PDFs, informes, páginas web, papers y documentos de proyecto, vale la pena probar OpenKB. Quizá no reemplace de inmediato una base de conocimiento empresarial madura, pero puede ser una entrada práctica para organizar materiales: primero convierte documentos en conocimiento legible, enlazado y trazable, y luego deja que el LLM trabaje sobre esa base.&lt;/p&gt;
&lt;p&gt;Referencias:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/VectifyAI/OpenKB&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;VectifyAI/OpenKB&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://openkb.ai/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Página del proyecto OpenKB&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://pageindex.ai/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;PageIndex&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/microsoft/markitdown&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;markitdown&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.litellm.ai/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;LiteLLM&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Filtración de Google Gemini Spark: podría llegar un Gemini Agent online las 24 horas</title>
        <link>https://knightli.com/es/2026/05/17/google-gemini-spark-ai-agent-leak/</link>
        <pubDate>Sun, 17 May 2026 11:58:08 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/17/google-gemini-spark-ai-agent-leak/</guid>
        <description>&lt;p&gt;Google todavía no ha lanzado oficialmente &lt;code&gt;Gemini Spark&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;La información actual proviene sobre todo de interfaces internas de prueba en Gemini Web, capturas de la comunidad, reportes de TestingCatalog y resúmenes de 36Kr / Xinzhiyuan sobre filtraciones relacionadas. La lectura más consistente es que &lt;code&gt;Gemini Spark BETA&lt;/code&gt; podría ser un AI Agent always-on que Google está preparando. Su posición ya no sería solo la de un asistente de chat, sino la de un &amp;ldquo;agente de IA cotidiano&amp;rdquo; capaz de manejar correo, tareas online y flujos de varios pasos en segundo plano.&lt;/p&gt;
&lt;p&gt;Así que conviene fijar primero el límite: esto es un análisis de filtraciones, no un anuncio oficial de Google. Funciones, nombre y fecha de lanzamiento aún deben ser confirmados por Google.&lt;/p&gt;
&lt;h2 id=&#34;conclusión-rápida&#34;&gt;Conclusión rápida
&lt;/h2&gt;&lt;p&gt;Según la información expuesta hasta ahora, Gemini Spark tiene tres puntos clave:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Podría ser un Agent online las 24 horas dentro del sistema Gemini, no un modelo de chat normal.&lt;/li&gt;
&lt;li&gt;Podría usar un contexto personal más amplio, incluyendo apps de Google, historial de chats, tareas, sitios con sesión iniciada y ubicación.&lt;/li&gt;
&lt;li&gt;Sus riesgos son tan grandes como su atractivo, porque puede involucrar compartir información, datos de navegador remoto, compras y llamadas a servicios de terceros.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si Google realmente lanza Spark, el papel de Gemini cambiará: de &amp;ldquo;IA que responde preguntas&amp;rdquo; a &amp;ldquo;IA que gestiona tareas por ti de forma continua&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;qué-es-gemini-spark&#34;&gt;Qué es Gemini Spark
&lt;/h2&gt;&lt;p&gt;TestingCatalog reportó el 14 de mayo de 2026 que Google está probando &lt;code&gt;Gemini Spark BETA&lt;/code&gt; dentro de Gemini Web. El texto de bienvenida expuesto lo describe como un everyday AI agent que puede ayudar 24/7 con inbox, online tasks y más trabajo de varios pasos.&lt;/p&gt;
&lt;p&gt;El artículo de 36Kr / Xinzhiyuan también menciona que, tras descubrirse Spark, lo que se ve desde fuera es una dirección de &amp;ldquo;Agent de tiempo completo&amp;rdquo;: puede permanecer disponible todo el día, procesar la bandeja de entrada, ejecutar tareas online e incluso involucrar compras y compartición de información.&lt;/p&gt;
&lt;p&gt;Esto significa que Spark no es simplemente el nombre de un nuevo modelo. Se parece más a una actualización de la capa de producto de Gemini: sacar a Gemini de la ventana de conversación y llevarlo al correo, la web, el calendario, las tareas y los flujos entre apps del usuario.&lt;/p&gt;
&lt;h2 id=&#34;cómo-podría-funcionar&#34;&gt;Cómo podría funcionar
&lt;/h2&gt;&lt;p&gt;Según el texto de onboarding oculto divulgado por TestingCatalog, Gemini Spark obtendría contexto de varias fuentes, incluyendo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Connected Apps.&lt;/li&gt;
&lt;li&gt;skills.&lt;/li&gt;
&lt;li&gt;chats.&lt;/li&gt;
&lt;li&gt;tasks.&lt;/li&gt;
&lt;li&gt;Sitios web donde el usuario inició sesión.&lt;/li&gt;
&lt;li&gt;Personal intelligence.&lt;/li&gt;
&lt;li&gt;location.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esta información ayudaría a Spark a entender qué quiere completar el usuario y a invocar el contexto necesario durante la ejecución de tareas. El texto también menciona que, para completar algunas acciones, Gemini podría compartir información necesaria con terceros, como nombre, datos de contacto, archivos, preferencias e información que el usuario podría considerar sensible.&lt;/p&gt;
&lt;p&gt;Si estas descripciones terminan siendo correctas, Spark funcionaría más como un sistema de agente con contexto que como una herramienta de preguntas y respuestas de una sola vez. No miraría solo el prompt actual, sino que podría combinar preferencias a largo plazo, apps conectadas, estado del navegador e historial de tareas.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-importa&#34;&gt;Por qué importa
&lt;/h2&gt;&lt;p&gt;La clave de Gemini Spark no es añadir otra entrada de chat. La clave es que Google tiene una entrada natural al ecosistema.&lt;/p&gt;
&lt;p&gt;OpenAI y Anthropic pueden construir Agents muy fuertes, pero no poseen de forma natural la cadena completa de Gmail, Calendar, Drive, Chrome, Android y Workspace. Si Google conecta Spark con estos productos, los usuarios no necesitarán montar demasiados flujos adicionales para que un Agent entre en su trabajo diario.&lt;/p&gt;
&lt;p&gt;Esto puede traer tres cambios.&lt;/p&gt;
&lt;p&gt;Primero, Gemini pasaría de preguntas y respuestas pasivas a ejecución activa. Los usuarios ya no solo preguntarían &amp;ldquo;resúmeme este correo&amp;rdquo;, sino que podrían pedirle que organice el inbox, siga tareas y ejecute acciones posteriores de forma continua.&lt;/p&gt;
&lt;p&gt;Segundo, los Agents dependerán más del contexto personal. Cuanto más entienda tu correo, calendario, archivos, estado del navegador y preferencias, más útiles podrán ser sus resultados.&lt;/p&gt;
&lt;p&gt;Tercero, los límites de permisos serán más sensibles. Poder hacer más también significa que el usuario debe saber con más claridad cuándo puede actuar, hasta dónde puede llegar y si necesita confirmación.&lt;/p&gt;
&lt;h2 id=&#34;dónde-están-los-riesgos&#34;&gt;Dónde están los riesgos
&lt;/h2&gt;&lt;p&gt;Hay varios puntos en el texto divulgado por TestingCatalog que merecen atención.&lt;/p&gt;
&lt;p&gt;Primero, Spark es experimental. Incluso si se lanza, no debería tratarse como un sistema completamente maduro que no requiere supervisión.&lt;/p&gt;
&lt;p&gt;Segundo, aunque el sistema está diseñado para pedir permiso antes de operaciones sensibles, el texto también advierte que podría compartir información o completar compras sin preguntar.&lt;/p&gt;
&lt;p&gt;Tercero, para mantener la continuidad de la sesión, Gemini guardará remote browser data, como detalles de inicio de sesión y remote code execution data. Los usuarios pueden borrar estos datos en Settings y también desactivar Connected Apps y capacidades relacionadas con Personal intelligence.&lt;/p&gt;
&lt;p&gt;En conjunto, estos puntos muestran que la dirección de producto de Spark es agresiva: quiere ser un Agent que realmente ejecute tareas, no solo que genere sugerencias. Pero cuanto más se acerca a la ejecución real, más necesita permisos estrictos, auditoría, confirmación y mecanismos de reversión.&lt;/p&gt;
&lt;h2 id=&#34;relación-con-remy-y-ai-ultra&#34;&gt;Relación con Remy y AI Ultra
&lt;/h2&gt;&lt;p&gt;TestingCatalog menciona que Spark podría ser una versión renombrada de la agentic Gemini upgrade antes conocida internamente como &lt;code&gt;Remy&lt;/code&gt;, y que también podría estar relacionada con la dirección de Gemini Agent para suscriptores de Google AI Ultra.&lt;/p&gt;
&lt;p&gt;Si esta pista es correcta, Spark no sería un proyecto nuevo surgido de la nada. Podría ser una forma de reempaquetar capacidades de Agent más avanzadas y cerradas, para prepararlas para una audiencia más amplia.&lt;/p&gt;
&lt;p&gt;36Kr / Xinzhiyuan también lo describe como una evolución de “Remy” a “Spark”: Gemini Agent deja de ser solo una función y se mueve hacia un gestor digital de vida 24/7.&lt;/p&gt;
&lt;p&gt;Pero esto sigue siendo una interpretación basada en filtraciones. Si Google usará &lt;code&gt;Spark&lt;/code&gt; como nombre oficial, si será solo para AI Ultra o si habrá una suscripción más ligera todavía necesita confirmación oficial.&lt;/p&gt;
&lt;h2 id=&#34;mcp-skills-y-ecosistema-de-herramientas&#34;&gt;MCP, skills y ecosistema de herramientas
&lt;/h2&gt;&lt;p&gt;En la misma tanda de capturas comunitarias también aparecieron entradas del selector de modelos como &lt;code&gt;MCP Tool Testing&lt;/code&gt;. El artículo de 36Kr cree que esto podría sugerir soporte nativo de Gemini para integración de herramientas de terceros vía MCP, además de una reconstrucción del modo Thinking.&lt;/p&gt;
&lt;p&gt;Esta pista se vuelve más interesante al mirarla junto a Spark.&lt;/p&gt;
&lt;p&gt;Si Spark fuera solo un &amp;ldquo;asistente que chatea&amp;rdquo;, skills y MCP tendrían menos importancia. Pero si Spark es un Agent de larga duración, necesita llamar herramientas de forma fiable, acceder a páginas web, ejecutar tareas, leer y escribir contexto, y entregar resultados al usuario.&lt;/p&gt;
&lt;p&gt;Es decir, Spark quizá no sea una función aislada, sino parte del ecosistema de herramientas Agent de Google: el modelo entiende y planifica, mientras skills / MCP / connected apps ejecutan y amplían.&lt;/p&gt;
&lt;h2 id=&#34;qué-significa-para-usuarios-comunes&#34;&gt;Qué significa para usuarios comunes
&lt;/h2&gt;&lt;p&gt;Si Gemini Spark se lanza de verdad, los cambios más directos para usuarios comunes podrían ser:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El correo no solo se resume, sino que se clasifica, se sigue y se convierte en tareas.&lt;/li&gt;
&lt;li&gt;Las tareas web no solo reciben sugerencias, sino que podrían ejecutarse de forma continua en un navegador remoto.&lt;/li&gt;
&lt;li&gt;Calendario, ubicación, preferencias y conversaciones previas se convierten en contexto a largo plazo del Agent.&lt;/li&gt;
&lt;li&gt;Compras, reservas, formularios y acciones similares podrían entrar en el alcance de ejecución de la IA.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Suena cómodo, pero los usuarios tendrán que crear nuevos hábitos: no solo mirar qué dice la IA, sino también qué se prepara para hacer, qué ya hizo, si se puede deshacer y si hay registro.&lt;/p&gt;
&lt;p&gt;La experiencia futura de AI Agent no dependerá solo de qué tan inteligente sea el modelo, sino también de si los avisos de permisos son claros, si los logs de tareas se pueden revisar y si los errores se pueden recuperar.&lt;/p&gt;
&lt;h2 id=&#34;qué-significa-para-desarrolladores-y-equipos&#34;&gt;Qué significa para desarrolladores y equipos
&lt;/h2&gt;&lt;p&gt;Para desarrolladores, Spark importa porque Google podría estar moviendo los Agents desde &amp;ldquo;productos demo&amp;rdquo; hacia plataformas reales de workflow.&lt;/p&gt;
&lt;p&gt;Si Spark puede conectar de forma estable apps de Google, herramientas de terceros y estado del navegador, los desarrolladores se preguntarán:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si habrá APIs o mecanismos de extensión abiertos.&lt;/li&gt;
&lt;li&gt;Si MCP o skills podrán ser conectados por terceros.&lt;/li&gt;
&lt;li&gt;Si administradores empresariales podrán controlar permisos, retención de datos y auditoría.&lt;/li&gt;
&lt;li&gt;Si los fallos de ejecución del Agent tendrán logs rastreables.&lt;/li&gt;
&lt;li&gt;Si habrá sandboxing, flujos de aprobación y confirmación para operaciones sensibles.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para equipos, Spark probablemente entraría primero por escenarios frecuentes como Gmail, Calendar, Docs, Drive y Chrome. Quizá al principio no sea adecuado para automatizar por completo tareas de alto riesgo, pero encaja bien como asistente para inbox triage, seguimiento de reuniones, organización de documentos, investigación de mercado y tareas ligeras de operaciones.&lt;/p&gt;
&lt;h2 id=&#34;cómo-leerlo-ahora&#34;&gt;Cómo leerlo ahora
&lt;/h2&gt;&lt;p&gt;Esta noticia se entiende mejor como &amp;ldquo;dirección de alta confianza, detalles de baja certeza&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;La dirección de alta confianza es que Google está empujando Gemini Agent hacia algo más proactivo, más duradero y más profundamente integrado con su ecosistema. El texto de prueba de Gemini Web reportado por TestingCatalog, las capturas comunitarias y la recopilación de filtraciones de 36Kr apuntan en la misma dirección.&lt;/p&gt;
&lt;p&gt;Los detalles de baja certeza son el nombre oficial, la fecha de lanzamiento, las reglas de permisos, los niveles de suscripción, las regiones disponibles, si habrá API abierta y si realmente se llamará Gemini Spark.&lt;/p&gt;
&lt;p&gt;La lectura más prudente por ahora:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No tratar Spark como un producto oficial ya lanzado.&lt;/li&gt;
&lt;li&gt;Verlo como una señal fuerte de la próxima ruta de Google en AI Agents.&lt;/li&gt;
&lt;li&gt;Esperar cómo Google explicará permisos, privacidad, compartición de datos con terceros y almacenamiento de datos de navegador remoto.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Si &lt;code&gt;Gemini Spark&lt;/code&gt; finalmente se lanza, podría ser un paso clave para que Gemini pase de asistente de chat a Agent always-on. No es solo cambiar un modelo, sino colocar Gemini dentro del ecosistema de Google: correo, web, tareas, ubicación, personal intelligence y servicios de terceros.&lt;/p&gt;
&lt;p&gt;Su potencial es grande: más proactivo, más cercano a flujos reales y más fácil de distribuir a muchos usuarios gracias al ecosistema de Google. Sus riesgos son igual de grandes: si la IA puede compartir información, guardar estado del navegador, ejecutar compras y llamar servicios de terceros, los límites de permisos deben ser muy claros.&lt;/p&gt;
&lt;p&gt;Por eso lo más importante de Gemini Spark no es &amp;ldquo;qué tan inteligente es&amp;rdquo;, sino cómo piensa Google hacer que un AI Agent online las 24 horas sea controlable, auditable y confiable.&lt;/p&gt;
&lt;p&gt;Referencias:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.testingcatalog.com/google-prepares-gemini-spark-ai-agent-ahead-of-i-o-launch/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;TestingCatalog: Google prepares Gemini Spark AI Agent ahead of I/O launch&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://36kr.com/p/3810432812162816&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;36Kr: Gemini 3.5 Pro filtrado, coding supuestamente alcanza a GPT-5.5&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Gemini Intelligence on Android: Google está convirtiendo el teléfono en un sistema de IA proactivo</title>
        <link>https://knightli.com/es/2026/05/17/google-gemini-intelligence-android/</link>
        <pubDate>Sun, 17 May 2026 09:13:32 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/17/google-gemini-intelligence-android/</guid>
        <description>&lt;p&gt;El 12 de mayo de 2026, Google publicó “A smarter, more proactive Android with Gemini Intelligence”, presentando Gemini Intelligence on Android. No es una app de chat independiente. Lleva capacidades de Gemini a Android, Chrome, Gboard, Autofill, widgets y experiencias multidispositivo, moviendo el teléfono desde “esperar a que el usuario toque” hacia “ayudar de forma proactiva a completar tareas”.&lt;/p&gt;
&lt;p&gt;En pocas palabras, Google quiere que Android pase de operating system a intelligence system. El teléfono ya no solo abre apps, muestra notificaciones y ejecuta ajustes; puede entender la pantalla, las apps, la voz y el contexto personal, y completar acciones más complejas con confirmación del usuario.&lt;/p&gt;
&lt;h2 id=&#34;resumen-rápido&#34;&gt;Resumen rápido
&lt;/h2&gt;&lt;p&gt;Gemini Intelligence on Android se centra en cinco áreas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Automatización de varios pasos: Gemini puede completar flujos entre apps, como transporte, compras o investigación.&lt;/li&gt;
&lt;li&gt;Navegación inteligente en Chrome: resumir páginas, comparar información y manejar algunas tareas web repetitivas en Android.&lt;/li&gt;
&lt;li&gt;Autofill mejorado: usar Gemini y contexto personal para completar formularios más complejos.&lt;/li&gt;
&lt;li&gt;Rambler: convertir habla natural en texto más claro y pulido.&lt;/li&gt;
&lt;li&gt;Widgets por lenguaje natural: describir lo que quieres y Android genera widgets personalizados.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas funciones empezarán a desplegarse en verano de 2026, primero en algunos Samsung Galaxy y Google Pixel, y después en más dispositivos Android, incluidos relojes, coches, gafas y portátiles.&lt;/p&gt;
&lt;h2 id=&#34;automatización-de-varios-pasos-de-sugerir-a-ejecutar&#34;&gt;Automatización de varios pasos: de sugerir a ejecutar
&lt;/h2&gt;&lt;p&gt;La dirección más importante es permitir que Gemini complete tareas de varios pasos entre apps.&lt;/p&gt;
&lt;p&gt;Google da ejemplos como reservar una clase de spinning, encontrar un temario en Gmail y añadir los libros necesarios al carrito, o ver un cartel de viaje y pedir a Gemini que busque un viaje similar en Expedia.&lt;/p&gt;
&lt;p&gt;Lo difícil no es solo entender una frase. El sistema necesita entender:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Qué aparece en la pantalla o imagen actual del usuario.&lt;/li&gt;
&lt;li&gt;Información de apps que el usuario haya autorizado.&lt;/li&gt;
&lt;li&gt;Qué app debe abrirse después.&lt;/li&gt;
&lt;li&gt;Qué pasos pueden automatizarse.&lt;/li&gt;
&lt;li&gt;Qué pasos deben detenerse para pedir confirmación.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Google subraya que Gemini actúa bajo instrucciones del usuario y se detiene cuando termina la tarea, manteniendo la confirmación final bajo control del usuario. No es un agente totalmente autónomo, sino un agent móvil con confirmación humana.&lt;/p&gt;
&lt;h2 id=&#34;la-pantalla-y-la-imagen-importan-más&#34;&gt;La pantalla y la imagen importan más
&lt;/h2&gt;&lt;p&gt;Un cambio importante es el uso de screen context e image context.&lt;/p&gt;
&lt;p&gt;Los asistentes móviles anteriores dependían más de comandos de voz e integraciones fijas dentro de apps. Gemini Intelligence pone más énfasis en “ver” la pantalla actual. Por ejemplo, si el usuario tiene una lista de compras en notas, puede mantener presionado el botón de encendido para invocar Gemini y pedirle que cree un carrito de entrega a partir de la lista.&lt;/p&gt;
&lt;p&gt;Esto significa que la IA de Android no es solo un chatbot. Está intentando entender el entorno operativo que el usuario tiene delante. La competencia futura de IA móvil puede depender no solo de quién responda mejor, sino también de:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si entiende la pantalla actual.&lt;/li&gt;
&lt;li&gt;Si puede actuar entre apps.&lt;/li&gt;
&lt;li&gt;Si puede seguir el progreso de tareas en segundo plano.&lt;/li&gt;
&lt;li&gt;Si pide confirmación de forma fiable en momentos clave.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esa es una diferencia importante entre la IA móvil y la IA de chat web.&lt;/p&gt;
&lt;h2 id=&#34;chrome-de-búsqueda-a-agente-de-tareas-web&#34;&gt;Chrome: de búsqueda a agente de tareas web
&lt;/h2&gt;&lt;p&gt;Google dice que los dispositivos Android recibirán un Gemini in Chrome más inteligente a partir de finales de junio de 2026.&lt;/p&gt;
&lt;p&gt;Podrá ayudar a investigar, resumir y comparar contenido web, y Chrome auto browse podrá manejar algunas tareas repetitivas como reservas, citas o aparcamiento.&lt;/p&gt;
&lt;p&gt;Esto significa que Gemini in Chrome no es solo una función de resumen de páginas. Avanza hacia un agente de navegador. El navegador ya es donde los usuarios completan muchas tareas web. Si Gemini puede entender páginas, rellenar información, comparar opciones y ejecutar algunos pasos, Chrome pasa de herramienta de lectura a superficie de ejecución.&lt;/p&gt;
&lt;p&gt;Los retos son prácticos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Los sitios web son complejos y la automatización puede fallar.&lt;/li&gt;
&lt;li&gt;Formularios, pagos, inicios de sesión y CAPTCHAs requieren cautela.&lt;/li&gt;
&lt;li&gt;El usuario necesita saber qué hizo Gemini.&lt;/li&gt;
&lt;li&gt;El envío final, pago o reserva debería conservar confirmación humana.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La dificultad no está solo en el modelo, sino en automatización del navegador, límites de seguridad y confianza del usuario.&lt;/p&gt;
&lt;h2 id=&#34;autofill-de-contraseñas-a-formularios-complejos&#34;&gt;Autofill: de contraseñas a formularios complejos
&lt;/h2&gt;&lt;p&gt;Autofill with Google se centraba sobre todo en contraseñas, direcciones y pagos. Google ahora quiere convertirlo en un asistente de formularios más inteligente.&lt;/p&gt;
&lt;p&gt;Con Personal Intelligence de Gemini, Android puede usar información relevante de apps conectadas para completar campos más complejos, incluidos formularios en Chrome.&lt;/p&gt;
&lt;p&gt;Es muy práctico. Rellenar formularios complejos en móvil es incómodo: pantalla pequeña, muchos campos e información repartida entre correo, calendario, chats y documentos. Si Gemini puede organizar y rellenar esa información con permiso del usuario, ahorra mucho tiempo.&lt;/p&gt;
&lt;p&gt;Google también recalca que conectar Gemini y Autofill with Google es estrictamente opt-in. El usuario decide si conectarlos y puede activar o desactivar la conexión en ajustes.&lt;/p&gt;
&lt;p&gt;Esto importa porque Autofill toca datos personales, direcciones, cuentas, pagos, información laboral y formularios sensibles. Cuanto más útil es, más importantes son el permiso explícito y la salida controlable.&lt;/p&gt;
&lt;h2 id=&#34;rambler-convertir-habla-en-texto-listo-para-enviar&#34;&gt;Rambler: convertir habla en texto listo para enviar
&lt;/h2&gt;&lt;p&gt;Rambler es una de las funciones más interesantes.&lt;/p&gt;
&lt;p&gt;Gboard ya puede convertir voz en texto, pero al hablar de forma natural solemos repetir, pausar, usar muletillas y corregirnos. Rambler busca transformar habla natural en texto más claro y listo para enviar.&lt;/p&gt;
&lt;p&gt;Sirve para situaciones como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dictar rápidamente un mensaje sin editar cada palabra.&lt;/li&gt;
&lt;li&gt;Hablar con pausas, repeticiones o muletillas.&lt;/li&gt;
&lt;li&gt;Convertir una idea improvisada en un SMS, email o chat más profesional.&lt;/li&gt;
&lt;li&gt;Cambiar entre idiomas y esperar que el sistema entienda el contexto.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Google dice que Rambler mostrará claramente cuándo está activado y que el audio solo se usa para transcripción en tiempo real, sin guardarse. Es una respuesta a preocupaciones de privacidad y transparencia.&lt;/p&gt;
&lt;p&gt;Desde el punto de vista del producto, Rambler convierte “entrada por voz” en “escritura por voz”. No solo registra lo que dijiste; ayuda a convertirlo en texto enviable.&lt;/p&gt;
&lt;h2 id=&#34;widgets-creados-con-lenguaje-natural&#34;&gt;Widgets creados con lenguaje natural
&lt;/h2&gt;&lt;p&gt;Gemini Intelligence también incluye Create My Widget. El usuario puede describir en lenguaje natural el widget que quiere, por ejemplo “recomiéndame tres recetas semanales altas en proteína”, y Android genera un widget personalizado para la pantalla de inicio.&lt;/p&gt;
&lt;p&gt;Esto apunta a generative UI. El usuario ya no elige solo entre plantillas fijas; describe la información y presentación que quiere.&lt;/p&gt;
&lt;p&gt;Si madura, la pantalla de inicio podría volverse mucho más personal. Clima, agenda, salud, transporte, comida, aprendizaje y recordatorios de trabajo podrían convertirse en módulos dinámicos generados según la necesidad del usuario.&lt;/p&gt;
&lt;p&gt;Pero la UI generativa también necesita estabilidad. Un widget no es una respuesta de chat de una sola vez. Permanece en la pantalla y debe ser fiable, legible, configurable y no invadir el diseño.&lt;/p&gt;
&lt;h2 id=&#34;material-3-expressive-e-interfaz-inteligente&#34;&gt;Material 3 Expressive e interfaz inteligente
&lt;/h2&gt;&lt;p&gt;Google también dice que Gemini Intelligence traerá actualizaciones de diseño basadas en Material 3 Expressive.&lt;/p&gt;
&lt;p&gt;No es solo decoración. Cuando la IA empieza a actuar proactivamente, la interfaz debe mostrar claramente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Qué está haciendo la IA.&lt;/li&gt;
&lt;li&gt;Qué pasos se han completado.&lt;/li&gt;
&lt;li&gt;Dónde hace falta confirmación.&lt;/li&gt;
&lt;li&gt;Cómo cancelar o modificar la acción.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Una IA proactiva sin una UI clara puede hacer que el usuario sienta que pierde control. El lenguaje de diseño se convierte en parte de la experiencia del producto de IA.&lt;/p&gt;
&lt;h2 id=&#34;disponibilidad-y-despliegue&#34;&gt;Disponibilidad y despliegue
&lt;/h2&gt;&lt;p&gt;Según Google, las funciones de Gemini Intelligence empezarán en los últimos Samsung Galaxy y Google Pixel durante el verano de 2026. Después llegarán a más dispositivos Android, incluidos relojes, coches, gafas y portátiles.&lt;/p&gt;
&lt;p&gt;No será un lanzamiento global instantáneo. La disponibilidad puede depender de dispositivo, región, idioma, soporte de apps y configuración de cuenta.&lt;/p&gt;
&lt;p&gt;Si quieres probarlo, las expectativas realistas son:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mirar primero Pixel y Samsung de gama alta.&lt;/li&gt;
&lt;li&gt;Seguir las actualizaciones del sistema tras el verano de 2026.&lt;/li&gt;
&lt;li&gt;Buscar nuevos interruptores en Gemini, Chrome, Gboard, Autofill y ajustes de Android.&lt;/li&gt;
&lt;li&gt;No todas las regiones e idiomas admitirán todas las funciones al mismo tiempo.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;qué-significa-para-android&#34;&gt;Qué significa para Android
&lt;/h2&gt;&lt;p&gt;Gemini Intelligence on Android no significa solo añadir unas cuantas funciones de IA. Cambia la dirección del producto Android.&lt;/p&gt;
&lt;p&gt;Los sistemas móviles tradicionales gestionan apps, notificaciones, permisos, archivos y hardware. Google ahora quiere que el sistema entienda la intención del usuario y complete tareas entre apps. Si funciona, la competencia de Android se moverá desde “funciones del sistema y ecosistema de apps” hacia “cuánto puede ayudar proactivamente al usuario”.&lt;/p&gt;
&lt;p&gt;También cambia la competencia de IA móvil:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Apple enfatizará integración local, privacidad y control del sistema.&lt;/li&gt;
&lt;li&gt;Google enfatizará Gemini, Search, Chrome, Android y ecosistema multidispositivo.&lt;/li&gt;
&lt;li&gt;Las apps de IA de terceros lo tendrán más difícil frente a entradas de nivel sistema.&lt;/li&gt;
&lt;li&gt;Los desarrolladores deberán pensar cómo sus apps serán llamadas por agentes de IA.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En los próximos años, la IA en el teléfono puede dejar de ser solo una entrada de chat y convertirse en una capa de ejecución del sistema.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Gemini Intelligence on Android no trata de añadir otra caja de chat Gemini al teléfono. Trata de colocar IA dentro del flujo operativo de Android. Automatización de varios pasos, Chrome inteligente, Autofill, Rambler y widgets por lenguaje natural buscan convertir el teléfono de herramienta pasiva en asistente proactivo.&lt;/p&gt;
&lt;p&gt;Que cambie realmente los hábitos del usuario dependerá de la fiabilidad de la automatización, la claridad de los controles de privacidad, la fluidez entre apps y que el usuario conserve el control final. Al menos con este anuncio, Google define la siguiente etapa de Android como un sistema de IA proactivo, no solo como un sistema operativo móvil tradicional.&lt;/p&gt;
&lt;p&gt;Referencia:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://blog.google/products-and-platforms/platforms/android/gemini-intelligence/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Google Blog: A smarter, more proactive Android with Gemini Intelligence&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Codex ya admite acceso remoto desde ChatGPT móvil y Access Tokens para espacios Enterprise</title>
        <link>https://knightli.com/es/2026/05/17/codex-mobile-remote-access-enterprise-access-tokens/</link>
        <pubDate>Sun, 17 May 2026 09:12:07 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/17/codex-mobile-remote-access-enterprise-access-tokens/</guid>
        <description>&lt;p&gt;El 14 de mayo de 2026, OpenAI actualizó las notas de lanzamiento de ChatGPT Enterprise &amp;amp; Edu con dos cambios centrados en Codex: acceso remoto desde la app móvil de ChatGPT y Codex access tokens para automatización controlada en espacios Enterprise.&lt;/p&gt;
&lt;p&gt;No es un lanzamiento de nuevas capacidades de modelo. Es un cambio en la forma del producto Codex. Codex está pasando de ser un asistente de programación local o web a un coding agent que puede ejecutarse durante más tiempo, gestionarse a distancia e integrarse en flujos de automatización empresarial.&lt;/p&gt;
&lt;h2 id=&#34;qué-cambió&#34;&gt;Qué cambió
&lt;/h2&gt;&lt;p&gt;Según OpenAI Help Center, Codex ahora admite acceso remoto desde ChatGPT mobile app. Los usuarios pueden conectarse desde el teléfono a un entorno Codex en ejecución, seguir tareas largas e intervenir cuando sea necesario.&lt;/p&gt;
&lt;p&gt;Al mismo tiempo, los espacios ChatGPT Enterprise reciben Codex access tokens. Están pensados para flujos locales confiables y no interactivos, permitiendo que la automatización use ChatGPT workspace identity y controles empresariales sin iniciar sesión en el navegador cada vez.&lt;/p&gt;
&lt;p&gt;La actualización tiene dos entradas principales:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Acceso remoto móvil: resuelve qué hacer cuando Codex ejecuta una tarea larga y el usuario no está frente al ordenador.&lt;/li&gt;
&lt;li&gt;Access Tokens: resuelve cómo los scripts empresariales de automatización pueden llamar flujos de Codex con una identidad controlada.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;qué-problema-resuelve-el-acceso-remoto-móvil&#34;&gt;Qué problema resuelve el acceso remoto móvil
&lt;/h2&gt;&lt;p&gt;Las tareas típicas de Codex no siempre terminan en segundos. En desarrollo real, puede leer un repositorio, modificar varios archivos, ejecutar pruebas, esperar salida de comandos, corregir errores y pedir aprobación a mitad del proceso.&lt;/p&gt;
&lt;p&gt;Antes, estas tareas solían exigir que el usuario estuviera cerca del Mac local, la app de escritorio, la CLI o el IDE. Ahora, ChatGPT móvil puede funcionar como una consola remota para seguir Codex incluso lejos del ordenador.&lt;/p&gt;
&lt;p&gt;OpenAI indica que el móvil puede mostrar el estado en tiempo real del entorno subyacente, incluyendo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Contexto del proyecto.&lt;/li&gt;
&lt;li&gt;approvals.&lt;/li&gt;
&lt;li&gt;screenshots.&lt;/li&gt;
&lt;li&gt;terminal output.&lt;/li&gt;
&lt;li&gt;diffs.&lt;/li&gt;
&lt;li&gt;test results.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El usuario también puede responder preguntas de Codex, redirigir la ejecución, aprobar acciones, revisar salidas y cambiar entre distintos connected hosts. La tarea sigue ejecutándose en un Mac host o en un entorno remoto conectado; el teléfono sirve para revisar y controlar.&lt;/p&gt;
&lt;h2 id=&#34;valor-para-desarrolladores&#34;&gt;Valor para desarrolladores
&lt;/h2&gt;&lt;p&gt;Esta capacidad es especialmente útil para tareas largas que requieren confirmaciones ocasionales.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Codex está ejecutando pruebas lentas y quieres revisar el resultado fuera de casa.&lt;/li&gt;
&lt;li&gt;Codex modificó varios archivos y quieres revisar el diff en el móvil antes de aprobar el siguiente paso.&lt;/li&gt;
&lt;li&gt;Codex espera confirmación antes de una operación riesgosa.&lt;/li&gt;
&lt;li&gt;Hay varios connected hosts y quieres cambiar entre ellos desde el móvil.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El valor no es escribir código en el teléfono. El valor es no tener que permanecer frente al ordenador todo el tiempo. Codex sigue trabajando en el entorno original y el usuario interviene solo en momentos clave.&lt;/p&gt;
&lt;p&gt;Esto también muestra que Codex se acerca a un modelo de “Agent en segundo plano”: las tareas pueden seguir ejecutándose, el usuario no necesita estar siempre conectado, pero la aprobación y el control siguen en manos humanas.&lt;/p&gt;
&lt;h2 id=&#34;qué-resuelven-los-access-tokens&#34;&gt;Qué resuelven los Access Tokens
&lt;/h2&gt;&lt;p&gt;Codex access tokens están dirigidos a espacios ChatGPT Enterprise. Su objetivo no es el inicio de sesión normal de usuarios personales, sino la automatización empresarial confiable.&lt;/p&gt;
&lt;p&gt;En una empresa, a menudo hay flujos locales o internos que deben ejecutarse de forma no interactiva, por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Revisiones de código programadas.&lt;/li&gt;
&lt;li&gt;Activación de flujos Codex en máquinas controladas.&lt;/li&gt;
&lt;li&gt;Integración de Codex con herramientas internas de desarrollo.&lt;/li&gt;
&lt;li&gt;Uso de identidad de workspace sin abrir el navegador.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Access tokens permiten que estos flujos se ejecuten con ChatGPT workspace identity y sigan sujetos a políticas empresariales. Frente al login manual, encajan mejor con automatización. Frente a compartir credenciales personales, son más fáciles de gobernar.&lt;/p&gt;
&lt;h2 id=&#34;no-es-una-api-key-genérica&#34;&gt;No es una API key genérica
&lt;/h2&gt;&lt;p&gt;Este punto es importante. Codex access tokens no deberían entenderse como una simple “API key universal”.&lt;/p&gt;
&lt;p&gt;OpenAI señala que access tokens están disponibles para espacios ChatGPT Enterprise, los administradores pueden gestionar su disponibilidad a nivel de workspace, y los miembros con roles permitidos pueden crear sus propios tokens. Cuando esté disponible, la interfaz de gobernanza también puede reflejar actividad de access tokens.&lt;/p&gt;
&lt;p&gt;Es decir, access tokens se integran en el marco de permisos, roles y auditoría empresarial:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El administrador decide si el workspace los habilita.&lt;/li&gt;
&lt;li&gt;No todos los miembros pueden crearlos por defecto.&lt;/li&gt;
&lt;li&gt;La actividad del token puede aparecer en vistas de gobernanza.&lt;/li&gt;
&lt;li&gt;Heredan ChatGPT workspace identity y controles empresariales.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto no es lo mismo que crear casualmente un secreto personal de larga duración.&lt;/p&gt;
&lt;h2 id=&#34;valor-seguro-por-defecto-remote-control-está-apagado&#34;&gt;Valor seguro por defecto: Remote Control está apagado
&lt;/h2&gt;&lt;p&gt;Codex mobile remote access toca entornos de código, salida de terminal, diffs, resultados de pruebas y acciones de aprobación. Si estuviera habilitado por defecto, implicaría riesgos empresariales evidentes.&lt;/p&gt;
&lt;p&gt;Por eso OpenAI adopta una postura conservadora: remote control está apagado por defecto y un admin u owner debe habilitarlo en Workspace settings.&lt;/p&gt;
&lt;p&gt;Al activar el acceso remoto móvil, también pueden intervenir:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;workspace-enabled Remote Control access.&lt;/li&gt;
&lt;li&gt;SSO.&lt;/li&gt;
&lt;li&gt;Autenticación multifactor.&lt;/li&gt;
&lt;li&gt;passkey.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto muestra que es una capacidad que debe configurar el equipo de IT y seguridad, no algo disponible automáticamente para todos tras actualizar la app.&lt;/p&gt;
&lt;h2 id=&#34;qué-hay-que-actualizar-antes-de-usarlo&#34;&gt;Qué hay que actualizar antes de usarlo
&lt;/h2&gt;&lt;p&gt;OpenAI indica que el acceso remoto móvil requiere actualizar ambos lados:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ChatGPT mobile app.&lt;/li&gt;
&lt;li&gt;Codex app en macOS.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si el workspace lo exige, la configuración móvil también puede activar SSO, autenticación multifactor o passkey.&lt;/p&gt;
&lt;p&gt;En la práctica, los administradores deberían revisar primero la configuración de remote control en Workspace settings y decidir qué miembros o roles pueden usar estas capacidades.&lt;/p&gt;
&lt;h2 id=&#34;impacto-en-el-uso-empresarial-de-codex&#34;&gt;Impacto en el uso empresarial de Codex
&lt;/h2&gt;&lt;p&gt;Esta actualización empuja Codex en dos direcciones.&lt;/p&gt;
&lt;p&gt;Primero, Codex se vuelve más apto para tareas largas. Antes, el problema era que el usuario debía vigilarlo constantemente. Ahora puede revisar estado y aprobar acciones desde el móvil, lo que hace más natural que Codex trabaje en segundo plano.&lt;/p&gt;
&lt;p&gt;Segundo, Codex se vuelve más apto para automatización empresarial. Access tokens dan a los flujos no interactivos una identidad formal, facilitando integraciones futuras con CI interno, revisión de código, scripts y plataformas de desarrollo.&lt;/p&gt;
&lt;p&gt;Juntas, estas dos direcciones significan que Codex deja de ser solo un asistente de IA junto al desarrollador y se convierte en un agent administrable dentro del flujo de desarrollo empresarial.&lt;/p&gt;
&lt;h2 id=&#34;límites-que-siguen-importando&#34;&gt;Límites que siguen importando
&lt;/h2&gt;&lt;p&gt;La actualización es útil, pero no significa que Codex pueda ejecutarse sin supervisión.&lt;/p&gt;
&lt;p&gt;Las empresas todavía deben considerar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Qué proyectos permiten control remoto.&lt;/li&gt;
&lt;li&gt;Qué comandos requieren aprobación.&lt;/li&gt;
&lt;li&gt;Cómo crear, rotar y revocar tokens.&lt;/li&gt;
&lt;li&gt;Si mobile remote access encaja con la política de gestión de dispositivos.&lt;/li&gt;
&lt;li&gt;Si terminal output, screenshots y diffs pueden contener información sensible.&lt;/li&gt;
&lt;li&gt;Si los logs de auditoría y vistas de gobernanza cumplen los requisitos internos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Especialmente los access tokens: una vez que entran en flujos de automatización, deben gestionarse como otras credenciales empresariales, con mínimo privilegio, rotación, sin hardcoding y revocación rápida de tokens que ya no se usen.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;La actualización de Codex es clara: ChatGPT móvil puede acceder remotamente a tareas largas de Codex, y los espacios Enterprise pueden usar Codex access tokens para automatización controlada.&lt;/p&gt;
&lt;p&gt;Lo primero evita que el desarrollador tenga que estar siempre frente al ordenador. Lo segundo permite a las empresas integrar Codex de forma más formal en flujos internos. Juntas, ambas funciones muestran que Codex avanza desde un asistente interactivo de programación hacia un coding agent empresarial, gestionable, auditable y preparado para automatización.&lt;/p&gt;
&lt;p&gt;Referencia:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://help.openai.com/en/articles/10128477-chatgpt-enterprise-edu-release-notes&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;OpenAI Help Center: ChatGPT Enterprise &amp;amp; Edu - Release Notes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Por qué se reinician de repente los límites de Codex: historial y fuentes</title>
        <link>https://knightli.com/es/2026/05/17/codex-usage-limit-reset-history/</link>
        <pubDate>Sun, 17 May 2026 08:36:15 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/17/codex-usage-limit-reset-history/</guid>
        <description>&lt;p&gt;Los usuarios de Codex a veces se encuentran con algo extraño: sus usage limits vuelven a estar disponibles aunque todavía no haya llegado su hora normal de reset. Este tipo de reinicio sin aviso no es nuevo, y no significa necesariamente que las reglas de cuota se hayan vuelto más generosas de forma permanente. Puede deberse a compensación por incidentes, promociones de producto, hitos de crecimiento o a un reset interno que solo afecta a ciertas ventanas o estados de cuenta.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/17/codex-usage-limit-reset-history/tibo-codex-gpt55-reset.png&#34;
	width=&#34;1146&#34;
	height=&#34;712&#34;
	srcset=&#34;https://knightli.com/2026/05/17/codex-usage-limit-reset-history/tibo-codex-gpt55-reset_hu_8e2e55bed895f615.png 480w, https://knightli.com/2026/05/17/codex-usage-limit-reset-history/tibo-codex-gpt55-reset_hu_1736ae030ba80b22.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Captura de Tibo sobre el reinicio de usage limits en Codex&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;160&#34;
		data-flex-basis=&#34;386px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;La captura proviene de una publicación en X de Tibo Sottiaux (@thsottiaux), responsable del equipo de OpenAI Codex. Para quienes siguen de cerca sus límites, la parte clave no es el detalle del modelo, sino que Tibo dijo que resetearía los usage limits esa misma noche. Por el contexto, se trató de un reset compensatorio, no de una renovación normal del ciclo.&lt;/p&gt;
&lt;h2 id=&#34;resumen-rápido&#34;&gt;Resumen rápido
&lt;/h2&gt;&lt;p&gt;Los reinicios repentinos de límites en Codex suelen entrar en estas categorías:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Compensación por incidente&lt;/strong&gt;: un problema en Codex o en un modelo hace que los usuarios gasten cuota de forma anormal, y OpenAI reinicia límites para compensar.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lanzamiento o promoción&lt;/strong&gt;: un nuevo modelo, cliente o función se acompaña de más capacidad temporal o de un reset.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hito de crecimiento&lt;/strong&gt;: OpenAI reinicia o aumenta límites cuando Codex alcanza cierto nivel de adopción.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cambio de política interna&lt;/strong&gt;: solo se resetean algunas ventanas de cuota o ciertos estados de cuenta, y la UI no siempre explica el alcance.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El malentendido más común es creer que “reset” significa que todas las ventanas visibles se han recuperado. En la práctica, Codex puede tener ventanas cortas, weekly limit, pesos de consumo por modelo y reglas por plan. Un reset especial puede afectar solo a una parte del sistema.&lt;/p&gt;
&lt;h2 id=&#34;qué-muestra-esta-captura&#34;&gt;Qué muestra esta captura
&lt;/h2&gt;&lt;p&gt;La captura muestra que Tibo publicó una actualización el 15 de mayo de 2026, diciendo que el equipo seguiría monitoreando y que reiniciaría los usage limits esa noche. La publicación cita un mensaje anterior en el que el equipo decía estar investigando reportes de algunos usuarios.&lt;/p&gt;
&lt;p&gt;Para el usuario, hay tres ideas prácticas:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;No fue el ciclo normal de reset de cada cuenta; fue un reset activo del equipo.&lt;/li&gt;
&lt;li&gt;El reset tuvo un contexto concreto y no fue un aumento permanente de límites.&lt;/li&gt;
&lt;li&gt;La expresión “usage limits” no aclara por sí sola si incluía tanto la ventana de 5 horas como el weekly limit.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Por eso, si tu cuota se recuperó, conviene tratarlo primero como un reset event especial, no como prueba de que las reglas futuras cambiaron.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-los-resets-de-codex-pueden-parecer-inesperados&#34;&gt;Por qué los resets de Codex pueden parecer inesperados
&lt;/h2&gt;&lt;p&gt;Los límites de Codex no funcionan simplemente como “se actualizan todos los días a una hora fija”. El backend puede rastrear varias cosas a la vez:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ventanas cortas de uso, por ejemplo de unas horas.&lt;/li&gt;
&lt;li&gt;Límites semanales o de periodos más largos.&lt;/li&gt;
&lt;li&gt;Pesos de consumo distintos para diferentes modelos.&lt;/li&gt;
&lt;li&gt;Entradas distintas, como Codex local, Cloud Tasks, IDE y CLI.&lt;/li&gt;
&lt;li&gt;Diferencias entre Plus, Pro, Business y Team.&lt;/li&gt;
&lt;li&gt;Si una cuenta es elegible para un reset especial.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cuando OpenAI aplica un reset especial, la UI puede no decir con claridad si se trata de una renovación normal o de una compensación. Si solo se reinicia la ventana corta, algunos usuarios pueden asumir que el weekly limit también debería recuperarse. Si el weekly no cambia, parece que el reset falló.&lt;/p&gt;
&lt;p&gt;En el repositorio de OpenAI Codex en GitHub también se planteó este problema de transparencia: el mensaje público decía que se habían reseteado los Codex rate limits, pero la UI no mostraba claramente qué ventanas se habían reiniciado, si el weekly limit estaba incluido o si todos los planes de pago se veían afectados de la misma forma.&lt;/p&gt;
&lt;h2 id=&#34;patrones-históricos&#34;&gt;Patrones históricos
&lt;/h2&gt;&lt;h3 id=&#34;1-febrero-de-2026-periodo-de-lanzamiento-y-capacidad-temporal&#34;&gt;1. Febrero de 2026: periodo de lanzamiento y capacidad temporal
&lt;/h3&gt;&lt;p&gt;Durante el periodo de promoción de la app de escritorio de Codex y &lt;code&gt;GPT-5.3-Codex&lt;/code&gt;, usuarios de la comunidad hablaron de usage limit reset y de 2x rate limits temporales. En Reddit, algunos mencionaron que el lanzamiento de Codex app incluyó 2x rate limits por tiempo limitado y un usage limit reset.&lt;/p&gt;
&lt;p&gt;Este tipo de reset parece una acción de lanzamiento: animar a más usuarios a probar el nuevo cliente, modelo o flujo de trabajo.&lt;/p&gt;
&lt;h3 id=&#34;2-marzo-de-2026-resets-aleatorios-y-consumo-anormal&#34;&gt;2. Marzo de 2026: resets aleatorios y consumo anormal
&lt;/h3&gt;&lt;p&gt;Alrededor de marzo, la comunidad discutió varias veces comportamientos como “random usage reset” y “weekly limit reset daily”. Algunos usuarios dijeron que su weekly limit se recuperó antes de tiempo, mientras que otros lo relacionaron con nuevos modelos de Codex, bloqueos de seguridad, consumo anormal de cuota o correcciones de bugs.&lt;/p&gt;
&lt;p&gt;Estas discusiones no son anuncios oficiales, pero muestran que los usuarios ya habían observado recuperaciones fuera del calendario normal.&lt;/p&gt;
&lt;h3 id=&#34;3-abril-de-2026-hitos-de-crecimiento-y-resets-para-planes-de-pago&#34;&gt;3. Abril de 2026: hitos de crecimiento y resets para planes de pago
&lt;/h3&gt;&lt;p&gt;A finales de abril, algunos reportes públicos indicaron que Codex alcanzó 3 millones de usuarios activos semanales y que OpenAI reseteó rate limits, con la intención de dar más margen en futuros hitos de crecimiento.&lt;/p&gt;
&lt;p&gt;Un issue de GitHub también citó una publicación de Tibo del 28 de abril, donde decía que había reseteado los Codex rate limits para planes de pago tras una “good week”, para que los usuarios pudieran crear más con &lt;code&gt;GPT-5.5&lt;/code&gt;. Ese mismo issue señalaba que la UI no explicaba con claridad qué ventanas se habían reseteado ni si el weekly limit estaba incluido.&lt;/p&gt;
&lt;p&gt;Esto muestra por qué los resets vinculados a actividad o crecimiento también pueden confundir: los usuarios oyen un mensaje amplio, pero ven resultados distintos en su cuenta.&lt;/p&gt;
&lt;h3 id=&#34;4-mayo-de-2026-reset-compensatorio&#34;&gt;4. Mayo de 2026: reset compensatorio
&lt;/h3&gt;&lt;p&gt;La captura de este artículo es un ejemplo más claro de reset compensatorio. Tibo dijo que el equipo había encontrado problemas y que resetearía los usage limits esa noche. OpenAI Status también registró errores elevados y latencia degradada relacionados con Codex el 13 de mayo de 2026.&lt;/p&gt;
&lt;p&gt;Para usuarios normales, lo importante no es el detalle exacto del modelo. La lección es que, cuando un problema del servicio hace que los usuarios quemen cuota de forma anormal, OpenAI puede compensar con un reset especial.&lt;/p&gt;
&lt;h2 id=&#34;cómo-interpretar-un-reset-repentino&#34;&gt;Cómo interpretar un reset repentino
&lt;/h2&gt;&lt;p&gt;Si tu cuota de Codex se recupera de repente, revisa en este orden:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Comprueba si llegó tu hora normal de reset.&lt;/li&gt;
&lt;li&gt;Revisa OpenAI Status para ver incidentes de Codex, errores de modelo, latencia o rendimiento degradado.&lt;/li&gt;
&lt;li&gt;Busca actualizaciones de Tibo, cuentas oficiales de OpenAI o issues de Codex en GitHub.&lt;/li&gt;
&lt;li&gt;Mira si la comunidad reporta el mismo reset, consumo anormal o confusión con el weekly limit.&lt;/li&gt;
&lt;li&gt;Separa las ventanas cortas del weekly limit; no asumas que siempre se mueven juntas.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si es compensación oficial por un incidente, normalmente habrá una entrada en la página de estado, un anuncio del equipo o muchos reportes concentrados. Si solo es una actualización parcial del backend, puede que no haya anuncio claro.&lt;/p&gt;
&lt;h2 id=&#34;cómo-evaluar-la-fiabilidad-de-las-fuentes&#34;&gt;Cómo evaluar la fiabilidad de las fuentes
&lt;/h2&gt;&lt;p&gt;Conviene separar las fuentes por nivel de fiabilidad:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;OpenAI Status&lt;/strong&gt;: mejor para confirmar incidentes, tasas de error, latencia y tiempos de recuperación.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tibo / cuentas oficiales de OpenAI&lt;/strong&gt;: útiles para confirmar resets especiales, compensaciones o promociones.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;OpenAI Codex GitHub issues&lt;/strong&gt;: útiles para ver reportes de usuarios sobre UI, ventanas de cuota y comportamiento real del producto.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reddit / X&lt;/strong&gt;: útiles para detectar patrones amplios entre usuarios, pero no son confirmación oficial.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Noticias o blogs de terceros&lt;/strong&gt;: útiles para completar la línea temporal, pero conviene contrastarlos con fuentes originales.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Al escribir o tomar decisiones, conviene mantener separadas estas capas. “OpenAI Status registró un incidente” es una señal oficial. “Usuarios de Reddit reportaron resets aleatorios” es una observación de la comunidad. “Un GitHub issue señaló falta de transparencia en la UI” es un problema reportado por un usuario.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Un reset repentino de usage limits en Codex no suele ser simplemente “cuota gratis”. Puede venir de compensación por incidentes, promociones de lanzamiento, actividades de crecimiento o cambios internos. Lo confuso es que Codex tiene varias ventanas de cuota, y un reset especial no siempre las incluye todas. La UI tampoco siempre muestra claramente el reset scope.&lt;/p&gt;
&lt;p&gt;Cuando ocurra, revisa primero la cuota real en el cliente, luego compárala con OpenAI Status, publicaciones de Tibo, GitHub issues de Codex y reportes de la comunidad. No asumas que un reset cambia las reglas a largo plazo, ni que weekly limit, ventanas cortas y todos los planes se recuperan al mismo tiempo.&lt;/p&gt;
&lt;p&gt;Referencias:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://status.openai.com/incidents/01KRG6MF021JQ997JCR7R8Y9A0&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;OpenAI Status: Codex 5.5 engines are experiencing high error rate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.reddit.com/r/LovingCodex/comments/1teo5ki/tibo_we_foundfixed_two_issues_that_could_explain/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Reddit: captura del anuncio de Tibo y enlace a X&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/openai/codex/issues/20395&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;GitHub: Clarify Codex rate-limit reset behavior and make reset scope visible in Usage UI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.createwith.com/tool/chatgpt/updates/chatgpt-codex-hits-3-million-weekly-users-openai-resets-rate-limits&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Create With: ChatGPT Codex Hits 3 Million Weekly Users, OpenAI Resets Rate Limits&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.reddit.com/r/codex/comments/1rjcwli/usage_limit_reset/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Reddit: Usage limit reset?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.reddit.com/r/codex/comments/1qu2gjx/when_the_unnexpected_usage_limit_reset_hits_ty/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Reddit: when the unexpected usage limit reset hits&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>easy-vibe: un mapa de aprendizaje para principiantes de Vibe Coding</title>
        <link>https://knightli.com/es/2026/05/16/easy-vibe-vibe-coding-learning-map/</link>
        <pubDate>Sat, 16 May 2026 22:44:43 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/16/easy-vibe-vibe-coding-learning-map/</guid>
        <description>&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/datawhalechina/easy-vibe&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;easy-vibe&lt;/a&gt; es un proyecto open source de Datawhale para aprender Vibe Coding. No está dirigido a desarrolladores que ya dominan herramientas de AI Coding, sino a estudiantes, product managers, diseñadores, equipos de operaciones, indie developers y personas con interés técnico que apenas empiezan con Vibe Coding.&lt;/p&gt;
&lt;p&gt;El valor del proyecto no está en listar otro grupo de herramientas de IA, sino en convertir &amp;ldquo;cómo empezar a construir proyectos con IA&amp;rdquo; en una ruta de aprendizaje más fácil de entender. Para muchos principiantes, lo difícil no es saber que existen Claude Code, Cursor, MCP o los Agents. Lo difícil es saber qué aprender primero, cómo practicar y cuándo pasar a herramientas más avanzadas.&lt;/p&gt;
&lt;h2 id=&#34;lo-que-más-necesitan-los-principiantes-es-una-ruta&#34;&gt;Lo que más necesitan los principiantes es una ruta
&lt;/h2&gt;&lt;p&gt;Vibe Coding se ha vuelto popular en los últimos años, pero no es especialmente amigable para principiantes.&lt;/p&gt;
&lt;p&gt;En apariencia, si sabes describir un requisito, puedes pedir a la IA que escriba código. En la práctica, en cuanto la tarea se vuelve un poco más compleja, aparecen problemas: el requisito no está claro, el modelo modifica el archivo equivocado, la estructura del proyecto no se entiende, los errores no se saben resolver, las dependencias no se instalan, los prompts se vuelven cada vez más confusos y el flujo termina regresando a &amp;ldquo;copiar código en una caja de chat&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Por eso aprender Vibe Coding no puede limitarse a &amp;ldquo;cómo escribir prompts&amp;rdquo;. Como mínimo debe resolver varias cosas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cómo dividir una idea en tareas ejecutables;&lt;/li&gt;
&lt;li&gt;Cómo hacer que la IA entienda la estructura del proyecto;&lt;/li&gt;
&lt;li&gt;Cómo leer el código generado por el modelo;&lt;/li&gt;
&lt;li&gt;Cómo manejar errores e iterar;&lt;/li&gt;
&lt;li&gt;Cómo usar la terminal y el entorno local de desarrollo;&lt;/li&gt;
&lt;li&gt;Cómo pasar del chat web a herramientas reales de AI Coding.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ahí está el sentido de easy-vibe: intenta organizar estos temas en una ruta de aprendizaje, en lugar de dejar que los principiantes se pierdan entre herramientas, tutoriales y términos.&lt;/p&gt;
&lt;h2 id=&#34;no-es-un-tutorial-aislado-sino-una-hoja-de-ruta&#34;&gt;No es un tutorial aislado, sino una hoja de ruta
&lt;/h2&gt;&lt;p&gt;Según la presentación del proyecto, easy-vibe cubre tutoriales básicos, ejercicios interactivos, contenido visual, RAG, herramientas de terminal, herramientas de AI Coding y temas más avanzados como Claude Code, MCP, Skills y Agent Teams.&lt;/p&gt;
&lt;p&gt;Esta forma de organizar el contenido es adecuada para principiantes. AI Coding no es una sola habilidad, sino una combinación de capacidades:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Describir requisitos;&lt;/li&gt;
&lt;li&gt;Dividir tareas;&lt;/li&gt;
&lt;li&gt;Leer proyectos;&lt;/li&gt;
&lt;li&gt;Pedir al modelo que modifique código;&lt;/li&gt;
&lt;li&gt;Ejecutar y verificar;&lt;/li&gt;
&lt;li&gt;Iterar según los errores;&lt;/li&gt;
&lt;li&gt;Convertir flujos repetidos en herramientas o skills.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si solo aprendes una herramienta, es fácil quedar limitado por su interfaz. Cambias de modelo, editor o CLI, y el flujo vuelve a no estar claro. La ventaja de una hoja de ruta es construir primero el método de trabajo y luego poner las herramientas en el lugar adecuado.&lt;/p&gt;
&lt;h2 id=&#34;es-especialmente-útil-para-no-programadores&#34;&gt;Es especialmente útil para no programadores
&lt;/h2&gt;&lt;p&gt;El mayor atractivo de Vibe Coding es que permite a personas que no son programadoras profesionales crear prototipos.&lt;/p&gt;
&lt;p&gt;Un product manager puede convertir una idea de producto en un demo interactivo. Un diseñador puede validar lógica de interacción. Un equipo de operaciones puede crear herramientas internas. Un estudiante puede construir proyectos de clase rápidamente. Un fundador puede validar demanda en etapas tempranas. Estas personas no necesariamente necesitan convertirse en ingenieros full-time en el sentido tradicional, pero sí necesitan un método para &amp;ldquo;hacer que la IA me ayude a llevar una idea a algo funcional&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Por eso easy-vibe encaja bien con la comunidad china. Muchos usuarios chinos ya saben que la IA puede escribir código, pero aún faltan materiales sistemáticos para empezar: entorno de desarrollo, prompts, estructura de proyecto, depuración y uso de herramientas Agent. Es mejor cuando todo se explica con claridad en chino y se acompaña con ejercicios graduales.&lt;/p&gt;
&lt;p&gt;Para este tipo de usuarios, lo más importante no es aprender un framework complejo desde el primer día, sino completar un ciclo completo: plantear un requisito, generar un proyecto, ejecutarlo, encontrar problemas, seguir modificando y terminar con una versión usable.&lt;/p&gt;
&lt;h2 id=&#34;la-parte-avanzada-se-acerca-a-flujos-reales-de-desarrollo-con-ia&#34;&gt;La parte avanzada se acerca a flujos reales de desarrollo con IA
&lt;/h2&gt;&lt;p&gt;Claude Code, MCP, Skills y Agent Teams, que aparecen en easy-vibe, ya no son solo conceptos introductorios.&lt;/p&gt;
&lt;p&gt;Claude Code representa los Agents de programación en terminal: el modelo puede entrar en un proyecto local, leer archivos, modificar código y ejecutar comandos. MCP resuelve la conexión con herramientas y fuentes de datos, para que el modelo no se quede encerrado en una caja de chat. Skills permite conservar flujos reutilizables, como generación fija de proyectos, organización de documentos, revisión de tests o procesos de producción de contenido. Agent Teams va un paso más allá y divide tareas entre varios agentes.&lt;/p&gt;
&lt;p&gt;Para principiantes, estos temas pueden parecer lejanos, pero vale la pena conocerlos pronto. La dirección de Vibe Coding ya está clara: pasar de &amp;ldquo;hacer que la IA escriba un fragmento de código&amp;rdquo; a &amp;ldquo;hacer que la IA participe en un flujo completo de proyecto&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Si una ruta de aprendizaje se queda solo en prompts, pronto quedará atrás frente a la evolución de las herramientas. Pero si al principio se lanzan todos los conceptos avanzados a la vez, el principiante no sabrá por dónde empezar. El valor razonable de easy-vibe es colocar esos temas en una ruta de actualización gradual.&lt;/p&gt;
&lt;h2 id=&#34;dos-errores-que-conviene-evitar&#34;&gt;Dos errores que conviene evitar
&lt;/h2&gt;&lt;p&gt;El primer error es creer que Vibe Coding significa que, aunque no sepas código, puedes desentenderte por completo del código.&lt;/p&gt;
&lt;p&gt;La IA puede generar muchas cosas, pero el usuario sigue necesitando juzgar si el resultado es correcto. Como mínimo, hay que entender la estructura del proyecto, saber cómo ejecutarlo y ubicar aproximadamente dónde ocurre un error. Aunque no escribas código complejo, necesitas sentido común básico de ingeniería.&lt;/p&gt;
&lt;p&gt;El segundo error es creer que cuanto más avanzada sea la herramienta, mejor.&lt;/p&gt;
&lt;p&gt;Un principiante no necesariamente necesita Claude Code, MCP o múltiples Agents al inicio. Un orden mejor es crear primero un ciclo de feedback con proyectos simples, y luego introducir poco a poco terminal, control de versiones, tests, llamadas a herramientas y flujos automatizados. Las herramientas deben coincidir con la complejidad de la tarea; si no, se convierten en algo que parece potente pero no se sabe para qué usar.&lt;/p&gt;
&lt;h2 id=&#34;cómo-usarlo&#34;&gt;Cómo usarlo
&lt;/h2&gt;&lt;p&gt;Si apenas empiezas con Vibe Coding, puedes usar easy-vibe como una lista de aprendizaje.&lt;/p&gt;
&lt;p&gt;Empieza con conceptos básicos y ejercicios simples. No hace falta perseguir todas las herramientas. Construye un proyecto pequeño, como una página personal, un dashboard de datos, una herramienta de formularios, un script de automatización o una demo de base de conocimiento. Durante el proceso, observa en qué partes ayuda la IA y en cuáles necesitas confirmar por tu cuenta.&lt;/p&gt;
&lt;p&gt;Cuando puedas completar proyectos pequeños de forma estable, empieza con temas más complejos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Usar herramientas de terminal para trabajar con proyectos locales;&lt;/li&gt;
&lt;li&gt;Usar Git para gestionar cada cambio;&lt;/li&gt;
&lt;li&gt;Usar RAG para conectar tus propios materiales;&lt;/li&gt;
&lt;li&gt;Usar MCP para conectar herramientas externas;&lt;/li&gt;
&lt;li&gt;Usar Skills para fijar flujos repetidos;&lt;/li&gt;
&lt;li&gt;Usar Agent Teams para dividir tareas complejas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Aprender Vibe Coding así no es solo aprender a preguntar a la IA. Es aprender a poner la IA dentro de tu propio flujo de trabajo.&lt;/p&gt;
&lt;h2 id=&#34;conclusión&#34;&gt;Conclusión
&lt;/h2&gt;&lt;p&gt;easy-vibe puede verse como un mapa de entrada en chino para Vibe Coding. Organiza conceptos, herramientas y ejercicios dispersos de AI Coding en una ruta que ayuda al principiante a pasar de &amp;ldquo;he oído que la IA puede escribir código&amp;rdquo; a &amp;ldquo;puedo construir un proyecto con IA&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;El valor real de Vibe Coding no es saltarse todo aprendizaje, sino bajar la barrera entre idea y prototipo. Aún necesitas entender requisitos, organizar tareas, verificar resultados y controlar riesgos. Pero muchos pasos repetitivos, tediosos y fáciles de bloquear pueden hacerse con ayuda de la IA.&lt;/p&gt;
&lt;p&gt;Si quieres una entrada sistemática al AI Coding y no quieres perderte desde el principio entre nombres de herramientas y configuraciones de ingeniería complejas, easy-vibe es un buen punto de partida.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Anthropic financial-services: convertir escenarios de agentes financieros en plantillas reutilizables</title>
        <link>https://knightli.com/es/2026/05/16/anthropic-financial-services-agent-templates/</link>
        <pubDate>Sat, 16 May 2026 22:43:08 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/16/anthropic-financial-services-agent-templates/</guid>
        <description>&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/anthropics/financial-services&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;anthropics/financial-services&lt;/a&gt; es un proyecto de referencia de Anthropic para la industria de servicios financieros. No es una sola aplicación, sino un conjunto de ejemplos que se pueden estudiar y reutilizar por separado: Agents, Plugins, Skills, conectores MCP, además de prompts y patrones de integración diseñados alrededor de flujos financieros.&lt;/p&gt;
&lt;p&gt;Este proyecto merece atención no porque ofrezca un &amp;ldquo;asistente financiero universal&amp;rdquo;, sino porque divide los problemas habituales de adopción de IA en finanzas en componentes más concretos: qué Agent necesita cada rol, qué fuentes de datos deben conectarse, qué tareas se pueden automatizar y qué pasos siguen requiriendo juicio humano.&lt;/p&gt;
&lt;h2 id=&#34;se-parece-más-a-una-sala-de-muestras-de-agentes-financieros&#34;&gt;Se parece más a una sala de muestras de agentes financieros
&lt;/h2&gt;&lt;p&gt;Cuando las empresas hablan de AI Agents, la conversación suele quedarse en lo abstracto: leer archivos, consultar datos, escribir informes y llamar herramientas. Pero al entrar en escenarios financieros, las preguntas se vuelven mucho más concretas.&lt;/p&gt;
&lt;p&gt;Un analista de banca de inversión necesita organizar materiales de compañías, generar resúmenes de transacciones y comparar empresas comparables. La investigación de acciones necesita leer reportes, seguir noticias, hacer valoración y analizar riesgos. Los equipos de private equity y asset management necesitan filtrar oportunidades, escribir memos y seguir compañías en cartera. Wealth management necesita colocar perfiles de clientes, información de mercado y recomendaciones dentro de un marco de cumplimiento.&lt;/p&gt;
&lt;p&gt;Estos escenarios no se resuelven solo con un cuadro de chat genérico. Requieren roles, procesos, fuentes de datos, formatos de salida y límites de permisos. El valor de este repositorio de Anthropic está ahí: convierte múltiples roles y tareas típicas de servicios financieros en plantillas de Agent que pueden servir como referencia.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-ofrece-agents-plugins-skills-y-mcp-a-la-vez&#34;&gt;Por qué ofrece Agents, Plugins, Skills y MCP a la vez
&lt;/h2&gt;&lt;p&gt;Por la estructura del proyecto, Anthropic no entregó solo un conjunto de prompts. Ofrece varios tipos de componentes al mismo tiempo. Eso corresponde a varias capas de una implementación empresarial de Agents.&lt;/p&gt;
&lt;p&gt;Agents se parecen más a unidades de trabajo orientadas a roles o tareas. Definen qué debe hacer el agente, cómo debe hacerlo, cuándo llamar herramientas y cómo producir la salida.&lt;/p&gt;
&lt;p&gt;Plugins se parecen a extensiones de capacidades externas. El trabajo financiero rara vez ocurre solo dentro del modelo. A menudo necesita conectarse a bases de datos, sistemas documentales, datos de mercado, CRM, bibliotecas de investigación y sistemas internos de workflow.&lt;/p&gt;
&lt;p&gt;Skills funcionan como paquetes reutilizables de capacidad profesional. Marcos de análisis, estructuras de reportes, checklists y métodos de procesamiento de datos pueden convertirse en skills, en lugar de reescribirse como prompts cada vez.&lt;/p&gt;
&lt;p&gt;Los conectores MCP resuelven la integración de herramientas y la estandarización del contexto. Para una empresa, cuantas más herramientas hay, más necesario es un modo relativamente unificado de conectarlas. Si no, cada sistema requiere una adaptación separada y el costo de mantenimiento crece.&lt;/p&gt;
&lt;p&gt;Solo al combinar estas piezas el resultado empieza a parecerse a un flujo real de IA empresarial.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-las-finanzas-son-un-buen-sector-para-ejemplos-de-agents&#34;&gt;Por qué las finanzas son un buen sector para ejemplos de Agents
&lt;/h2&gt;&lt;p&gt;Los servicios financieros son un buen sector para mostrar Agents porque reúnen tres características.&lt;/p&gt;
&lt;p&gt;Primero, la densidad de información es alta. El trabajo financiero depende mucho de estados financieros, anuncios, minutas de reuniones, informes de investigación, datos de trading, información de clientes y documentos regulatorios. Si un modelo depende solo de conocimiento general, se vuelve inútil rápidamente. Necesita conectarse a fuentes reales de datos.&lt;/p&gt;
&lt;p&gt;Segundo, los formatos de salida son estables. Memos de inversión, perfiles de compañías, documentos KYC, resúmenes de investigación, briefings para clientes e informes de operaciones de fondos tienen estructuras relativamente fijas. Eso facilita que los Agents formen workflows verificables.&lt;/p&gt;
&lt;p&gt;Tercero, los límites de riesgo son claros. Finanzas exige cumplimiento, auditoría, permisos y trazabilidad. La IA no puede dar recomendaciones de inversión libremente ni saltarse procesos de aprobación. Esto obliga a diseñar Agents de forma más ingenieril: conservar referencias, separar hechos e inferencias, registrar llamadas a herramientas y limitar acciones ejecutables.&lt;/p&gt;
&lt;p&gt;Por eso este proyecto no es solo para compañías financieras. Cualquier equipo que quiera crear Agents empresariales puede observar cómo Anthropic descompone escenarios de industria.&lt;/p&gt;
&lt;h2 id=&#34;qué-flujos-típicos-cubre&#34;&gt;Qué flujos típicos cubre
&lt;/h2&gt;&lt;p&gt;Según la descripción del proyecto, el repositorio cubre varias áreas de servicios financieros, incluidas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Banca de inversión;&lt;/li&gt;
&lt;li&gt;Investigación de acciones;&lt;/li&gt;
&lt;li&gt;Private equity;&lt;/li&gt;
&lt;li&gt;Wealth management;&lt;/li&gt;
&lt;li&gt;Gestión de fondos;&lt;/li&gt;
&lt;li&gt;Workflows de KYC y cumplimiento.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estos procesos tienen algo en común: todos requieren mucha lectura, organización, comparación y generación de materiales estructurados. Aquí lo más adecuado para la IA no es decidir directamente, sino reducir el tiempo de procesamiento de información y producción documental.&lt;/p&gt;
&lt;p&gt;Por ejemplo, en banca de inversión, un Agent puede ayudar a organizar información de una compañía objetivo, extraer métricas financieras clave y generar un primer borrador de resumen de transacción. En investigación, puede leer primero reportes y noticias, y listar cambios clave y preguntas pendientes. En KYC, puede ayudar a comprobar si la documentación está completa y si hay señales anómalas.&lt;/p&gt;
&lt;p&gt;El juicio final debe seguir en manos de profesionales. El rol del Agent se parece más al de asistente, analista y acelerador de procesos.&lt;/p&gt;
&lt;h2 id=&#34;qué-sugiere-para-la-adopción-empresarial&#34;&gt;Qué sugiere para la adopción empresarial
&lt;/h2&gt;&lt;p&gt;La parte más valiosa de este repositorio es que convierte &amp;ldquo;capacidad del modelo&amp;rdquo; en &amp;ldquo;componentes de negocio&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Los proyectos internos de IA suelen encontrarse con el mismo problema: la demo del modelo se ve bien, pero al conectarlo con negocio real cuesta reutilizarlo. Un equipo escribe un conjunto de prompts, otro equipo escribe otro. Un sistema conecta una base de datos, otro vuelve a crear su propia interfaz. Los requisitos de seguridad y auditoría quedan dispersos.&lt;/p&gt;
&lt;p&gt;Un enfoque más sólido es dividir las capacidades en varios tipos de activos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Agents orientados a roles;&lt;/li&gt;
&lt;li&gt;Skills orientados a procesos;&lt;/li&gt;
&lt;li&gt;Conectores MCP para integración con sistemas;&lt;/li&gt;
&lt;li&gt;Reglas de ejecución para permisos y auditoría;&lt;/li&gt;
&lt;li&gt;Plantillas y checklists para salidas de negocio.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La ventaja es que la empresa no empieza cada vez desde &amp;ldquo;crear un chatbot&amp;rdquo;. Va acumulando activos de workflow de IA que se pueden mantener.&lt;/p&gt;
&lt;h2 id=&#34;no-se-pueden-ignorar-cumplimiento-y-responsabilidad&#34;&gt;No se pueden ignorar cumplimiento y responsabilidad
&lt;/h2&gt;&lt;p&gt;El malentendido más común sobre los Agents financieros es confundir &amp;ldquo;puede generar análisis&amp;rdquo; con &amp;ldquo;puede sustituir decisiones&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;En servicios financieros, la salida de IA normalmente debe tratarse como material de apoyo. Puede ordenar hechos, generar borradores, señalar riesgos y completar documentos, pero no puede saltarse investigación, control de riesgos, legal, cumplimiento ni requisitos de idoneidad del cliente. Especialmente cuando hay recomendaciones de inversión, decisiones de trading, asignación de activos o verificación de identidad, deben mantenerse aprobación humana y cadena de responsabilidad.&lt;/p&gt;
&lt;p&gt;Por eso los Agents empresariales no pueden evaluarse solo por la calidad de sus respuestas. También hay que mirar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si las fuentes de datos son fiables;&lt;/li&gt;
&lt;li&gt;Si referencias y evidencia son trazables;&lt;/li&gt;
&lt;li&gt;Si las llamadas a herramientas quedan registradas;&lt;/li&gt;
&lt;li&gt;Si los datos sensibles están restringidos;&lt;/li&gt;
&lt;li&gt;Si la salida pasa por confirmación humana;&lt;/li&gt;
&lt;li&gt;Si los resultados erróneos pueden detectarse y revertirse.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si estas preguntas no se resuelven, cuanto más automático sea el Agent, mayor será el radio de riesgo.&lt;/p&gt;
&lt;h2 id=&#34;conclusión&#34;&gt;Conclusión
&lt;/h2&gt;&lt;p&gt;anthropics/financial-services se parece más a una implementación de referencia de Agents financieros que a un producto financiero listo para usar. Muestra una forma en que Anthropic piensa la adopción empresarial de IA: no crear solo asistentes de chat genéricos, sino organizar Agents alrededor de roles concretos, procesos concretos, fuentes de datos concretas y límites de permisos concretos.&lt;/p&gt;
&lt;p&gt;Para instituciones financieras, puede servir como referencia para diseñar workflows internos de IA. Para desarrolladores, ofrece una muestra de arquitectura de Agents empresariales: Agents gestionan roles y tareas, Skills conservan procesos profesionales, Plugins y MCP conectan sistemas externos, y el modelo termina entrando en flujos reales de negocio.&lt;/p&gt;
&lt;p&gt;Si las primeras herramientas de IA resolvían &amp;ldquo;cómo hacer que el modelo responda preguntas&amp;rdquo;, proyectos como este se preocupan más por &amp;ldquo;cómo dejar que el modelo participe en el trabajo dentro de límites controlados&amp;rdquo;. Ahí está la verdadera dificultad de los Agents empresariales.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>DeepSeek-TUI: convertir DeepSeek V4 en un agente de programación en la terminal</title>
        <link>https://knightli.com/es/2026/05/16/deepseek-tui-terminal-coding-agent/</link>
        <pubDate>Sat, 16 May 2026 22:41:41 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/16/deepseek-tui-terminal-coding-agent/</guid>
        <description>&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Hmbown/DeepSeek-TUI&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DeepSeek-TUI&lt;/a&gt; es un proyecto open source que lleva DeepSeek V4 al flujo de desarrollo en terminal. No es una simple carcasa de chat. Se parece más a un &amp;ldquo;agente de programación de línea de comandos&amp;rdquo;, como Claude Code o Codex CLI: puede leer archivos, modificar código, ejecutar comandos, llamar herramientas y seguir avanzando tareas desde una TUI.&lt;/p&gt;
&lt;p&gt;Si ya estás acostumbrado a alternar entre editor y terminal, el valor de este tipo de herramienta es directo: no tienes que copiar código una y otra vez en una ventana de chat web, ni describir manualmente toda la estructura del proyecto. Le das una tarea, puede leer el contexto del workspace actual, planificar pasos, aplicar cambios y devolverte el resultado para revisión.&lt;/p&gt;
&lt;h2 id=&#34;resuelve-el-problema-de-entrada-para-usar-deepseek&#34;&gt;Resuelve el problema de entrada para usar DeepSeek
&lt;/h2&gt;&lt;p&gt;Los modelos DeepSeek ya ofrecen buenas capacidades de razonamiento y código, pero para llevar esa capacidad a un flujo real de desarrollo hace falta una capa de ingeniería.&lt;/p&gt;
&lt;p&gt;El chat web sirve para hacer preguntas, pero no para editar proyectos durante mucho tiempo. La API sirve para integraciones, pero un desarrollador común tendría que construir por su cuenta llamadas a herramientas, gestión de contexto, operaciones de archivos y control de permisos. DeepSeek-TUI intenta cubrir esa capa: envolver DeepSeek V4 como un Agent que puede trabajar dentro de la terminal.&lt;/p&gt;
&lt;p&gt;Según la presentación del proyecto, sus capacidades principales incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Interfaz TUI en terminal;&lt;/li&gt;
&lt;li&gt;Conversación y ejecución de tareas para DeepSeek V4;&lt;/li&gt;
&lt;li&gt;Llamadas a herramientas y operaciones de archivos;&lt;/li&gt;
&lt;li&gt;Soporte de contexto de 1M;&lt;/li&gt;
&lt;li&gt;Modo Auto;&lt;/li&gt;
&lt;li&gt;Subagentes;&lt;/li&gt;
&lt;li&gt;Ejecución en sandbox;&lt;/li&gt;
&lt;li&gt;Cola de tareas persistente.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El objetivo de combinar estas funciones no es que el modelo responda de forma más humana, sino que pueda entrar con más facilidad en el entorno de desarrollo.&lt;/p&gt;
&lt;h2 id=&#34;una-tui-encaja-mejor-con-tareas-largas-que-una-cli-textual&#34;&gt;Una TUI encaja mejor con tareas largas que una CLI textual
&lt;/h2&gt;&lt;p&gt;Muchas herramientas AI CLI empiezan con interacción de texto puro: escribes un prompt, esperas la salida, copias comandos o añades más contexto. Es simple, pero cuando la tarea se alarga, se vuelve confuso.&lt;/p&gt;
&lt;p&gt;La ventaja de una TUI es que puede colocar conversaciones, archivos, resultados de ejecución y estado de tareas en una interfaz más estable. Para un Agent de programación, eso importa. Una tarea de código rara vez es una sola pregunta y respuesta. Suele incluir:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Entender la estructura del proyecto;&lt;/li&gt;
&lt;li&gt;Encontrar archivos relevantes;&lt;/li&gt;
&lt;li&gt;Modificar código;&lt;/li&gt;
&lt;li&gt;Ejecutar tests o comandos;&lt;/li&gt;
&lt;li&gt;Corregir según los errores;&lt;/li&gt;
&lt;li&gt;Resumir los cambios.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si la interfaz solo es una cadena de logs, al usuario le cuesta ver en qué punto está el Agent. Una TUI al menos ofrece un lugar mejor para observar y tomar el control.&lt;/p&gt;
&lt;h2 id=&#34;el-modo-auto-conviene-para-tareas-con-límites-claros&#34;&gt;El modo Auto conviene para tareas con límites claros
&lt;/h2&gt;&lt;p&gt;El modo Auto que menciona DeepSeek-TUI encaja con trabajos de límites claros. Por ejemplo, arreglar un bug pequeño, añadir un script, cambiar una configuración, ordenar documentos o implementar una función local.&lt;/p&gt;
&lt;p&gt;Estas tareas tienen algo en común: el objetivo es claro, la forma de comprobarlo también, y el alcance del impacto es controlable. El Agent puede revisar archivos, editarlos, ejecutar comandos y luego entregar el resultado al usuario para confirmación.&lt;/p&gt;
&lt;p&gt;Pero el modo Auto no debe significar permisos ilimitados. En proyectos reales, borrar archivos, hacer refactors masivos, migrar bases de datos o ejecutar despliegues debería requerir confirmación explícita. La eficiencia de los Agents de programación viene de la automatización, pero el riesgo también. Cuanto más pueda ejecutar comandos una herramienta, más necesita sandbox, límites de permisos y revisión humana.&lt;/p&gt;
&lt;h2 id=&#34;los-subagentes-importan-porque-dividen-tareas&#34;&gt;Los subagentes importan porque dividen tareas
&lt;/h2&gt;&lt;p&gt;Los subagentes no son un concepto nuevo, pero son útiles en escenarios de código.&lt;/p&gt;
&lt;p&gt;Una tarea algo compleja suele requerir varios tipos de trabajo a la vez: alguien lee el código, alguien cambia la implementación, alguien revisa tests y alguien ordena documentación. Los sistemas multi-agent tradicionales a menudo parecen llamativos porque no tienen herramientas reales ni un workspace real; solo discuten dentro de una conversación.&lt;/p&gt;
&lt;p&gt;Si los subagentes se combinan con sistema de archivos, ejecución de comandos y cola de tareas, se parecen más a un mecanismo de descomposición de trabajo. Por ejemplo, un subagente analiza dependencias, otro modifica un módulo concreto y el agente principal integra el resultado. Así se reduce el problema de meter demasiada información no relacionada en un solo contexto.&lt;/p&gt;
&lt;p&gt;Por supuesto, los subagentes también añaden costo: más tokens, estado más complejo y límites de responsabilidad más difíciles de seguir. Por eso encajan mejor con tareas de complejidad media o superior, no necesariamente con cada cambio pequeño.&lt;/p&gt;
&lt;h2 id=&#34;el-contexto-de-1m-no-es-magia-pero-ayuda-a-leer-proyectos&#34;&gt;El contexto de 1M no es magia, pero ayuda a leer proyectos
&lt;/h2&gt;&lt;p&gt;El contexto de 1M suena exagerado, pero en programación no es solo una cifra de marketing.&lt;/p&gt;
&lt;p&gt;El contexto de un repositorio real está fragmentado: README, archivos de configuración, definiciones de tipos, tests, cadenas de llamadas, convenciones históricas y logs de errores pueden influir en un cambio. Un contexto más largo puede reducir el problema de editar tras mirar solo una parte local, y ayudar al modelo a conservar más restricciones del proyecto.&lt;/p&gt;
&lt;p&gt;Aun así, más contexto no significa mejor juicio automáticamente. Las tareas de código siguen necesitando búsqueda, filtrado y verificación. Meter todo el proyecto en el contexto no siempre es mejor que leer con precisión los archivos relevantes. Un buen Agent de programación debería tratar el contexto largo como un buffer, no como un atajo que sustituye el criterio de ingeniería.&lt;/p&gt;
&lt;h2 id=&#34;para-quién-es-más-útil&#34;&gt;Para quién es más útil
&lt;/h2&gt;&lt;p&gt;DeepSeek-TUI encaja mejor con varios grupos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Desarrolladores que quieren usar DeepSeek para tareas de código en la terminal;&lt;/li&gt;
&lt;li&gt;Personas que no quieren construir por su cuenta frameworks de llamadas a herramientas y operaciones de archivos;&lt;/li&gt;
&lt;li&gt;Usuarios que ya conocen Claude Code o Codex CLI y quieren probar una entrada basada en DeepSeek;&lt;/li&gt;
&lt;li&gt;Quienes necesitan contexto de proyecto local, no solo preguntar por fragmentos de código en una web;&lt;/li&gt;
&lt;li&gt;Desarrolladores que quieren llevar el flujo de AI Coding al entorno de línea de comandos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si solo preguntas de vez en cuando cómo escribir una función, el chat web basta. Si quieres que el modelo participe directamente en cambios del proyecto, un Agent de terminal tiene más sentido.&lt;/p&gt;
&lt;h2 id=&#34;riesgos-a-vigilar&#34;&gt;Riesgos a vigilar
&lt;/h2&gt;&lt;p&gt;Hay tres cosas especialmente importantes en este tipo de herramienta.&lt;/p&gt;
&lt;p&gt;La primera son los permisos. Si una herramienta puede leer y escribir archivos o ejecutar comandos, hay que saber a qué puede acceder por defecto, si puede borrar archivos, si puede conectarse a la red y si los comandos peligrosos requieren confirmación.&lt;/p&gt;
&lt;p&gt;La segunda es la reversibilidad. Antes de usarla, conviene mantener limpio el árbol de trabajo de Git, para que cada cambio del Agent pueda verse claramente con &lt;code&gt;git diff&lt;/code&gt;. No conviene dejar que un Agent edite automáticamente un proyecto con muchos cambios sin commit.&lt;/p&gt;
&lt;p&gt;La tercera es la verificación. Que el Agent escriba código no significa que la tarea esté terminada. Tests, builds, lint y review humana siguen siendo necesarios. Las herramientas de AI Coding pueden acelerar el avance, pero no sustituyen la confirmación final de ingeniería.&lt;/p&gt;
&lt;h2 id=&#34;conclusión&#34;&gt;Conclusión
&lt;/h2&gt;&lt;p&gt;La importancia de DeepSeek-TUI no está en añadir otro cliente de chat, sino en poner DeepSeek V4 dentro de un entorno de terminal más cercano al trabajo real de desarrollo.&lt;/p&gt;
&lt;p&gt;Para los desarrolladores, la capacidad del modelo es solo el primer paso. La experiencia real depende de si puede leer el proyecto, modificar archivos con seguridad, ejecutar comandos de verificación, mantener estado en tareas largas y permitir que el usuario tome el control en cualquier momento.&lt;/p&gt;
&lt;p&gt;Si quieres usar DeepSeek para cambios diarios de código, lectura de proyectos y tareas de desarrollo automatizadas, DeepSeek-TUI merece atención. La dirección también está clara: las herramientas de AI Coding están pasando de &amp;ldquo;responder preguntas de código&amp;rdquo; a &amp;ldquo;participar en la ejecución de proyectos&amp;rdquo;.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Acceso remoto móvil de Codex: sigue tareas de programación en Mac desde la app ChatGPT</title>
        <link>https://knightli.com/es/2026/05/16/codex-mobile-remote-access-chatgpt-app/</link>
        <pubDate>Sat, 16 May 2026 17:42:40 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/16/codex-mobile-remote-access-chatgpt-app/</guid>
        <description>&lt;p&gt;OpenAI llevó &lt;code&gt;Codex remote access&lt;/code&gt; a la app móvil de ChatGPT a mediados de mayo de 2026. La idea no es programar en el teléfono, sino seguir y dirigir Codex mientras trabaja en un Mac.&lt;/p&gt;
&lt;p&gt;Codex sigue leyendo el proyecto, ejecutando comandos, editando archivos y revisando pruebas en el ordenador. El móvil sirve para revisar progreso, responder preguntas, añadir instrucciones y aprobar acciones.&lt;/p&gt;
&lt;h2 id=&#34;qué-puede-hacer&#34;&gt;Qué puede hacer
&lt;/h2&gt;&lt;p&gt;Según la documentación de OpenAI, desde el móvil puedes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;iniciar nuevos threads en proyectos del host o continuar existentes;&lt;/li&gt;
&lt;li&gt;enviar instrucciones, responder preguntas y ajustar la dirección del trabajo;&lt;/li&gt;
&lt;li&gt;aprobar comandos y otras acciones;&lt;/li&gt;
&lt;li&gt;revisar salidas, diffs, resultados de pruebas, terminal y capturas;&lt;/li&gt;
&lt;li&gt;recibir notificaciones cuando Codex termina o necesita atención;&lt;/li&gt;
&lt;li&gt;cambiar entre hosts y threads conectados.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No es solo una ventana de chat pequeña: conecta con el contexto real de trabajo de Codex en el host.&lt;/p&gt;
&lt;h2 id=&#34;requisitos&#34;&gt;Requisitos
&lt;/h2&gt;&lt;p&gt;Necesitas acceso a Codex en la misma cuenta y workspace de ChatGPT en el móvil y en el Mac. También necesitas la última app móvil de ChatGPT en iOS o Android.&lt;/p&gt;
&lt;p&gt;El host actualmente debe ser un Mac despierto, en línea, ejecutando Codex App y con la misma cuenta y workspace. La configuración móvil y el control del dispositivo requieren por ahora &lt;code&gt;Codex App for macOS&lt;/code&gt;; no se configuran desde Codex CLI ni desde la IDE Extension.&lt;/p&gt;
&lt;p&gt;Si tu cuenta usa MFA, SSO o passkey, debes completar ese flujo. En un workspace de ChatGPT, un administrador puede tener que habilitar Remote Control access.&lt;/p&gt;
&lt;h2 id=&#34;límites&#34;&gt;Límites
&lt;/h2&gt;&lt;p&gt;Primero, requiere un &lt;code&gt;macOS host&lt;/code&gt;. El teléfono se conecta a Codex App en un Mac, no directamente a Codex CLI, a la IDE Extension ni a cualquier equipo Linux / Windows.&lt;/p&gt;
&lt;p&gt;Segundo, el host debe estar en línea. El Mac debe permanecer despierto, conectado y con Codex App abierto. Si duerme, pierde red o cierra Codex, la sesión remota puede desconectarse.&lt;/p&gt;
&lt;p&gt;Tercero, la conexión usa QR. Debes abrir &lt;code&gt;Set up Codex mobile&lt;/code&gt; en el Mac, escanear el código y completar la vinculación en ChatGPT.&lt;/p&gt;
&lt;p&gt;Cuarto, las acciones remotas siguen pasando por aprobaciones. Antes de aprobar desde el móvil, conviene leer qué quiere hacer Codex, sobre todo si implica terminal, cambios de archivos, pruebas o acceso externo.&lt;/p&gt;
&lt;h2 id=&#34;cómo-conectarlo&#34;&gt;Cómo conectarlo
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;Abre Codex en el Mac.&lt;/li&gt;
&lt;li&gt;Elige &lt;code&gt;Set up Codex mobile&lt;/code&gt; en la barra lateral.&lt;/li&gt;
&lt;li&gt;Codex activa el acceso remoto para ese host y muestra un QR.&lt;/li&gt;
&lt;li&gt;Escanea el QR con el teléfono para abrir el flujo en ChatGPT.&lt;/li&gt;
&lt;li&gt;Confirma la misma cuenta y workspace.&lt;/li&gt;
&lt;li&gt;Completa MFA, SSO o passkey si hace falta.&lt;/li&gt;
&lt;li&gt;El Mac aparecerá en Codex dentro del móvil.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Después puedes gestionar dispositivos en &lt;code&gt;Settings &amp;gt; Connections&lt;/code&gt; desde Codex en el Mac, y revisar opciones como mantener el equipo despierto, Computer Use o Chrome extension.&lt;/p&gt;
&lt;h2 id=&#34;para-qué-sirve-el-móvil&#34;&gt;Para qué sirve el móvil
&lt;/h2&gt;&lt;p&gt;El móvil sirve sobre todo para aprobar, corregir dirección y revisar resultados. Puedes aprobar comandos, añadir una instrucción cuando Codex se equivoca o falla una prueba, y mirar diffs, logs de terminal, pruebas y capturas sin volver al escritorio.&lt;/p&gt;
&lt;p&gt;El valor no es escribir código en el móvil, sino convertirlo en una consola ligera para tareas de ingeniería que siguen ejecutándose en el host.&lt;/p&gt;
&lt;h2 id=&#34;problemas-comunes&#34;&gt;Problemas comunes
&lt;/h2&gt;&lt;p&gt;Si el host no aparece, confirma que Codex App sigue abierto en el Mac, que &lt;code&gt;Allow other devices to connect&lt;/code&gt; está activado y que ambos dispositivos usan la misma cuenta y workspace.&lt;/p&gt;
&lt;p&gt;Si no aparece una solicitud de aprobación, abre Codex dentro de la app móvil de ChatGPT, vuelve a escanear el QR o reinicia la configuración desde el host. En equipos, revisa si el administrador habilitó Remote Control access.&lt;/p&gt;
&lt;p&gt;Si la sesión se desconecta, revisa si el Mac se durmió, perdió red o cerró Codex App. Si la autenticación bloquea la configuración, completa MFA, SSO o passkey primero.&lt;/p&gt;
&lt;h2 id=&#34;cuándo-conviene&#34;&gt;Cuándo conviene
&lt;/h2&gt;&lt;p&gt;Encaja bien si ejecutas tareas largas con Codex, necesitas aprobar comandos lejos del escritorio, gestionas varios proyectos o threads y usas Mac como máquina principal.&lt;/p&gt;
&lt;p&gt;Encaja peor si trabajas principalmente en Windows o Linux, solo usas Codex CLI o IDE Extension, esperas un entorno de desarrollo completo en el teléfono o tienes una red inestable.&lt;/p&gt;
&lt;h2 id=&#34;mi-lectura&#34;&gt;Mi lectura
&lt;/h2&gt;&lt;p&gt;El acceso remoto móvil de Codex no mueve el desarrollo al teléfono. Hace más manejables los momentos en los que Codex se detiene por aprobación, preguntas, fallos de pruebas o cambios de dirección.&lt;/p&gt;
&lt;p&gt;Si ya usas Codex intensivamente en Mac, merece la pena activarlo. Si solo haces preguntas de código ocasionales, su valor será menos evidente.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://help.openai.com/en/articles/6825453-chatgpt-release-notes&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;OpenAI Help Center: ChatGPT Release Notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://developers.openai.com/codex/remote-connections&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;OpenAI Developers: Codex Remote Connections&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Qué es ChatGPT File Library: almacenamiento, límites y privacidad</title>
        <link>https://knightli.com/es/2026/05/16/chatgpt-file-library-storage-limits-privacy/</link>
        <pubDate>Sat, 16 May 2026 17:40:14 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/16/chatgpt-file-library-storage-limits-privacy/</guid>
        <description>&lt;p&gt;&lt;code&gt;ChatGPT File Library&lt;/code&gt; es la biblioteca de archivos dentro de ChatGPT.&lt;/p&gt;
&lt;p&gt;Antes, un archivo subido a una conversación servía sobre todo para ese chat. Con File Library, los archivos que subes o que ChatGPT crea pueden guardarse en tu cuenta, encontrarse después, descargarse, eliminarse o reutilizarse en una nueva conversación.&lt;/p&gt;
&lt;p&gt;Esto convierte ChatGPT en un espacio de trabajo persistente, no solo en una ventana de chat temporal.&lt;/p&gt;
&lt;h2 id=&#34;disponibilidad-más-reciente&#34;&gt;Disponibilidad más reciente
&lt;/h2&gt;&lt;p&gt;Según las ChatGPT Release Notes del 14 de mayo de 2026, File Library se está ampliando a usuarios Free y Go, incluidos usuarios del Espacio Económico Europeo. OpenAI también añadió gestión de almacenamiento por plan.&lt;/p&gt;
&lt;p&gt;Hay un matiz: la página específica de File storage and Library todavía mostraba, al revisarla, una disponibilidad anterior. Por eso este artículo usa como referencia principal las Release Notes más recientes. Que aparezca en tu cuenta depende del despliegue, la región y la versión de la app.&lt;/p&gt;
&lt;h2 id=&#34;qué-archivos-guarda&#34;&gt;Qué archivos guarda
&lt;/h2&gt;&lt;p&gt;ChatGPT puede guardar archivos que subes o creas, por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;documentos;&lt;/li&gt;
&lt;li&gt;hojas de cálculo;&lt;/li&gt;
&lt;li&gt;presentaciones;&lt;/li&gt;
&lt;li&gt;PDF;&lt;/li&gt;
&lt;li&gt;imágenes;&lt;/li&gt;
&lt;li&gt;archivos generados por ChatGPT.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Las imágenes generadas siguen apareciendo en la pestaña Images. File Library funciona como un lugar central para gestionar archivos subidos y generados.&lt;/p&gt;
&lt;p&gt;Si sueles pedir a ChatGPT que analice PDF, ordene tablas, cree documentos o trabaje con presentaciones, evita subir lo mismo una y otra vez.&lt;/p&gt;
&lt;h2 id=&#34;añadir-archivos-a-un-chat-nuevo&#34;&gt;Añadir archivos a un chat nuevo
&lt;/h2&gt;&lt;p&gt;En clientes compatibles, abre el menú de adjuntos o añadir cerca del cuadro de entrada, elige &lt;code&gt;Add from library&lt;/code&gt; y selecciona el archivo.&lt;/p&gt;
&lt;p&gt;Las Release Notes también mencionan Library y Recent files en Web, iOS y Android, así que el móvil puede reutilizar archivos guardados o recientes.&lt;/p&gt;
&lt;h2 id=&#34;buscar-y-gestionar&#34;&gt;Buscar y gestionar
&lt;/h2&gt;&lt;p&gt;En la web, Library está en la barra lateral izquierda. Permite ver archivos subidos y generados, filtrar por tipo u origen y gestionar el almacenamiento.&lt;/p&gt;
&lt;p&gt;La página de ayuda menciona filtros como archivos subidos, archivos generados, imágenes, documentos, hojas de cálculo, presentaciones y PDF.&lt;/p&gt;
&lt;p&gt;La gestión de almacenamiento está en &lt;code&gt;Settings &amp;gt; Storage&lt;/code&gt;, y también puedes eliminar archivos directamente desde Library.&lt;/p&gt;
&lt;h2 id=&#34;capacidad-por-plan&#34;&gt;Capacidad por plan
&lt;/h2&gt;&lt;p&gt;Las Release Notes del 14 de mayo de 2026 indican:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Plan&lt;/th&gt;
          &lt;th&gt;Capacidad de File Library&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Free&lt;/td&gt;
          &lt;td&gt;500 MB&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Go&lt;/td&gt;
          &lt;td&gt;4 GB&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Plus&lt;/td&gt;
          &lt;td&gt;20 GB&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Business&lt;/td&gt;
          &lt;td&gt;20 GB&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Pro&lt;/td&gt;
          &lt;td&gt;100 GB&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;La capacidad incluye archivos subidos y archivos creados por ChatGPT, como documentos, hojas, presentaciones e imágenes.&lt;/p&gt;
&lt;h2 id=&#34;límites-por-archivo&#34;&gt;Límites por archivo
&lt;/h2&gt;&lt;p&gt;La ayuda de OpenAI enumera estos límites:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;archivos subidos a GPT o conversaciones de ChatGPT: hasta 512 MB cada uno;&lt;/li&gt;
&lt;li&gt;documentos de texto: hasta 2 millones de tokens;&lt;/li&gt;
&lt;li&gt;CSV u hojas de cálculo: normalmente unos 50 MB, según el tamaño de las filas;&lt;/li&gt;
&lt;li&gt;imágenes: hasta 20 MB cada una.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estos límites son distintos de la capacidad total de la cuenta.&lt;/p&gt;
&lt;h2 id=&#34;borrar-y-descargar&#34;&gt;Borrar y descargar
&lt;/h2&gt;&lt;p&gt;Los archivos permanecen en tu cuenta hasta que los borras.&lt;/p&gt;
&lt;p&gt;Desde Library puedes seleccionar un archivo y usar borrar o el icono de papelera. La ayuda de OpenAI indica que los archivos eliminados se retiran de la cuenta inmediatamente y se programan para eliminación permanente de los sistemas de OpenAI en un plazo de 30 días, salvo excepciones de anonimización, seguridad u obligaciones legales.&lt;/p&gt;
&lt;p&gt;También puedes descargar archivos desde Library.&lt;/p&gt;
&lt;h2 id=&#34;temporary-chat-no-guarda-archivos&#34;&gt;Temporary Chat no guarda archivos
&lt;/h2&gt;&lt;p&gt;Los archivos subidos en Temporary Chat no se guardan en la cuenta ni en Library.&lt;/p&gt;
&lt;p&gt;File Library está pensado para reutilización a largo plazo. Temporary Chat encaja mejor para tareas temporales, sensibles o que no deberían dejar contexto persistente.&lt;/p&gt;
&lt;h2 id=&#34;datos-y-entrenamiento&#34;&gt;Datos y entrenamiento
&lt;/h2&gt;&lt;p&gt;La ayuda de OpenAI explica que archivos y chats siguen tus ajustes y controles de datos.&lt;/p&gt;
&lt;p&gt;Si Memory está activado, archivos y conversaciones pueden ayudar a ChatGPT a recordar información útil entre chats. En servicios de consumo, si &lt;code&gt;Improve the model for everyone&lt;/code&gt; está activado, OpenAI puede usar contenido enviado a ChatGPT, incluidos archivos subidos, para mejorar modelos. Se puede desactivar en &lt;code&gt;Settings &amp;gt; Data Controls&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;File Library no es una carpeta local: es una función de cuenta en la nube. Conviene pensar qué documentos son adecuados para subir.&lt;/p&gt;
&lt;h2 id=&#34;usos-recomendados&#34;&gt;Usos recomendados
&lt;/h2&gt;&lt;p&gt;Encaja bien para analizar PDF o informes de forma recurrente, reutilizar materiales de clase o reuniones, seguir editando documentos generados por ChatGPT, reutilizar la misma fuente en varios chats y convertir ChatGPT en un espacio ligero de trabajo documental.&lt;/p&gt;
&lt;p&gt;Encaja mal para documentos de identidad, contratos, historiales médicos, extractos financieros, copias de seguridad formales o documentos internos de empresa sin revisar antes los controles de datos.&lt;/p&gt;
&lt;h2 id=&#34;mi-lectura&#34;&gt;Mi lectura
&lt;/h2&gt;&lt;p&gt;El valor de ChatGPT File Library no es solo tener una lista de archivos. Cambia ChatGPT de una herramienta de conversación puntual a un espacio con materiales persistentes.&lt;/p&gt;
&lt;p&gt;Eso exige nuevos hábitos: limpiar archivos antiguos, vigilar la capacidad, distinguir chats normales de Temporary Chat y revisar Data Controls.&lt;/p&gt;
&lt;p&gt;Si usas ChatGPT a menudo con documentos, tablas y materiales de investigación, File Library ahorra tiempo. Si solo subes archivos sensibles de vez en cuando, úsalo con más cautela.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://help.openai.com/en/articles/20001052-file-storage-and-library-in-chatgpt&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;OpenAI Help Center: File storage and Library in ChatGPT&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://help.openai.com/en/articles/6825453-chatgpt-release-notes&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;OpenAI Help Center: ChatGPT Release Notes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>No subas API Keys a GitHub: guía para evitar fugas de secretos al programar con IA</title>
        <link>https://knightli.com/es/2026/05/16/ai-coding-api-key-leak-github/</link>
        <pubDate>Sat, 16 May 2026 16:26:50 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/16/ai-coding-api-key-leak-github/</guid>
        <description>&lt;p&gt;La programación con IA reduce la barrera para crear software, pero también lleva muchos problemas de seguridad de ingeniería a principiantes y usuarios no técnicos.&lt;/p&gt;
&lt;p&gt;Uno de los incidentes más comunes es subir a un repositorio público un &lt;code&gt;API Key&lt;/code&gt;, &lt;code&gt;Secret&lt;/code&gt;, &lt;code&gt;Token&lt;/code&gt;, cadena de conexión a una base de datos o archivo &lt;code&gt;.env&lt;/code&gt;. En local, estos archivos parecen simples configuraciones para que la aplicación funcione. En un repositorio público de GitHub, se convierten en credenciales que pueden ser escaneadas, llamadas y abusadas automáticamente.&lt;/p&gt;
&lt;p&gt;Las fugas de secretos no son raras. El informe 2026 de GitGuardian indica que los commits públicos de GitHub en 2025 contenían unos 28,65 millones de nuevas credenciales hardcodeadas, y que las fugas de credenciales relacionadas con servicios de IA crecieron un 81% interanual. El problema ya no es solo descuido: la programación con IA, los prototipos rápidos y el alojamiento público están amplificando la escala.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-los-principiantes-filtran-claves-con-más-facilidad&#34;&gt;Por qué los principiantes filtran claves con más facilidad
&lt;/h2&gt;&lt;p&gt;Muchos agentes de IA y pequeñas herramientas tienen dos “repositorios”: uno en el disco local y otro visible para todo el mundo en GitHub. El problema es que los principiantes a menudo no distinguen bien esa frontera.&lt;/p&gt;
&lt;p&gt;Durante el desarrollo local, &lt;code&gt;config.json&lt;/code&gt;, &lt;code&gt;.env&lt;/code&gt; y &lt;code&gt;settings.yaml&lt;/code&gt; pueden contener API keys. Después de ejecutar &lt;code&gt;git add .&lt;/code&gt;, &lt;code&gt;git commit&lt;/code&gt; y &lt;code&gt;git push&lt;/code&gt;, esos archivos pueden subirse completos. Cuando el repositorio es público, los bots de escaneo no necesitan entender tu negocio: solo necesitan detectar un patrón de secreto.&lt;/p&gt;
&lt;p&gt;La programación con IA agrava esto:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Los ejemplos generados por IA pueden poner &lt;code&gt;OPENAI_API_KEY = &amp;quot;sk-...&amp;quot;&lt;/code&gt; directamente en el código fuente.&lt;/li&gt;
&lt;li&gt;Para “hacer que funcione”, los principiantes tienden a hardcodear secretos en frontend, scripts o archivos de configuración.&lt;/li&gt;
&lt;li&gt;Muchas plataformas de vibe coding despliegan aplicaciones directamente sin pasar por la protección de push de GitHub.&lt;/li&gt;
&lt;li&gt;El usuario puede no saber qué archivos, APIs o permisos predeterminados existen dentro del proyecto generado por IA.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;En resumen, la IA puede ayudarte a crear algo que funciona más rápido. No asume automáticamente la responsabilidad de seguridad.&lt;/p&gt;
&lt;h2 id=&#34;gitignore-no-es-decoración&#34;&gt;&lt;code&gt;.gitignore&lt;/code&gt; no es decoración
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Git&lt;/code&gt; gestiona el historial de versiones, &lt;code&gt;GitHub&lt;/code&gt; aloja el código y &lt;code&gt;.gitignore&lt;/code&gt; le dice a Git qué archivos no deben entrar en ese historial.&lt;/p&gt;
&lt;p&gt;Un proyecto básico de IA debería ignorar al menos:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;.env
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;.env.*
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;*.key
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;*.pem
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;config.local.*
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;secrets.*
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;credentials.*
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Pero &lt;code&gt;.gitignore&lt;/code&gt; no basta. Solo evita que archivos no rastreados se añadan en el futuro. Si un archivo con secretos ya fue committeado, añadirlo después a &lt;code&gt;.gitignore&lt;/code&gt; no lo elimina del historial.&lt;/p&gt;
&lt;p&gt;Un hábito más seguro:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Crear &lt;code&gt;.gitignore&lt;/code&gt; al inicio del proyecto.&lt;/li&gt;
&lt;li&gt;Guardar API keys solo en variables de entorno o configuración local.&lt;/li&gt;
&lt;li&gt;Proporcionar &lt;code&gt;.env.example&lt;/code&gt; con placeholders, no secretos reales.&lt;/li&gt;
&lt;li&gt;Ejecutar un escáner de secretos antes de hacer commit, como &lt;code&gt;gitleaks&lt;/code&gt;, &lt;code&gt;trufflehog&lt;/code&gt; o GitHub Secret Scanning.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;borrar-el-archivo-no-basta&#34;&gt;Borrar el archivo no basta
&lt;/h2&gt;&lt;p&gt;Si una clave ya llegó a un repositorio público, la primera reacción no debería ser “borro el archivo y hago otro commit”. Primero revoca o rota la clave.&lt;/p&gt;
&lt;p&gt;Git registra el historial. Aunque el último commit elimine el archivo, los commits antiguos, forks, clones, cachés y sistemas de escaneo pueden conservarlo. La documentación de GitHub también recomienda revocar o rotar contraseñas, tokens y credenciales como primer paso.&lt;/p&gt;
&lt;p&gt;Orden recomendado:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Revoca la clave antigua en el panel del proveedor y genera una nueva.&lt;/li&gt;
&lt;li&gt;Revisa facturación, registros de uso, IPs sospechosas y tráfico inusual.&lt;/li&gt;
&lt;li&gt;Elimina secretos hardcodeados y usa variables de entorno o un gestor de secretos.&lt;/li&gt;
&lt;li&gt;Limpia archivos sensibles del historial con &lt;code&gt;git filter-repo&lt;/code&gt; o BFG.&lt;/li&gt;
&lt;li&gt;Activa GitHub Secret Scanning y Push Protection.&lt;/li&gt;
&lt;li&gt;Revisa CI/CD, plataformas de despliegue, funciones cloud y artefactos frontend por si contienen la clave antigua.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;En servicios como OpenAI, Anthropic, DeepSeek, proveedores cloud, pagos, correo o bases de datos, una clave filtrada puede provocar algo más que una factura inesperada: lectura de datos, abuso del servicio, contaminación de la cadena de suministro o bloqueo de cuentas.&lt;/p&gt;
&lt;h2 id=&#34;los-secretos-reales-no-van-en-el-frontend&#34;&gt;Los secretos reales no van en el frontend
&lt;/h2&gt;&lt;p&gt;Muchos principiantes ponen API keys en JavaScript del frontend porque la página funciona:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;apiKey&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;sk-xxxxxxxx&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Eso equivale prácticamente a publicarlas. El código del navegador, las peticiones de red, los Source Map y los artefactos de build se pueden inspeccionar. Cualquier clave que deba ser secreta no debe aparecer en el cliente.&lt;/p&gt;
&lt;p&gt;La forma correcta es que el frontend llame a tu propio backend, y que el backend lea variables de entorno y llame a la API externa:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// frontend
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;fetch&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;/api/chat&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nx&#34;&gt;method&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;POST&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nx&#34;&gt;body&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;JSON&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;stringify&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;({&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;message&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;})&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El servidor usa la variable de entorno:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// server
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;apiKey&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;process&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;env&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;OPENAI_API_KEY&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Esto mantiene el secreto en el entorno del servidor y evita exponerlo a todos los visitantes.&lt;/p&gt;
&lt;h2 id=&#34;vibe-coding-no-elimina-la-responsabilidad-de-seguridad&#34;&gt;Vibe Coding no elimina la responsabilidad de seguridad
&lt;/h2&gt;&lt;p&gt;El problema del vibe coding no se limita a GitHub. Muchas aplicaciones se publican directamente desde plataformas de programación con IA a internet, sin revisión de código, escaneo de repositorio ni pruebas de seguridad tradicionales.&lt;/p&gt;
&lt;p&gt;Investigaciones recientes de RedAccess encontraron una gran cantidad de activos públicos generados o alojados por herramientas de programación con IA, y algunos exponían datos corporativos, información personal o archivos internos. La lección es clara: cuando “se puede desplegar” se vuelve demasiado fácil, se olvida preguntar “¿debería ser público?”, “¿debería ser solo interno?” y “¿tiene control de acceso?”.&lt;/p&gt;
&lt;p&gt;Antes de publicar una app generada por IA, pregunta:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;¿Esta aplicación necesita realmente acceso público?&lt;/li&gt;
&lt;li&gt;¿Tiene login, autenticación y separación de permisos?&lt;/li&gt;
&lt;li&gt;¿Expone URLs de bases de datos, API keys, tokens o webhooks en el frontend?&lt;/li&gt;
&lt;li&gt;¿Tiene límites de cuota, dominio, permisos y caducidad para APIs externas?&lt;/li&gt;
&lt;li&gt;¿Puedes desactivar claves y revertir despliegues rápidamente tras un incidente?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;El código generado por IA también necesita revisión de seguridad. Cuanto menos código hayas escrito personalmente, menos deberías asumir que es seguro.&lt;/p&gt;
&lt;h2 id=&#34;comprobaciones-para-hacer-ahora&#34;&gt;Comprobaciones para hacer ahora
&lt;/h2&gt;&lt;p&gt;Empieza por tu cuenta de GitHub. Busca tu usuario junto con:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;API_KEY
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;SECRET
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;TOKEN
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;OPENAI_API_KEY
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ANTHROPIC_API_KEY
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;DEEPSEEK_API_KEY
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;.env
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;config
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;credentials
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si encuentras una clave real, rota primero y limpia después. Si entró alguna vez en un repositorio público, trátala como filtrada.&lt;/p&gt;
&lt;p&gt;Para futuros proyectos con IA, usa un proceso fijo:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Escribe &lt;code&gt;.gitignore&lt;/code&gt; antes del código de negocio.&lt;/li&gt;
&lt;li&gt;Usa &lt;code&gt;.env.example&lt;/code&gt; para documentar las variables necesarias.&lt;/li&gt;
&lt;li&gt;Pon todos los secretos en variables de entorno, no en el código fuente.&lt;/li&gt;
&lt;li&gt;Da a las API keys permisos mínimos, cuotas y fechas de caducidad.&lt;/li&gt;
&lt;li&gt;Activa GitHub Secret Scanning y Push Protection.&lt;/li&gt;
&lt;li&gt;Pide a la IA una revisión de seguridad antes de publicar, pero no confíes solo en su conclusión.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;El verdadero peligro de la programación con IA no es solo que escriba código incorrecto. Es que da a muchas personas, por primera vez, la capacidad de publicar rápidamente aplicaciones inseguras en internet. Escribir rápido no es el problema. Entregar secretos, datos y permisos sí lo es.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.gitguardian.com/state-of-secrets-sprawl-report-2026&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;GitGuardian State of Secrets Sprawl 2026&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.github.com/articles/remove-sensitive-data&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;GitHub Docs: Removing sensitive data from a repository&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.github.com/code-security/secret-scanning/push-protection-for-repositories-and-organizations&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;GitHub Docs: About push protection&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.axios.com/2026/05/07/loveable-replit-vibe-coding-privacy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Axios: AI vibe-coding apps leak sensitive data&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Guía de despliegue local de Claude Code &#43; Ollama: crear un asistente de programación AI gratuito con CC Switch</title>
        <link>https://knightli.com/es/2026/05/15/claude-code-ollama-cc-switch-local-agent/</link>
        <pubDate>Fri, 15 May 2026 23:27:50 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/15/claude-code-ollama-cc-switch-local-agent/</guid>
        <description>&lt;p&gt;&lt;code&gt;Claude Code&lt;/code&gt; se ha vuelto un asistente de programación AI muy popular. Su atractivo no está solo en conversar sobre código, sino en leer un proyecto, modificar archivos, ejecutar comandos, instalar dependencias y seguir corrigiendo errores como un Agent operativo.&lt;/p&gt;
&lt;p&gt;El problema es el coste. Cuando el proyecto crece, el contexto se alarga y varias rondas de trabajo tipo Agent pueden consumir cuota de API muy rápido. Si solo quieres experimentar, modificar herramientas pequeñas, escribir scripts o trabajar con proyectos privados locales, surge una pregunta natural: ¿se puede mantener la experiencia de Claude Code, pero ejecutar el modelo en local?&lt;/p&gt;
&lt;p&gt;La herramienta clave de esta configuración es &lt;code&gt;CC Switch&lt;/code&gt;. Permite que Claude Code se conecte al servicio local de &lt;code&gt;Ollama&lt;/code&gt; mediante una API compatible con OpenAI, de modo que las solicitudes se reenvían al modelo local en lugar de ir directamente a la API oficial de Claude.&lt;/p&gt;
&lt;h2 id=&#34;qué-problema-resuelve-esta-configuración&#34;&gt;Qué Problema Resuelve Esta Configuración
&lt;/h2&gt;&lt;p&gt;Puedes entender el flujo completo así:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Claude Code desktop
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+ CC Switch API forwarding layer
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+ Ollama local model
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Claude Code sigue encargándose del flujo de programación y de las operaciones sobre el proyecto. CC Switch gestiona la configuración del proveedor de modelos y la compatibilidad de API. Ollama ejecuta el modelo en la máquina local.&lt;/p&gt;
&lt;p&gt;Esto no significa que un modelo local se convierta de pronto en Claude. Su valor real está en poder usar el flujo tipo Agent de Claude Code en escenarios locales, privados, sin conexión o de menor coste.&lt;/p&gt;
&lt;h2 id=&#34;preparación-básica&#34;&gt;Preparación Básica
&lt;/h2&gt;&lt;p&gt;Antes de empezar, prepara estos componentes:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Instala &lt;code&gt;Git&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Instala &lt;code&gt;Ollama&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Descarga un modelo local adecuado para programación.&lt;/li&gt;
&lt;li&gt;Instala &lt;code&gt;CC Switch&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Ten Claude Code disponible en tu máquina.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Para el modelo, puedes empezar con opciones orientadas a código, como Qwen Coder, DeepSeek Coder u otros modelos con buen comportamiento en generación de código y llamadas a herramientas. Cuanto más grande sea el modelo, mejores pueden ser los resultados, pero también aumentará la presión sobre la memoria y la GPU.&lt;/p&gt;
&lt;p&gt;Si tu equipo tiene memoria limitada, empieza con un modelo más pequeño. Primero confirma que el flujo funciona bien y luego prueba modelos más grandes.&lt;/p&gt;
&lt;h2 id=&#34;configuración-clave-de-cc-switch&#34;&gt;Configuración Clave De CC Switch
&lt;/h2&gt;&lt;p&gt;Después de iniciar Ollama, su dirección local de API suele ser:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://127.0.0.1:11434/v1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;En CC Switch, elige un tipo de proveedor compatible con OpenAI. Una opción habitual es:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;OpenAI Chat Completions
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Después apunta el base URL a la dirección local de Ollama.&lt;/p&gt;
&lt;p&gt;Para el campo de API key, Ollama local normalmente no necesita una clave real, pero muchas herramientas siguen exigiendo una variable de entorno o un valor de relleno. Puedes usar:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ANTHROPIC_API_KEY
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;o cualquier otra variable de relleno aceptada por tu configuración local.&lt;/p&gt;
&lt;p&gt;Hay un punto de configuración que merece especial atención:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;#34;inferenceModels&amp;#34;=&amp;#34;[\&amp;#34;haiku\&amp;#34;,\&amp;#34;sonnet\&amp;#34;,\&amp;#34;opus\&amp;#34;]&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Esto mapea los roles de modelo que Claude Code espera hacia el proveedor local. En la práctica, debes vincular &lt;code&gt;haiku&lt;/code&gt;, &lt;code&gt;sonnet&lt;/code&gt; y &lt;code&gt;opus&lt;/code&gt; con los nombres de modelo expuestos por Ollama o CC Switch. Si este mapeo es incorrecto, Claude Code puede fallar al llamar al modelo o volver a una configuración inesperada.&lt;/p&gt;
&lt;h2 id=&#34;dónde-destaca-claude-code&#34;&gt;Dónde Destaca Claude Code
&lt;/h2&gt;&lt;p&gt;La mayor ventaja de Claude Code no es una finalización aislada, sino el flujo completo de desarrollo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;leer y entender la estructura del proyecto;&lt;/li&gt;
&lt;li&gt;localizar archivos relacionados con una tarea;&lt;/li&gt;
&lt;li&gt;editar código directamente;&lt;/li&gt;
&lt;li&gt;ejecutar comandos y pruebas;&lt;/li&gt;
&lt;li&gt;observar errores e iterar;&lt;/li&gt;
&lt;li&gt;completar tareas de varios pasos en una sola sesión.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por eso muchas personas quieren conservar Claude Code aunque cambien a un modelo local. Una interfaz de chat normal puede generar fragmentos de código, pero no trabaja de forma natural dentro de un repositorio. Claude Code se parece más a un asistente de desarrollo capaz de actuar.&lt;/p&gt;
&lt;h2 id=&#34;qué-papel-cumple-ollama&#34;&gt;Qué Papel Cumple Ollama
&lt;/h2&gt;&lt;p&gt;Ollama se encarga de ejecutar y gestionar los modelos locales. Gestiona la descarga, la carga y la inferencia local.&lt;/p&gt;
&lt;p&gt;La ventaja es clara: las solicitudes permanecen en tu máquina, el uso repetido no genera facturas de API y también puedes trabajar cuando la red está limitada. Para código privado, también resulta más aceptable que enviar cada ventana de contexto a un modelo en la nube.&lt;/p&gt;
&lt;p&gt;La contrapartida también es clara. Los modelos locales dependen mucho del hardware y de la calidad del modelo. Un modelo pequeño puede manejar ediciones simples, explicaciones y generación de scripts, pero puede sufrir con refactorizaciones grandes entre varios archivos o decisiones de arquitectura delicadas.&lt;/p&gt;
&lt;h2 id=&#34;dónde-están-los-límites-de-la-experiencia&#34;&gt;Dónde Están Los Límites De La Experiencia
&lt;/h2&gt;&lt;p&gt;Esta configuración no debe verse como un reemplazo completo de los modelos cloud más potentes de Claude.&lt;/p&gt;
&lt;p&gt;Puedes encontrarte con estos problemas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;comprensión más débil de contextos largos;&lt;/li&gt;
&lt;li&gt;llamadas a herramientas inestables en tareas complejas;&lt;/li&gt;
&lt;li&gt;inferencia lenta en máquinas solo con CPU;&lt;/li&gt;
&lt;li&gt;más alucinaciones de rutas de archivo o APIs inexistentes;&lt;/li&gt;
&lt;li&gt;planificación menos fiable en varias rondas;&lt;/li&gt;
&lt;li&gt;menor tasa de éxito en refactorizaciones de repositorios grandes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La expectativa más razonable es usarlo como un asistente de desarrollo local gratuito, no como un sustituto perfecto de un modelo cloud de primera línea.&lt;/p&gt;
&lt;h2 id=&#34;la-compatibilidad-multimodal-sigue-siendo-inestable&#34;&gt;La Compatibilidad Multimodal Sigue Siendo Inestable
&lt;/h2&gt;&lt;p&gt;Algunos usuarios quieren que Claude Code maneje capturas de pantalla, imágenes de UI, diagramas u otras entradas multimodales. Esta parte depende del modelo local y de la capa de reenvío.&lt;/p&gt;
&lt;p&gt;Si el modelo de Ollama seleccionado no admite visión, o si CC Switch no traduce correctamente el formato de solicitud, las funciones multimodales pueden fallar. Incluso con un modelo de visión, el comportamiento puede diferir de la API oficial de Claude.&lt;/p&gt;
&lt;p&gt;Por ahora, esta configuración es más adecuada para flujos de texto y código. Conviene tratar el soporte multimodal como algo experimental.&lt;/p&gt;
&lt;h2 id=&#34;para-quién-tiene-sentido-probarlo&#34;&gt;Para Quién Tiene Sentido Probarlo
&lt;/h2&gt;&lt;p&gt;Esta configuración es adecuada para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;desarrolladores que quieren probar el flujo de Claude Code a bajo coste;&lt;/li&gt;
&lt;li&gt;usuarios que escriben scripts, herramientas pequeñas y automatizaciones con frecuencia;&lt;/li&gt;
&lt;li&gt;equipos que prefieren mantener el código en máquinas locales;&lt;/li&gt;
&lt;li&gt;principiantes que quieren un asistente de programación AI sin gasto continuo de API;&lt;/li&gt;
&lt;li&gt;personas que evalúan distintos modelos locales para código.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Es menos adecuada si dependes mucho de contexto largo, monorepos grandes, calidad estricta de revisión de código o refactorizaciones complejas de proyectos completos.&lt;/p&gt;
&lt;h2 id=&#34;recomendaciones-de-uso&#34;&gt;Recomendaciones De Uso
&lt;/h2&gt;&lt;p&gt;Empieza con tareas pequeñas.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;explicar un solo archivo;&lt;/li&gt;
&lt;li&gt;refactorizar una función pequeña;&lt;/li&gt;
&lt;li&gt;generar un script de shell;&lt;/li&gt;
&lt;li&gt;corregir un error simple;&lt;/li&gt;
&lt;li&gt;añadir una función pequeña;&lt;/li&gt;
&lt;li&gt;escribir pruebas unitarias para un módulo acotado.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Después de cada cambio, ejecuta pruebas o al menos revisa el diff. Un modelo local puede ser útil, pero no conviene aceptar a ciegas todas sus ediciones.&lt;/p&gt;
&lt;p&gt;Si el modelo pierde el contexto con frecuencia, reduce el alcance de la tarea. En lugar de pedirle &amp;ldquo;refactoriza todo el proyecto&amp;rdquo;, pídele &amp;ldquo;refactoriza esta función&amp;rdquo; o &amp;ldquo;añade validación en este archivo&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Claude Code + CC Switch + Ollama&lt;/code&gt; es una combinación interesante. Mantiene el flujo de desarrollo tipo Agent de Claude Code y mueve la inferencia a un modelo local.&lt;/p&gt;
&lt;p&gt;Sus mayores ventajas son el menor coste, la privacidad local y un flujo de desarrollo cómodo. Sus límites también son evidentes: la calidad del modelo, el rendimiento del hardware, el contexto largo y la estabilidad de las llamadas a herramientas afectan directamente la experiencia final.&lt;/p&gt;
&lt;p&gt;Si ya usas Ollama y quieres un flujo de programación AI local más práctico, vale la pena probar esta configuración. Solo recuerda empezar con tareas pequeñas, verificar cada cambio y tratar el modelo local como un asistente, no como un ingeniero automático.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Lectura rápida de OpenHuman: la ruta de escritorio para un AI Agent personal de código abierto</title>
        <link>https://knightli.com/es/2026/05/15/openhuman-open-source-personal-ai-agent/</link>
        <pubDate>Fri, 15 May 2026 14:52:31 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/15/openhuman-open-source-personal-ai-agent/</guid>
        <description>&lt;p&gt;OpenHuman es un proyecto de AI Agent personal de código abierto creado por tinyhumansai. Su objetivo no es construir otra ventana de chat, sino colocar una aplicación de escritorio, memoria personal, integraciones de terceros, voz, herramientas de programación y una base de conocimiento local dentro del mismo agent harness, para que la IA entienda más rápido el contexto de tu trabajo diario.&lt;/p&gt;
&lt;p&gt;El README del proyecto lo presenta como &amp;ldquo;Personal AI super intelligence&amp;rdquo;, y el sitio oficial también destaca private, simple y extremely powerful. Es una afirmación ambiciosa, pero conviene descomponerla: lo realmente interesante de OpenHuman es que intenta poner el &amp;ldquo;contexto personal&amp;rdquo; en el centro del producto, en lugar de dejar al usuario la tarea de ensamblar llamadas a modelos, configuración de plugins y búsqueda documental.&lt;/p&gt;
&lt;p&gt;En el momento de revisar este artículo, el repositorio de GitHub tenía alrededor de 7.8k stars y 629 forks. La versión más reciente era &lt;code&gt;OpenHuman v0.53.43&lt;/code&gt;, fechada el 13 de mayo de 2026. El proyecto sigue en Early Beta, y el README advierte claramente que está en desarrollo activo, así que conviene esperar bordes ásperos.&lt;/p&gt;
&lt;h2 id=&#34;qué-problema-intenta-resolver&#34;&gt;Qué problema intenta resolver
&lt;/h2&gt;&lt;p&gt;El problema de muchos asistentes de IA no es que el modelo sea débil, sino que el contexto está demasiado frío. Cada vez tienes que volver a explicar el fondo del proyecto, correos recientes, calendario, repositorios de código, documentos, tareas y preferencias. Cuando cruzas Gmail, Notion, GitHub, Slack, Calendar, Drive, Linear, Jira y otros sistemas, la información se dispersa entre herramientas distintas.&lt;/p&gt;
&lt;p&gt;La idea de OpenHuman es conectar primero esas fuentes de datos y luego construir una capa de memoria personal que pueda actualizarse continuamente mediante captura automática, compresión, resumen y base de conocimiento local. Así el agent no recuerda solo la conversación actual, sino que puede formar contexto a largo plazo alrededor de tu flujo de trabajo.&lt;/p&gt;
&lt;p&gt;Esa es también su mayor diferencia frente a un chatbot común. Los chatbots suelen trabajar alrededor del prompt; OpenHuman se parece más a una entrada de sistema operativo personal en el escritorio, intentando empaquetar de antemano conectores, memoria, herramientas y enrutamiento de modelos.&lt;/p&gt;
&lt;h2 id=&#34;capacidades-principales&#34;&gt;Capacidades principales
&lt;/h2&gt;&lt;p&gt;Las capacidades centrales listadas en el README de OpenHuman incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;UI orientada al escritorio y una ruta de inicio corta, sin exigir que el usuario empiece configurando desde la terminal.&lt;/li&gt;
&lt;li&gt;Un mascot de escritorio con &amp;ldquo;cara&amp;rdquo;, capaz de hablar, responder al entorno y participar en Google Meet.&lt;/li&gt;
&lt;li&gt;118+ integraciones de terceros, con Gmail, Notion, GitHub, Slack, Stripe, Calendar, Drive, Linear, Jira y otras herramientas.&lt;/li&gt;
&lt;li&gt;Mecanismo de captura automática: la descripción del proyecto menciona recorrer conexiones activas cada 20 minutos y llevar nuevos datos al memory tree.&lt;/li&gt;
&lt;li&gt;Memory Tree: comprime datos conectados e información de actividad en bloques Markdown y los guarda en SQLite local.&lt;/li&gt;
&lt;li&gt;Obsidian-compatible vault: escribe bloques de conocimiento como archivos &lt;code&gt;.md&lt;/code&gt;, que el usuario puede abrir, navegar y editar con Obsidian.&lt;/li&gt;
&lt;li&gt;Búsqueda integrada, captura web, herramientas de programación, sistema de archivos, git, lint, test, grep, entrada y salida de voz, entre otras capacidades.&lt;/li&gt;
&lt;li&gt;Model routing: enruta solicitudes a distintos tipos de modelo según la tarea.&lt;/li&gt;
&lt;li&gt;TokenJuice: comprime tokens antes de que resultados de herramientas, páginas web, cuerpos de correo y resultados de búsqueda entren al LLM.&lt;/li&gt;
&lt;li&gt;Ollama opcional para cargas de trabajo de IA locales.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La lista es amplia, pero el foco real se puede resumir en dos puntos: reducir configuración y ensamblaje de plugins, y convertir tus datos personales en memoria que el agent pueda buscar, comprimir y actualizar de forma continua.&lt;/p&gt;
&lt;h2 id=&#34;instalación&#34;&gt;Instalación
&lt;/h2&gt;&lt;p&gt;El proyecto ofrece una entrada de descarga en el sitio web y comandos de instalación desde terminal.&lt;/p&gt;
&lt;p&gt;macOS o Linux x64:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -fsSL https://raw.githubusercontent.com/tinyhumansai/openhuman/main/scripts/install.sh &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Windows:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;irm &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;https&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;//&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;raw&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;githubusercontent&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;com&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;tinyhumansai&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;openhuman&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;scripts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;install&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;ps1&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;iex
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si se trata de tu máquina principal de uso diario, conviene descargar primero el instalador desde el sitio oficial, o al menos abrir y revisar el script antes de decidir si ejecutar directamente un script remoto. OpenHuman involucra permisos sobre correo, documentos, repositorios de código, calendarios y archivos locales, así que la instalación y autorización merecen más cuidado que una utilidad pequeña común.&lt;/p&gt;
&lt;h2 id=&#34;código-abierto-y-stack-técnico&#34;&gt;Código abierto y stack técnico
&lt;/h2&gt;&lt;p&gt;El repositorio de OpenHuman usa licencia GPL-3.0. El desglose de lenguajes muestra Rust como principal, seguido por TypeScript, además de JavaScript, Shell, CSS y PowerShell. Las notas de contribución del README requieren Node.js 24+, pnpm 10.10.0, Rust 1.93.0, CMake y dependencias de compilación de escritorio específicas por plataforma.&lt;/p&gt;
&lt;p&gt;La ruta aproximada de desarrollo local es:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git submodule update --init --recursive
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pnpm install
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pnpm dev
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pnpm --filter openhuman-app dev:app
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Antes de enviar cambios se recomiendan focused checks, por ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pnpm typecheck
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pnpm format:check
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cargo check -p openhuman --lib
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Por la estructura del directorio, no es un proyecto de scripts ligero. Es un repositorio de producto completo con aplicación de escritorio, frontend, backend en Rust, documentación, pruebas, ejemplos y scripts de build.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-importan-memory-tree-y-obsidian-vault&#34;&gt;Por qué importan Memory Tree y Obsidian vault
&lt;/h2&gt;&lt;p&gt;El concepto de OpenHuman que más merece una mirada aparte es Memory Tree. El README describe que normaliza los datos conectados en Markdown chunks de hasta unos 3k tokens, los puntúa, los pliega en un árbol jerárquico de resúmenes y los guarda en SQLite local. El mismo contenido también entra en un vault compatible con Obsidian.&lt;/p&gt;
&lt;p&gt;Esta ruta tiene varias ventajas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El usuario puede ver directamente la base de conocimiento del agent, en lugar de confiar solo en una memoria de caja negra.&lt;/li&gt;
&lt;li&gt;Los archivos Markdown facilitan búsqueda, backup, control de versiones y revisión manual.&lt;/li&gt;
&lt;li&gt;SQLite sirve bien para indexación local y consultas rápidas.&lt;/li&gt;
&lt;li&gt;Los resúmenes jerárquicos son más adecuados para compresión de contexto a largo plazo que una pila plana de documentos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pero también hay desafíos prácticos: si la sincronización de datos es estable, si los resúmenes pierden detalles clave, si los límites de permisos son lo bastante claros, si la eliminación y reversión son completas, y si la semántica de distintos conectores se puede manejar de forma consistente. Nada de eso queda resuelto por una frase del README como &amp;ldquo;remembers everything&amp;rdquo;; requiere uso prolongado y auditoría.&lt;/p&gt;
&lt;h2 id=&#34;tokenjuice-capa-intermedia-para-costo-y-latencia&#34;&gt;TokenJuice: capa intermedia para costo y latencia
&lt;/h2&gt;&lt;p&gt;OpenHuman también destaca TokenJuice. Su función es comprimir páginas web, correos, resultados de búsqueda y resultados de llamadas a herramientas antes de que entren al modelo. Por ejemplo, convertir HTML a Markdown, acortar URL largas y eliminar algunos caracteres innecesarios. El README afirma que esto puede reducir costo y latencia, con hasta 80% menos uso de tokens.&lt;/p&gt;
&lt;p&gt;La dirección es razonable. En sistemas de agents, lo que realmente consume recursos no suele ser una conversación aislada, sino captura en segundo plano, llamadas a herramientas, búsqueda, análisis de páginas web e inyección de contexto largo. Limpiar los datos antes de entregarlos al modelo suele ser más estable que meter contenido crudo directamente.&lt;/p&gt;
&lt;p&gt;Sin embargo, una capa de compresión también trae preguntas nuevas: decide qué información se conserva y cuál se descarta. Si la usas para contratos, facturas, registros médicos, material de cumplimiento o logs de incidentes de producción, no basta con mirar ahorro de tokens; también hay que revisar trazabilidad, consulta del texto original y error de compresión.&lt;/p&gt;
&lt;h2 id=&#34;privacidad-argumento-de-venta-y-foco-de-auditoría&#34;&gt;Privacidad: argumento de venta y foco de auditoría
&lt;/h2&gt;&lt;p&gt;Uno de los argumentos de OpenHuman es private. El sitio oficial menciona que los modelos de IA locales pueden manejar tareas de bajo nivel, y el README enfatiza workflow data stays on device, encrypted locally y treated as yours.&lt;/p&gt;
&lt;p&gt;Esta dirección de diseño resulta atractiva, porque cuando un AI Agent personal se conecta a Gmail, Drive, Calendar, Slack y GitHub, toca algunos de los datos de trabajo más sensibles. Frente a un asistente completamente en la nube, una capa de memoria local-first y un Markdown vault visible al menos dan al usuario más sensación de control.&lt;/p&gt;
&lt;p&gt;Pero también hay que contar la historia completa: OpenHuman menciona one subscription, 30+ providers, model routing, ElevenLabs TTS, OAuth integrations y otras capacidades. Eso significa que no es una herramienta puramente offline. Para evaluar la privacidad en serio, hay que mirar qué datos envía cada conector, cada tipo de llamada a modelo y cada función de voz o búsqueda, y a dónde los envía.&lt;/p&gt;
&lt;h2 id=&#34;para-quién-es-relevante&#34;&gt;Para quién es relevante
&lt;/h2&gt;&lt;p&gt;OpenHuman hoy encaja mejor con tres grupos:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Usuarios que quieren una mesa de control de IA personal, no solo un chatbot puntual.&lt;/li&gt;
&lt;li&gt;Desarrolladores dispuestos a probar una Early Beta y aceptar cambios de funciones y bordes ásperos.&lt;/li&gt;
&lt;li&gt;Personas interesadas en memoria local, flujos de Obsidian, agent connector y compresión de contexto.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si solo quieres un asistente offline estable, ligero y con límites de privacidad muy simples, por ahora quizá sea demasiado pesado. Si quieres estudiar cómo la próxima generación de AI Agents personales podría integrar escritorio, conectores, memoria y herramientas, OpenHuman es una muestra de código abierto que vale la pena seguir.&lt;/p&gt;
&lt;p&gt;Mi sugerencia es observarlo primero como un &amp;ldquo;experimento open source con forma de producto&amp;rdquo;: mirar ritmo de releases, calidad de issues, permisos de conectores, capacidad de exportar datos, mecanismos de eliminación y legibilidad del vault local. La clave de la IA personal no es solo si puede responder preguntas, sino si puede cargar tu contexto a largo plazo de forma transparente y controlable.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/tinyhumansai/openhuman&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;tinyhumansai/openhuman&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://tinyhumans.ai/openhuman&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Sitio oficial de OpenHuman&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://tinyhumans.gitbook.io/openhuman-docs&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;OpenHuman Docs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>web-video-presentation: un Agent Skill para convertir artículos en videos web grabables</title>
        <link>https://knightli.com/es/2026/05/15/web-video-presentation-agent-skill/</link>
        <pubDate>Fri, 15 May 2026 09:02:15 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/15/web-video-presentation-agent-skill/</guid>
        <description>&lt;p&gt;&lt;code&gt;web-video-presentation&lt;/code&gt; es un agent skill dentro de &lt;code&gt;ConardLi/garden-skills&lt;/code&gt;. Resuelve un problema concreto: convertir un artículo o guion de voz en una presentación web que pueda grabarse como video.&lt;/p&gt;
&lt;p&gt;Proyecto: &lt;a class=&#34;link&#34; href=&#34;https://github.com/ConardLi/garden-skills/tree/main/skills/web-video-presentation&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/ConardLi/garden-skills/tree/main/skills/web-video-presentation&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;No es una plantilla de slides ni una librería de componentes React. Es un flujo de producción para agentes: convertir contenido en guion, crear outline, elegir tema, construir una superficie web 16:9 con Vite + React + TypeScript y grabarla.&lt;/p&gt;
&lt;h2 id=&#34;no-quiere-hacer-slides&#34;&gt;No quiere hacer slides
&lt;/h2&gt;&lt;p&gt;El README lo llama “video production surface”, no slide deck.&lt;/p&gt;
&lt;p&gt;Cada clic avanza un beat de narración. Cada step ocupa un escenario de 1920×1080. La UI de progreso se oculta salvo hover para no ensuciar la grabación.&lt;/p&gt;
&lt;p&gt;Sirve para convertir blogs en videos, visualizar guiones, hacer demos, tutoriales, charlas estilo keynote o presentaciones dinámicas que no parezcan PowerPoint.&lt;/p&gt;
&lt;p&gt;El valor no es sustituir un editor de video, sino usar el navegador como lienzo controlable e iterativo.&lt;/p&gt;
&lt;h2 id=&#34;principios&#34;&gt;Principios
&lt;/h2&gt;&lt;p&gt;Usa un escenario fijo 16:9 en coordenadas &lt;code&gt;1920×1080&lt;/code&gt;, escalado al viewport para evitar cambios de layout al grabar.&lt;/p&gt;
&lt;p&gt;Tiene un cursor global de step: clics y teclado avanzan &lt;code&gt;(chapter, step)&lt;/code&gt; y guardan progreso local.&lt;/p&gt;
&lt;p&gt;Cada step debe contar una sola idea. No se trata de acumular bullets, sino de diseñar cada beat como una pantalla.&lt;/p&gt;
&lt;p&gt;El guion manda el ritmo, el outline define capítulos y steps, y la imagen sigue la narración.&lt;/p&gt;
&lt;p&gt;Cada escena debe tener un ancla visual con movimiento. Si solo hay texto estático, aún no es lenguaje de video.&lt;/p&gt;
&lt;p&gt;Los temas usan tokens semánticos para tipografía, color, tarjetas, fondo, separadores, decoración y tono.&lt;/p&gt;
&lt;h2 id=&#34;workflow-en-cuatro-partes&#34;&gt;Workflow en cuatro partes
&lt;/h2&gt;&lt;p&gt;Primero se trabaja el contenido. Si el usuario da un artículo, el agente lo reescribe como &lt;code&gt;script.md&lt;/code&gt; y genera &lt;code&gt;outline.md&lt;/code&gt;. Si ya hay guion, lo guarda como &lt;code&gt;script.md&lt;/code&gt; y crea el outline.&lt;/p&gt;
&lt;p&gt;Luego viene el desarrollo web. El agente crea un proyecto Vite / React / TypeScript y desarrolla por capítulos. El capítulo 1 debe hacerlo el hilo principal y ser aprobado por el usuario, porque fija el estilo.&lt;/p&gt;
&lt;p&gt;Después puede venir audio opcional: extraer definiciones desde &lt;code&gt;narrations.ts&lt;/code&gt; y pasar a síntesis de voz.&lt;/p&gt;
&lt;p&gt;Finalmente se graba la presentación en la web.&lt;/p&gt;
&lt;p&gt;Hay checkpoints estrictos: script, outline, tema, plan de assets, modo de desarrollo, aprobación del capítulo 1 y decisión sobre audio.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-el-outline-no-define-animaciones&#34;&gt;Por qué el outline no define animaciones
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;outline.md&lt;/code&gt; planifica ritmo e información, pero no animaciones concretas. Puede describir capítulos, número de steps, contenido de pantalla, assets y duración estimada; no debe fijar CSS animations, tiempos, clip-path o filtros.&lt;/p&gt;
&lt;p&gt;Si el outline bloquea la animación, el desarrollo posterior se vuelve mecánico. La sensación de video debe diseñarse al implementar cada capítulo según la relación entre ideas.&lt;/p&gt;
&lt;h2 id=&#34;narrationsts-como-fuente-de-verdad&#34;&gt;narrations.ts como fuente de verdad
&lt;/h2&gt;&lt;p&gt;Cada capítulo tiene &lt;code&gt;narrations.ts&lt;/code&gt;, con número de steps y texto de narración. El máximo step usado en el &lt;code&gt;.tsx&lt;/code&gt; del capítulo debe coincidir con &lt;code&gt;narrations.length&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Así se evita que &lt;code&gt;script.md&lt;/code&gt;, &lt;code&gt;outline.md&lt;/code&gt;, código, &lt;code&gt;chapters.ts&lt;/code&gt; y audio se desalineen.&lt;/p&gt;
&lt;h2 id=&#34;los-temas-no-son-skins&#34;&gt;Los temas no son skins
&lt;/h2&gt;&lt;p&gt;Los temas integrados incluyen &lt;code&gt;paper-press&lt;/code&gt;, &lt;code&gt;warm-keynote&lt;/code&gt;, &lt;code&gt;midnight-press&lt;/code&gt;, &lt;code&gt;blueprint&lt;/code&gt;, &lt;code&gt;chalk-garden&lt;/code&gt;, &lt;code&gt;terminal-green&lt;/code&gt;, &lt;code&gt;bauhaus-bold&lt;/code&gt;, &lt;code&gt;sunset-zine&lt;/code&gt;, &lt;code&gt;newsroom&lt;/code&gt; y &lt;code&gt;monochrome-print&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;No son simples cambios de color. Representan lenguajes visuales distintos: prensa, keynote, planos, terminal, newsroom. En la planificación, el agente debe recomendar dos o tres según tema y tono.&lt;/p&gt;
&lt;h2 id=&#34;modos-de-desarrollo&#34;&gt;Modos de desarrollo
&lt;/h2&gt;&lt;p&gt;El capítulo 1 siempre se desarrolla y revisa primero. Después hay tres modos: confirmación capítulo por capítulo, desarrollo secuencial o desarrollo paralelo con subagents.&lt;/p&gt;
&lt;p&gt;El paralelo es más rápido, pero puede generar diferencias de estilo entre capítulos. Los theme tokens ayudan a mantener unidad.&lt;/p&gt;
&lt;h2 id=&#34;para-quién-sirve&#34;&gt;Para quién sirve
&lt;/h2&gt;&lt;p&gt;Sirve mejor cuando ya existe material: artículo, guion, descripción de producto, tutorial o explicación técnica. Si el usuario no tiene contenido, el agente debería pedirlo. No es una herramienta de ideación, sino un flujo de contenido a video.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;web-video-presentation&lt;/code&gt; vale porque convierte la producción de videos desde contenido en un flujo colaborativo, revisable y reutilizable.&lt;/p&gt;
&lt;p&gt;Une artículo, narración, outline, tema, capítulos, audio y grabación, y usa checkpoints para evitar que el agente avance sin control.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Prompt-Vault: una biblioteca de especificaciones de prompt para probar AI Coding</title>
        <link>https://knightli.com/es/2026/05/15/prompt-vault-coding-prompt-benchmark/</link>
        <pubDate>Fri, 15 May 2026 09:00:52 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/15/prompt-vault-coding-prompt-benchmark/</guid>
        <description>&lt;p&gt;&lt;code&gt;w512/Prompt-Vault&lt;/code&gt; es un repositorio pequeño pero útil. No colecciona prompts mágicos; organiza prompts ejecutables de programación por dificultad para probar LLMs y coding agents.&lt;/p&gt;
&lt;p&gt;Proyecto: &lt;a class=&#34;link&#34; href=&#34;https://github.com/w512/Prompt-Vault&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/w512/Prompt-Vault&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;La estructura es clara: &lt;code&gt;Easy&lt;/code&gt;, &lt;code&gt;Medium&lt;/code&gt; y &lt;code&gt;Hard&lt;/code&gt;. Cada archivo Markdown es una tarea independiente. El README también los presenta como prompts para probar modelos o practicar pequeños proyectos.&lt;/p&gt;
&lt;h2 id=&#34;no-es-una-colección-de-ocurrencias&#34;&gt;No es una colección de ocurrencias
&lt;/h2&gt;&lt;p&gt;Muchos repositorios de prompts parecen grandes, pero cuesta evaluar su calidad. Los títulos atraen, pero faltan criterios de aceptación.&lt;/p&gt;
&lt;p&gt;Prompt-Vault se parece más a una biblioteca de especificaciones. Cada tarea intenta dejar claro qué app construir, qué funciones son obligatorias, qué estilo de UI se espera, qué restricciones técnicas existen, si debe ser un solo archivo, si se permiten dependencias y si hay persistencia.&lt;/p&gt;
&lt;p&gt;Eso prueba mejor a un modelo que pedir “haz un Kanban bonito”.&lt;/p&gt;
&lt;h2 id=&#34;easy-interacción-básica&#34;&gt;Easy: interacción básica
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Bubble_Sort_Visualizer.md&lt;/code&gt; pide un &lt;code&gt;index.html&lt;/code&gt; único que visualice Bubble Sort con barras, botones start/reset, slider de velocidad, contador de comparaciones y tema oscuro.&lt;/p&gt;
&lt;p&gt;Sirve para probar si el modelo conecta estado algorítmico con UI, controla animación, maneja reset y mantiene el código simple.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;ToDo_List.md&lt;/code&gt; parte de HTML estático y añade tareas, estado completado, borrar, contadores, estadísticas Active / Completed y &lt;code&gt;localStorage&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Es simple, pero revela si el modelo evoluciona el código paso a paso o lo mezcla todo.&lt;/p&gt;
&lt;h2 id=&#34;medium-estado-y-animación&#34;&gt;Medium: estado y animación
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Sorting_Visualization.md&lt;/code&gt; exige seis algoritmos en la misma página: Bubble, Insertion, Selection, Merge, Quick y Heap Sort.&lt;/p&gt;
&lt;p&gt;También requiere selector de algoritmo, sliders de velocidad y tamaño, reset, start / pause y panel de estadísticas.&lt;/p&gt;
&lt;p&gt;Muchos modelos logran una animación de Bubble Sort, pero fallan al combinar varios algoritmos, pausa, reanudación y estadísticas.&lt;/p&gt;
&lt;h2 id=&#34;hard-sensación-de-producto-completo&#34;&gt;Hard: sensación de producto completo
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Kanban_Board.md&lt;/code&gt; pide un tablero completo: columnas por defecto, columnas nuevas, renombrado con doble clic, borrar columnas vacías, tarjetas con título y descripción, prioridad, fecha límite, drag-and-drop, búsqueda, filtro, &lt;code&gt;localStorage&lt;/code&gt;, estadísticas, tema oscuro glassmorphism y scroll horizontal responsive.&lt;/p&gt;
&lt;p&gt;Esto evalúa producto, no solo una función.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Markdown_Editor_Desktop.md&lt;/code&gt; pide un editor Markdown de escritorio con Tauri 2: edición y vista previa, scroll sincronizado, render en vivo, modos, abrir/guardar/guardar como, indicador de no guardado, toolbar, atajos, temas, fuentes, Vue 3, Pinia, &lt;code&gt;marked.js&lt;/code&gt;, &lt;code&gt;prism.js&lt;/code&gt; y plugins de Tauri.&lt;/p&gt;
&lt;p&gt;Ya no es un prompt web simple; prueba estado frontend, permisos de filesystem, IPC y empaquetado.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-vale-la-pena&#34;&gt;Por qué vale la pena
&lt;/h2&gt;&lt;p&gt;Su valor no es la cantidad, sino ofrecer muestras reutilizables de evaluación.&lt;/p&gt;
&lt;p&gt;Con el mismo prompt puedes comparar modelos o agents: cuál respeta restricciones, cuál omite menos funciones, cuál maneja bordes, cuál deja código mantenible, cuál cuida mejor la UI.&lt;/p&gt;
&lt;p&gt;Es más fiable que “me parece más inteligente”.&lt;/p&gt;
&lt;p&gt;En frontend, muchos fallos no son sintaxis: faltan estados de botón, animaciones se atascan, no persiste el dato, el drag no marca el destino o las estadísticas no se actualizan.&lt;/p&gt;
&lt;h2 id=&#34;cómo-ampliarlo&#34;&gt;Cómo ampliarlo
&lt;/h2&gt;&lt;p&gt;Podría mejorar con checklists de aceptación, casos de fallo, criterios de puntuación, implementaciones de referencia y registros por modelo.&lt;/p&gt;
&lt;p&gt;Por ejemplo, en sorting: “pulsar Start / Reset rápido no debe crear múltiples bucles de animación”. En Kanban: aclarar qué ocurre al borrar una columna con tarjetas.&lt;/p&gt;
&lt;h2 id=&#34;cómo-usarlo&#34;&gt;Cómo usarlo
&lt;/h2&gt;&lt;p&gt;Para probar una herramienta de AI Coding:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Entrega el prompt sin cambios.&lt;/li&gt;
&lt;li&gt;No des pistas adicionales.&lt;/li&gt;
&lt;li&gt;Ejecuta el resultado.&lt;/li&gt;
&lt;li&gt;Verifica función por función.&lt;/li&gt;
&lt;li&gt;Registra omisiones y bugs.&lt;/li&gt;
&lt;li&gt;Da una ronda de reparación.&lt;/li&gt;
&lt;li&gt;Compara tiempo, coste de tokens y calidad final.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Prompt-Vault es una biblioteca ligera de especificaciones. Sirve para evaluar AI Coding y para practicar frontend.&lt;/p&gt;
&lt;p&gt;Recuerda que un buen prompt no es un deseo: debe definir requisitos, restricciones, interacción, estado, aceptación y modo de ejecución.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Qué es Token Efficiency: DeepSeek V4, planificación con modelos grandes y ejecución con modelos pequeños</title>
        <link>https://knightli.com/es/2026/05/15/token-efficiency-agent-orchestration/</link>
        <pubDate>Fri, 15 May 2026 08:59:33 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/15/token-efficiency-agent-orchestration/</guid>
        <description>&lt;p&gt;La próxima métrica importante en AI Coding quizá no sea quién tiene el modelo más fuerte, sino quién completa más trabajo verificable con menos tokens, menor coste y un proceso más estable.&lt;/p&gt;
&lt;p&gt;Ese es el valor de Token Efficiency.&lt;/p&gt;
&lt;p&gt;Muchos lo entienden como modelos baratos, contexto largo o cache hits más económicos. Eso es solo la base. Lo que lo convierte en productividad es la división de trabajo entre modelos, la orquestación de tareas, el presupuesto de contexto y la evaluación.&lt;/p&gt;
&lt;p&gt;Token Efficiency no es un truco para ahorrar dinero. Es un método de ingeniería para convertir tokens en producción.&lt;/p&gt;
&lt;h2 id=&#34;deepseek-v4-separar-planificación-y-ejecución&#34;&gt;DeepSeek V4: separar planificación y ejecución
&lt;/h2&gt;&lt;p&gt;DeepSeek V4 no es solo otro modelo más fuerte. Divide las dos capacidades necesarias para Token Efficiency en &lt;code&gt;V4 Pro&lt;/code&gt; y &lt;code&gt;V4 Flash&lt;/code&gt;: &lt;code&gt;V4 Pro&lt;/code&gt; encaja mejor con planificación, razonamiento, juicio arquitectónico y revisión crítica; &lt;code&gt;V4 Flash&lt;/code&gt; encaja con ejecución frecuente, reescritura en lote, completado de código, organización de información y nodos normales de un agente.&lt;/p&gt;
&lt;p&gt;En AI Coding esto se traduce así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;V4 Pro&lt;/code&gt;: planner / consultant para requisitos, diseño técnico, bugs complejos, revisión de arquitectura y aceptación final.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;V4 Flash&lt;/code&gt;: executor para escanear archivos, implementar cambios simples, completar tests, ordenar documentación, generar candidatos y repetir tareas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La documentación API de DeepSeek indica que ambos soportan &lt;code&gt;1M&lt;/code&gt; de contexto, JSON Output, Tool Calls, Chat Prefix Completion y FIM Completion. La página de precios también separa input con cache hit y señala una bajada fuerte de ese precio.&lt;/p&gt;
&lt;p&gt;La combinación es lo importante: &lt;code&gt;1M&lt;/code&gt; de contexto reduce compresión en tareas agent complejas; el cache hit barato reduce el coste de volver a cargar prompts, docs, código e historial; la separación &lt;code&gt;Flash / Pro&lt;/code&gt; evita usar un modelo flagship para cada paso o depender solo de un modelo pequeño inestable.&lt;/p&gt;
&lt;p&gt;Así, DeepSeek V4 ofrece una estructura de coste realista para el patrón “modelo consultor + modelo ejecutor + harness de orquestación”.&lt;/p&gt;
&lt;h2 id=&#34;no-hacer-que-el-modelo-más-fuerte-lo-haga-todo&#34;&gt;No hacer que el modelo más fuerte lo haga todo
&lt;/h2&gt;&lt;p&gt;Antes era común elegir el modelo más inteligente y dejarle requisitos, código, tests y resumen de punta a punta.&lt;/p&gt;
&lt;p&gt;Es sencillo, pero no siempre eficiente. Muchas tareas no necesitan razonamiento de frontera. Los modelos caros deberían actuar como consultores, arquitectos o planificadores que intervienen en puntos clave.&lt;/p&gt;
&lt;p&gt;Una estructura mejor:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Modelos grandes para descomponer problemas y tomar decisiones clave.&lt;/li&gt;
&lt;li&gt;Modelos pequeños para ejecutar, procesar en lote y repetir cambios.&lt;/li&gt;
&lt;li&gt;Herramientas y harness para proceso, estado, contexto y validación.&lt;/li&gt;
&lt;li&gt;Personas para definir producto, aceptar resultados y decidir tradeoffs.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Así el razonamiento caro no se desperdicia en ejecución mecánica.&lt;/p&gt;
&lt;h2 id=&#34;más-contexto-no-siempre-es-mejor&#34;&gt;Más contexto no siempre es mejor
&lt;/h2&gt;&lt;p&gt;El contexto largo importa en coding agents porque código, documentos, historial, salida de tests y logs consumen ventana. Cuando se llena, aparecen compresión, olvido y errores de juicio.&lt;/p&gt;
&lt;p&gt;Pero contexto largo no significa meterlo todo.&lt;/p&gt;
&lt;p&gt;Token Efficiency exige que cada tarea quepa en una ventana clara y controlada: archivos necesarios, documentos relevantes para la decisión, estado actual, entradas y salidas claras, y resumen estructurado para el siguiente nodo.&lt;/p&gt;
&lt;p&gt;Si el contexto es barato, la tentación es meter ruido. El ruido no hace al modelo más inteligente.&lt;/p&gt;
&lt;h2 id=&#34;el-harness-importa-más-que-un-modelo-aislado&#34;&gt;El harness importa más que un modelo aislado
&lt;/h2&gt;&lt;p&gt;Conectar Claude Code, Codex u otro agent a un modelo barato no basta. Los modelos pequeños se desvían en cadenas largas si no hay control de proceso.&lt;/p&gt;
&lt;p&gt;Un harness decide cómo dividir tareas, correr nodos, escoger modelos, validar resultados, reintentar fallos y pasar contexto.&lt;/p&gt;
&lt;p&gt;Sin esa capa, un modelo pequeño solo es barato. Con esa capa, puede convertirse en palanca.&lt;/p&gt;
&lt;h2 id=&#34;dividir-tareas-con-dag&#34;&gt;Dividir tareas con DAG
&lt;/h2&gt;&lt;p&gt;Una tarea compleja puede convertirse en un DAG. Por ejemplo: aclarar requisitos, diseñar solución, dividir tareas, implementar, completar tests, hacer Code Review, corregir y enviar PR.&lt;/p&gt;
&lt;p&gt;Cada nodo puede ser un agente independiente con rol, prompt, permisos de herramientas y formato de salida. Los nodos deberían intercambiar resultados estructurados, no conversaciones largas.&lt;/p&gt;
&lt;p&gt;Esto hace cada nodo más corto, más fácil para modelos pequeños y más medible.&lt;/p&gt;
&lt;h2 id=&#34;ejecutar-varias-réplicas-de-una-tarea&#34;&gt;Ejecutar varias réplicas de una tarea
&lt;/h2&gt;&lt;p&gt;Cuando los tokens son suficientemente baratos, una tarea no tiene por qué ejecutarse una sola vez. Puedes correrla con distintos modelos, prompts u orquestaciones, luego elegir el mejor resultado o combinar partes útiles.&lt;/p&gt;
&lt;p&gt;Sirve para diseños, copy, casos de prueba, hipótesis de bug, alternativas de refactor y Code Review. No sirve para tareas con efectos externos, estado compartido o criterios de aceptación borrosos.&lt;/p&gt;
&lt;p&gt;El objetivo no es apostar, sino obtener muestras comparables para mejorar la orquestación y la elección de modelos.&lt;/p&gt;
&lt;h2 id=&#34;construir-evaluación&#34;&gt;Construir evaluación
&lt;/h2&gt;&lt;p&gt;Token Efficiency no se mide solo por precio. Un modelo barato con alta tasa de fallo consume tiempo humano y puede salir más caro.&lt;/p&gt;
&lt;p&gt;Conviene registrar tasa de finalización, intervenciones humanas, fallos de tool calls, tests que pasan, hallazgos de review, coste por tarea, tiempo, retrabajo y diferencias entre combinaciones de modelos.&lt;/p&gt;
&lt;p&gt;Con esos datos se sabe qué tareas van bien con modelos pequeños, cuáles requieren modelos grandes y cuáles deben quedarse en manos humanas.&lt;/p&gt;
&lt;h2 id=&#34;hacer-atómicos-los-workflows&#34;&gt;Hacer atómicos los workflows
&lt;/h2&gt;&lt;p&gt;No todo el mundo tiene que construir un harness completo. Pero sí puede dividir sus procesos en nodos atómicos.&lt;/p&gt;
&lt;p&gt;Producción de contenido: tema, investigación, esquema, borrador, fact-check, estilo, título SEO, traducción y revisión de publicación.&lt;/p&gt;
&lt;p&gt;Desarrollo de software: requisitos, diseño técnico, estructura de datos, cambios de API, unit tests, implementación, migraciones, documentación y review.&lt;/p&gt;
&lt;p&gt;Cada nodo debe tener entrada, salida, aceptación y contexto claros. Cuando maduren las herramientas de harness, esos procesos podrán conectarse directamente.&lt;/p&gt;
&lt;h2 id=&#34;el-hardware-no-es-lo-primero&#34;&gt;El hardware no es lo primero
&lt;/h2&gt;&lt;p&gt;Muchas conversaciones sobre Token Efficiency saltan a despliegue local y GPU. Para la mayoría, la API debería ser la primera opción.&lt;/p&gt;
&lt;p&gt;Antes de validar el modelo económico, el hardware local es coste adelantado. Mejor: validar el workflow con API, medir coste y calidad, detectar nodos frecuentes y estables, y solo después estudiar qué merece localizar.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Token Efficiency no consiste en sustituir modelos caros por baratos, sino en rediseñar el workflow de IA.&lt;/p&gt;
&lt;p&gt;Modelos grandes juzgan, modelos pequeños ejecutan, el harness orquesta y valida, y las personas definen objetivos y aceptación. Solo juntas estas capas convierten tokens en productividad.&lt;/p&gt;
&lt;p&gt;La diferencia futura quizá no esté en quién llama al modelo más fuerte, sino en quién convierte los mismos tokens en más resultados reales.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Superpowers: un framework de skills que devuelve los coding agents al proceso de ingeniería</title>
        <link>https://knightli.com/es/2026/05/15/obra-superpowers-agentic-skills-framework/</link>
        <pubDate>Fri, 15 May 2026 08:53:17 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/15/obra-superpowers-agentic-skills-framework/</guid>
        <description>&lt;p&gt;&lt;code&gt;obra/superpowers&lt;/code&gt; es un framework de skills para coding agents y también una metodología de desarrollo de software. Su objetivo no es crear otro prompt universal, sino hacer que el agente siga un proceso: aclarar objetivos, producir diseño, escribir un plan, implementar con TDD, revisar y cerrar.&lt;/p&gt;
&lt;p&gt;Proyecto: &lt;a class=&#34;link&#34; href=&#34;https://github.com/obra/superpowers&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/obra/superpowers&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;En el momento de escribir, la API de GitHub muestra más de 190.000 stars, licencia MIT y actividad reciente. El README lo describe como &lt;code&gt;An agentic skills framework &amp;amp; software development methodology that works.&lt;/code&gt;&lt;/p&gt;
&lt;h2 id=&#34;qué-problema-resuelve&#34;&gt;Qué problema resuelve
&lt;/h2&gt;&lt;p&gt;Muchas herramientas de AI Coding no fallan por no saber escribir código, sino por escribirlo demasiado pronto.&lt;/p&gt;
&lt;p&gt;El usuario da una petición vaga, el agente edita archivos y el resultado parece terminado, aunque los límites, tests y arquitectura sigan sin estar claros. En tareas pequeñas puede pasar; en proyectos complejos se convierte en retrabajo y deuda técnica.&lt;/p&gt;
&lt;p&gt;Superpowers hace que el agente entre en un workflow antes de tocar código:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Si detecta que el usuario quiere construir algo, pregunta primero por el objetivo.&lt;/li&gt;
&lt;li&gt;Convierte la conversación en una especificación y la confirma por partes.&lt;/li&gt;
&lt;li&gt;Tras aprobar el diseño, genera un plan de implementación.&lt;/li&gt;
&lt;li&gt;Solo cuando el usuario dice “go” empieza a implementar.&lt;/li&gt;
&lt;li&gt;Durante la implementación enfatiza TDD, YAGNI, DRY y revisión.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;No es ingeniería nueva, pero los agentes rápidos necesitan barandillas más fuertes.&lt;/p&gt;
&lt;h2 id=&#34;herramientas-soportadas&#34;&gt;Herramientas soportadas
&lt;/h2&gt;&lt;p&gt;Superpowers no está ligado a un único agente. El README lista Claude Code, Codex CLI, Codex App, Factory Droid, Gemini CLI, OpenCode, Cursor y GitHub Copilot CLI.&lt;/p&gt;
&lt;p&gt;Su papel se parece más a una capa de workflow entre harnesses que a un truco para un modelo concreto.&lt;/p&gt;
&lt;h2 id=&#34;workflow-base&#34;&gt;Workflow base
&lt;/h2&gt;&lt;p&gt;Primero está &lt;code&gt;brainstorming&lt;/code&gt;: antes de implementar, el agente convierte ideas vagas en diseño ejecutable y lo confirma.&lt;/p&gt;
&lt;p&gt;Después &lt;code&gt;using-git-worktrees&lt;/code&gt;: crea un worktree y una rama aislados, y comprueba que instalación y tests parten de una base limpia.&lt;/p&gt;
&lt;p&gt;Luego &lt;code&gt;writing-plans&lt;/code&gt;: divide el diseño en tareas pequeñas con rutas, alcance de código y pasos de validación.&lt;/p&gt;
&lt;p&gt;En ejecución puede usar &lt;code&gt;subagent-driven-development&lt;/code&gt; para delegar o &lt;code&gt;executing-plans&lt;/code&gt; para avanzar por lotes. Cada tarea debe poder revisarse y verificarse.&lt;/p&gt;
&lt;p&gt;Después llega &lt;code&gt;test-driven-development&lt;/code&gt;: RED-GREEN-REFACTOR real. Escribir un test que falla, confirmar el fallo, implementar lo mínimo, confirmar el paso y refactorizar.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;requesting-code-review&lt;/code&gt; introduce revisión entre tareas, y los hallazgos críticos bloquean el avance.&lt;/p&gt;
&lt;p&gt;Finalmente &lt;code&gt;finishing-a-development-branch&lt;/code&gt; valida tests y ofrece opciones como merge, PR, conservar o descartar el worktree.&lt;/p&gt;
&lt;h2 id=&#34;qué-hay-en-la-skills-library&#34;&gt;Qué hay en la Skills Library
&lt;/h2&gt;&lt;p&gt;La parte de testing gira alrededor de &lt;code&gt;test-driven-development&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;La parte de debugging incluye &lt;code&gt;systematic-debugging&lt;/code&gt; y &lt;code&gt;verification-before-completion&lt;/code&gt;: reproducir, minimizar, formular hipótesis, validar y no declarar completado sin verificar.&lt;/p&gt;
&lt;p&gt;Las skills de colaboración incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;brainstorming&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;writing-plans&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;executing-plans&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;dispatching-parallel-agents&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;requesting-code-review&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;receiving-code-review&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;using-git-worktrees&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;finishing-a-development-branch&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;subagent-driven-development&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;También hay skills meta como &lt;code&gt;writing-skills&lt;/code&gt; y &lt;code&gt;using-superpowers&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Juntas dan al agente hábitos de ingeniería: cuándo preguntar, planificar, testear y detenerse para review.&lt;/p&gt;
&lt;h2 id=&#34;diferencia-frente-a-un-prompt-normal&#34;&gt;Diferencia frente a un prompt normal
&lt;/h2&gt;&lt;p&gt;Un prompt normal suele apilar reglas en un system prompt: no cambies de más, piensa primero, prueba, explica, sé breve. Cuantas más reglas, más fácil es que el modelo olvide algunas en tareas complejas.&lt;/p&gt;
&lt;p&gt;Superpowers divide las reglas en módulos de workflow activables. Cada skill es más corta y enfocada. El agente sabe en qué fase está, el proceso se vuelve revisable y el equipo puede codificar sus propias prácticas.&lt;/p&gt;
&lt;p&gt;La lección no es solo usar un modelo más inteligente, sino darle una forma repetible de trabajar.&lt;/p&gt;
&lt;h2 id=&#34;para-quién-sirve&#34;&gt;Para quién sirve
&lt;/h2&gt;&lt;p&gt;Superpowers encaja mejor con desarrolladores que ya usan coding agents en proyectos reales: tareas de varios archivos, diseño antes de implementación, TDD o validación, ramas o worktrees paralelos, subagents para implementación o review, y equipos que quieren convertir su flujo en skills reutilizables.&lt;/p&gt;
&lt;p&gt;Para cambiar una línea de configuración puede ser pesado. Para trabajos de varias fases, sus restricciones aportan valor.&lt;/p&gt;
&lt;h2 id=&#34;precauciones&#34;&gt;Precauciones
&lt;/h2&gt;&lt;p&gt;No es piloto automático. Da proceso al agente, pero requisitos, límites y aceptación final siguen siendo humanos.&lt;/p&gt;
&lt;p&gt;TDD y review añaden coste inicial. En tareas pequeñas pueden parecer lentos; en tareas complejas reducen retrabajo.&lt;/p&gt;
&lt;p&gt;Los subagents en paralelo no siempre ayudan. Funcionan si los límites y el alcance de escritura son claros. Si el requisito es borroso, el paralelismo multiplica la confusión.&lt;/p&gt;
&lt;p&gt;También hay que mantener la calidad de las skills. Procesos obsoletos, instrucciones vagas y reglas conflictivas perjudican al agente.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Superpowers vale porque aleja al coding agent de “recibir petición y editar código” y lo devuelve al proceso de ingeniería de software.&lt;/p&gt;
&lt;p&gt;Lo que falta en AI Coding no suele ser velocidad de generación, sino aclaración, planificación, verificación, review y cierre. Cuanto más fuerte sea el modelo, menos conviene saltarse esos pasos.&lt;/p&gt;
&lt;p&gt;Si usas Codex, Claude Code, Cursor o Gemini CLI en proyectos reales, Superpowers merece una lectura. Aunque no lo instales, su forma de dividir skills sirve como referencia para diseñar tu propio workflow de agentes.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Rechazar el Vibe Coding: el repositorio skills de Matt Pocock añade restricciones de ingeniería a la programación con IA</title>
        <link>https://knightli.com/es/2026/05/15/matt-pocock-skills-ai-engineering-workflow/</link>
        <pubDate>Fri, 15 May 2026 08:46:23 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/15/matt-pocock-skills-ai-engineering-workflow/</guid>
        <description>&lt;p&gt;Cuanto más rápido escribe código la IA, más rápido puede perder el control un proyecto. La cuestión real no es si un modelo puede generar funciones, sino si entiende el requisito, respeta el lenguaje del equipo y avanza con cambios pequeños dentro de la arquitectura existente.&lt;/p&gt;
&lt;p&gt;El repositorio &lt;code&gt;mattpocock/skills&lt;/code&gt; de Matt Pocock apunta en la dirección opuesta al vibe coding: no dejar que la IA tome todo el proceso de desarrollo, sino ponerla dentro de restricciones maduras de ingeniería de software.&lt;/p&gt;
&lt;p&gt;Proyecto: &lt;a class=&#34;link&#34; href=&#34;https://github.com/mattpocock/skills&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/mattpocock/skills&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;No se trata de un prompt mágico. Es un conjunto de agent skills que convierten aclaración de requisitos, modelado de dominio, TDD, diagnóstico y revisión arquitectónica en workflows adecuados para herramientas de AI Coding.&lt;/p&gt;
&lt;h2 id=&#34;primero-resolver-la-falta-de-alineación&#34;&gt;Primero resolver la falta de alineación
&lt;/h2&gt;&lt;p&gt;El fallo más común en AI Coding es creer que el modelo entendió cuando en realidad solo adivinó a partir de una descripción vaga.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;grill-me&lt;/code&gt; invierte la interacción. Antes de escribir código, el agente actúa como un revisor exigente y pregunta por ramas, límites y decisiones pendientes.&lt;/p&gt;
&lt;p&gt;Si pides una página de login, debería preguntar primero:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cómo funcionará recuperar contraseña.&lt;/li&gt;
&lt;li&gt;Si habrá login de terceros.&lt;/li&gt;
&lt;li&gt;Qué error mostrar cuando falle el login.&lt;/li&gt;
&lt;li&gt;Si bloqueo de cuenta, CAPTCHA o control de riesgo están dentro del alcance.&lt;/li&gt;
&lt;li&gt;A dónde redirigir tras el éxito.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Parece más lento, pero reduce retrabajo. Cuanto más barato es generar código, más caro se vuelve no haber aclarado el requisito.&lt;/p&gt;
&lt;h2 id=&#34;escribir-el-lenguaje-de-dominio-en-el-contexto&#34;&gt;Escribir el lenguaje de dominio en el contexto
&lt;/h2&gt;&lt;p&gt;Otro problema es el vocabulario genérico. El modelo no conoce los términos internos del equipo, así que los nombres de variables, funciones y documentos empiezan a desviarse.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;grill-with-docs&lt;/code&gt; pregunta mientras revisa &lt;code&gt;CONTEXT.md&lt;/code&gt;, ADRs o documentos de dominio. Los términos y decisiones confirmados pueden volver a esos documentos.&lt;/p&gt;
&lt;p&gt;Esto se parece al lenguaje ubicuo de DDD. Si el equipo dice customer en lugar de user, o transaction en lugar de order, la IA debe heredar esa terminología.&lt;/p&gt;
&lt;p&gt;El valor del contexto no está en acumular datos, sino en reducir la necesidad de adivinar.&lt;/p&gt;
&lt;h2 id=&#34;usar-tdd-para-limitar-la-velocidad&#34;&gt;Usar TDD para limitar la velocidad
&lt;/h2&gt;&lt;p&gt;La IA es peligrosa porque es rápida. Antes, escribir mucho mal código tomaba tiempo; ahora aparecen cientos de líneas en segundos. El problema no es la velocidad, sino la falta de ciclos de feedback.&lt;/p&gt;
&lt;p&gt;El skill &lt;code&gt;tdd&lt;/code&gt; devuelve el ciclo rojo-verde-refactor:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Escribir un test fallido para un comportamiento.&lt;/li&gt;
&lt;li&gt;Implementar lo mínimo para pasarlo.&lt;/li&gt;
&lt;li&gt;Refactorizar.&lt;/li&gt;
&lt;li&gt;Continuar con el siguiente corte vertical.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;La clave es avanzar comportamiento por comportamiento. La IA ejecuta; la persona controla dirección y límites.&lt;/p&gt;
&lt;h2 id=&#34;diagnosticar-con-un-ciclo&#34;&gt;Diagnosticar con un ciclo
&lt;/h2&gt;&lt;p&gt;Ante un bug, muchos agentes adivinan y parchean varias veces hasta empeorar el código.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;diagnose&lt;/code&gt; exige crear primero un ciclo de feedback:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Reproducir el problema&lt;/li&gt;
&lt;li&gt;Minimizar el caso&lt;/li&gt;
&lt;li&gt;Formular una hipótesis&lt;/li&gt;
&lt;li&gt;Añadir observación o logs&lt;/li&gt;
&lt;li&gt;Corregir&lt;/li&gt;
&lt;li&gt;Añadir una prueba de regresión&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Es un proceso clásico, pero en AI Coding es aún más importante. La IA prueba rápido; el proceso la mantiene cerca de la causa raíz.&lt;/p&gt;
&lt;h2 id=&#34;revisar-la-arquitectura-con-regularidad&#34;&gt;Revisar la arquitectura con regularidad
&lt;/h2&gt;&lt;p&gt;Que una tarea pase no significa que el código esté mejor. Muchas pequeñas modificaciones de IA pueden difuminar límites de módulos, complicar interfaces y hacer más difíciles los tests.&lt;/p&gt;
&lt;p&gt;Skills como &lt;code&gt;improve-codebase-architecture&lt;/code&gt; hacen que el agente mire el código desde más arriba:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Qué módulos mezclan responsabilidades.&lt;/li&gt;
&lt;li&gt;Qué interfaces son demasiado complejas.&lt;/li&gt;
&lt;li&gt;Qué rutas son difíciles de probar.&lt;/li&gt;
&lt;li&gt;Qué nombres no encajan con el lenguaje de dominio.&lt;/li&gt;
&lt;li&gt;Qué duplicaciones conviene consolidar.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No es una gran refactorización automática. Es observación estructurada y dirección de mejora; la decisión sigue siendo humana.&lt;/p&gt;
&lt;h2 id=&#34;lo-que-hay-que-limitar-es-la-libertad&#34;&gt;Lo que hay que limitar es la libertad
&lt;/h2&gt;&lt;p&gt;La idea central es sencilla: programar con IA no consiste en dejar improvisar al modelo, sino en darle objetivos, contexto, tests y condiciones de parada.&lt;/p&gt;
&lt;p&gt;Las personas definen el problema, los límites de arquitectura, las decisiones de negocio y los criterios de aceptación. La IA genera código, completa tests, repite cambios y hace refactors locales.&lt;/p&gt;
&lt;p&gt;Los fundamentos de ingeniería de software no quedaron obsoletos porque la IA mejoró. Aclarar requisitos, usar lenguaje de dominio, TDD, diagnóstico y revisión de arquitectura es cada vez más importante.&lt;/p&gt;
&lt;p&gt;Cada vez más personas podrán escribir código. La diferencia estará en quién puede insertar la IA en un sistema de ingeniería mantenible, verificable y capaz de evolucionar.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Qué es cc-haha: un proyecto que convierte Claude Code en un banco de trabajo de escritorio</title>
        <link>https://knightli.com/es/2026/05/14/cc-haha-claude-code-desktop-workbench/</link>
        <pubDate>Thu, 14 May 2026 22:38:04 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/14/cc-haha-claude-code-desktop-workbench/</guid>
        <description>&lt;p&gt;&lt;code&gt;cc-haha&lt;/code&gt; es un proyecto construido alrededor de un flujo de trabajo modificado de Claude Code. Su repositorio completo es &lt;code&gt;NanmiCoder/cc-haha&lt;/code&gt;. La página del proyecto lo dice de forma directa: está basado en el código fuente de Claude Code filtrado desde el Anthropic npm registry el &lt;code&gt;2026-03-31&lt;/code&gt;, y su forma principal actual es un banco de trabajo de escritorio para Claude Code.&lt;/p&gt;
&lt;p&gt;Proyecto: &lt;a class=&#34;link&#34; href=&#34;https://github.com/NanmiCoder/cc-haha&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/NanmiCoder/cc-haha&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Hay dos puntos importantes en esa descripción.&lt;/p&gt;
&lt;p&gt;Primero, no es Claude Code oficial de Anthropic. El README también indica que el copyright del código fuente original pertenece a Anthropic y que el proyecto es solo para aprendizaje e investigación.&lt;/p&gt;
&lt;p&gt;Segundo, su foco ya no es simplemente &amp;ldquo;ejecutar un Claude Code CLI local&amp;rdquo;. Por lo que muestran el README y el release más reciente, &lt;code&gt;cc-haha&lt;/code&gt; se parece más a una app de escritorio que reúne sesiones de Claude Code, proyectos, permisos, diffs, Computer Use, acceso remoto y configuración de proveedores de modelos.&lt;/p&gt;
&lt;h2 id=&#34;qué-problema-intenta-resolver&#34;&gt;Qué problema intenta resolver
&lt;/h2&gt;&lt;p&gt;Claude Code nació como una herramienta orientada a la terminal. Las sesiones, la ejecución de comandos, las confirmaciones de permisos, las ediciones de archivos y el cambio de contexto ocurren en la terminal. Para quien está cómodo con CLI, eso funciona. Pero en uso prolongado aparecen varias incomodidades:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Varios proyectos y sesiones son difíciles de gestionar a la vez.&lt;/li&gt;
&lt;li&gt;Para ver qué archivos modificó la IA, hay que cambiar a Git o al editor.&lt;/li&gt;
&lt;li&gt;Las aprobaciones, la ejecución de comandos y los diffs quedan repartidos en varias superficies.&lt;/li&gt;
&lt;li&gt;Ver la sesión actual desde un teléfono u otro dispositivo requiere una solución adicional.&lt;/li&gt;
&lt;li&gt;Conectar modelos que no sean de Anthropic exige manejar compatibilidad de protocolos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La dirección de &lt;code&gt;cc-haha&lt;/code&gt; es empaquetar todo eso en un banco de trabajo gráfico. No es solo una capa visual para Claude Code; mueve la gestión de sesiones y el control del flujo de desarrollo local a la app de escritorio.&lt;/p&gt;
&lt;h2 id=&#34;banco-de-trabajo-de-escritorio-de-terminal-a-centro-de-control&#34;&gt;Banco de trabajo de escritorio: de terminal a centro de control
&lt;/h2&gt;&lt;p&gt;Según el README, la app de escritorio de &lt;code&gt;cc-haha&lt;/code&gt; reúne estas capacidades en macOS / Windows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Banco de trabajo multisesión: pestañas, cambio de proyecto, entrada a terminal e historial de sesiones.&lt;/li&gt;
&lt;li&gt;Arranque por branch / Worktree: una nueva sesión puede elegir rama del repositorio y decidir entre el árbol actual o un Worktree aislado.&lt;/li&gt;
&lt;li&gt;Panel derecho de cambios de código: ver archivos modificados, líneas añadidas/eliminadas y estado del workspace mientras se chatea.&lt;/li&gt;
&lt;li&gt;Visualización de cambios: inspeccionar ediciones de la IA, diffs y proceso de ejecución.&lt;/li&gt;
&lt;li&gt;Flujo de permisos y confirmaciones: aprobar comandos peligrosos, tool calls y preguntas de la IA desde el escritorio.&lt;/li&gt;
&lt;li&gt;Varios proveedores de modelos: API compatibles con Anthropic, modelos de terceros, WebSearch fallback y configuración local.&lt;/li&gt;
&lt;li&gt;Acceso remoto H5: usar un token de un solo uso para entrar a la sesión de escritorio desde un teléfono u otro dispositivo.&lt;/li&gt;
&lt;li&gt;Integración con IM: conversar, cambiar proyectos y aprobar permisos desde Telegram, Feishu, WeChat o DingTalk.&lt;/li&gt;
&lt;li&gt;Tareas programadas y uso de tokens: crear tareas planificadas y ver tendencias de consumo local de tokens.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas funciones lo acercan más a un &amp;ldquo;banco de trabajo de programación con IA&amp;rdquo; que a un simple sustituto de la línea de comandos. Intenta poner en un solo lugar las superficies más comunes al programar con IA: chat, cambios de archivos, permisos, proyectos, entrada remota y configuración de modelos.&lt;/p&gt;
&lt;h2 id=&#34;instalación-y-arranque&#34;&gt;Instalación y arranque
&lt;/h2&gt;&lt;p&gt;Para usuarios normales, lo más razonable es descargar el instalador de escritorio desde Releases.&lt;/p&gt;
&lt;p&gt;El flujo indicado en el README es:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Ir a GitHub Releases y descargar el instalador de macOS o Windows.&lt;/li&gt;
&lt;li&gt;En el primer arranque, configurar proveedor de modelo, API Key y modelo por defecto en los ajustes de escritorio.&lt;/li&gt;
&lt;li&gt;Si macOS indica que la app no se puede abrir, seguir la guía de instalación para resolver permisos de Gatekeeper.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;La página del release más reciente muestra que &lt;code&gt;v0.2.6&lt;/code&gt; se publicó el &lt;code&gt;2026-05-13&lt;/code&gt;. Esa versión se centra en recuperar de forma segura el acceso móvil H5, mejorar la gestión de sesiones de escritorio, la búsqueda de menciones de archivos y detalles de experiencia de escritorio.&lt;/p&gt;
&lt;p&gt;Si quieres arrancar el CLI desde código fuente, el README da estos comandos:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bun install
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cp .env.example .env
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./bin/claude-haha
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Ese camino es más adecuado para quien quiera depurar el CLI inferior, el servidor o desarrollar cambios propios. Para uso normal, la app de escritorio es más directa.&lt;/p&gt;
&lt;h2 id=&#34;qué-cambió-en-v026&#34;&gt;Qué cambió en v0.2.6
&lt;/h2&gt;&lt;p&gt;El punto principal de &lt;code&gt;v0.2.6&lt;/code&gt; es que el acceso H5/LAN volvió de una apertura temporal a un modelo de activación explícita y emparejamiento por token.&lt;/p&gt;
&lt;p&gt;Cambios destacados:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El acceso H5/LAN debe activarse explícitamente en local.&lt;/li&gt;
&lt;li&gt;Los enlaces QR llevan un token visible una sola vez.&lt;/li&gt;
&lt;li&gt;Las API remotas, proxy y WebSocket ya no quedan expuestos sin protección.&lt;/li&gt;
&lt;li&gt;Settings añadió una página independiente de H5 Access.&lt;/li&gt;
&lt;li&gt;La barra lateral de escritorio añadió modo de gestión masiva, con selección múltiple y borrado de sesiones.&lt;/li&gt;
&lt;li&gt;La búsqueda de menciones de archivos ahora es git-first, respeta reglas ignore y reduce ruido de &lt;code&gt;node_modules&lt;/code&gt; y artefactos de build.&lt;/li&gt;
&lt;li&gt;Se añadió un tema blanco puro y se corrigieron problemas como URLs largas rompiendo el layout del chat o borradores cruzados entre tabs.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto muestra que el proyecto ya no está solo en la fase de &amp;ldquo;funciona&amp;rdquo;, sino que empieza a cubrir límites de seguridad y detalles diarios propios de un producto de escritorio.&lt;/p&gt;
&lt;p&gt;La parte de H5 merece especial cuidado. El autor avisa en el release que H5 es una entrada de navegador para individuos o equipos confiables, no un sistema público de login multi-tenant. En la práctica, no debería tratarse como un panel SaaS expuesto a internet.&lt;/p&gt;
&lt;h2 id=&#34;computer-use-dejar-que-el-agent-opere-el-escritorio&#34;&gt;Computer Use: dejar que el Agent opere el escritorio
&lt;/h2&gt;&lt;p&gt;Otro punto importante de &lt;code&gt;cc-haha&lt;/code&gt; es Computer Use.&lt;/p&gt;
&lt;p&gt;La documentación del proyecto explica que esta función parte de una versión muy modificada del Computer Use interno del código filtrado de Claude Code. La implementación oficial depende de módulos nativos privados de Anthropic, como &lt;code&gt;@ant/computer-use-swift&lt;/code&gt; y &lt;code&gt;@ant/computer-use-input&lt;/code&gt;, que no están disponibles públicamente. &lt;code&gt;cc-haha&lt;/code&gt; reemplaza la capa inferior por un Python bridge basado en bibliotecas públicas como &lt;code&gt;pyautogui&lt;/code&gt;, &lt;code&gt;mss&lt;/code&gt; y &lt;code&gt;pyobjc&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Computer Use soporta operaciones como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Captura de pantalla: &lt;code&gt;screenshot&lt;/code&gt;, &lt;code&gt;zoom&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Ratón: clic, arrastre, movimiento, scroll y lectura de posición del cursor&lt;/li&gt;
&lt;li&gt;Teclado: escribir texto, pulsar teclas, mantener teclas&lt;/li&gt;
&lt;li&gt;Aplicaciones: abrir apps, cambiar pantalla&lt;/li&gt;
&lt;li&gt;Permisos: solicitar acceso a apps, listar aplicaciones autorizadas&lt;/li&gt;
&lt;li&gt;Portapapeles: leer y escribir contenido&lt;/li&gt;
&lt;li&gt;Otros: esperar, operaciones por lote&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Su flujo es un ciclo de &amp;ldquo;captura - análisis - acción&amp;rdquo;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;El modelo recibe la solicitud del usuario.&lt;/li&gt;
&lt;li&gt;Llama a &lt;code&gt;screenshot&lt;/code&gt; para capturar la pantalla.&lt;/li&gt;
&lt;li&gt;El modelo usa visión para identificar botones, campos y coordenadas.&lt;/li&gt;
&lt;li&gt;Llama a herramientas de clic, escritura u operación de apps.&lt;/li&gt;
&lt;li&gt;Vuelve a capturar pantalla para confirmar el resultado y continúa.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Según la documentación, la plataforma con soporte completo es principalmente macOS, tanto Apple Silicon como Intel. Windows / Linux son teóricamente posibles, pero las partes de gestión de aplicaciones basadas en &lt;code&gt;pyobjc&lt;/code&gt; deben reemplazarse por soluciones de cada plataforma, y hoy no están completamente adaptadas.&lt;/p&gt;
&lt;p&gt;Los requisitos de ejecución incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Bun &amp;gt;= 1.1.0&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Python &amp;gt;= 3.8&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;permiso de Accessibility en macOS&lt;/li&gt;
&lt;li&gt;permiso de Screen Recording en macOS&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esta función es potente, pero también aumenta el riesgo de permisos. Al dejar que la IA opere apps de escritorio, conviene autorizar solo las aplicaciones realmente necesarias y no dejar contenido sensible abierto en ventanas no relacionadas.&lt;/p&gt;
&lt;h2 id=&#34;varios-modelos-mediante-una-capa-compatible-con-anthropic&#34;&gt;Varios modelos mediante una capa compatible con Anthropic
&lt;/h2&gt;&lt;p&gt;La comunicación base de &lt;code&gt;cc-haha&lt;/code&gt; sigue siendo el protocolo Anthropic Messages API. La documentación recomienda usar LiteLLM como proxy de conversión de protocolo.&lt;/p&gt;
&lt;p&gt;La estructura básica es:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude-code-haha ──Anthropic协议──▶ LiteLLM Proxy ──OpenAI协议──▶ 目标模型 API
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Es decir, &lt;code&gt;cc-haha&lt;/code&gt; envía solicitudes Anthropic Messages API, LiteLLM las convierte a formatos como OpenAI Chat Completions y las reenvía a OpenAI, DeepSeek, Ollama u otros servicios de modelos.&lt;/p&gt;
&lt;p&gt;La instalación de LiteLLM indicada en la documentación es:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install &lt;span class=&#34;s1&#34;&gt;&amp;#39;litellm[proxy]&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Después se pueden configurar OpenAI, DeepSeek, Ollama y otros modelos en &lt;code&gt;litellm_config.yaml&lt;/code&gt;. Una vez iniciado el proxy, se configuran estas variables en &lt;code&gt;.env&lt;/code&gt; o &lt;code&gt;~/.claude/settings.json&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ANTHROPIC_AUTH_TOKEN&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;sk-anything
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ANTHROPIC_BASE_URL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;http://localhost:4000
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ANTHROPIC_MODEL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;gpt-4o
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ANTHROPIC_DEFAULT_SONNET_MODEL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;gpt-4o
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ANTHROPIC_DEFAULT_HAIKU_MODEL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;gpt-4o
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ANTHROPIC_DEFAULT_OPUS_MODEL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;gpt-4o
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;API_TIMEOUT_MS&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;3000000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;DISABLE_TELEMETRY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Hay varios detalles prácticos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;drop_params: true&lt;/code&gt; es importante, porque parámetros de Anthropic como &lt;code&gt;thinking&lt;/code&gt; o &lt;code&gt;cache_control&lt;/code&gt; no existen en la API de OpenAI.&lt;/li&gt;
&lt;li&gt;Extended Thinking es una función propia de Anthropic y no está disponible con modelos de terceros.&lt;/li&gt;
&lt;li&gt;Prompt Caching tampoco funciona en la forma nativa de Anthropic.&lt;/li&gt;
&lt;li&gt;Los tool calls pasan de Anthropic &lt;code&gt;tool_use&lt;/code&gt; a OpenAI function calling, así que algunos tool calls complejos pueden tener problemas de compatibilidad.&lt;/li&gt;
&lt;li&gt;Modelos locales pequeños en Ollama pueden no manejar de forma estable este flujo intensivo en herramientas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Así que conectar varios modelos puede funcionar, pero no significa que todos ofrezcan la misma experiencia. &lt;code&gt;cc-haha&lt;/code&gt; sigue exigiendo al modelo buena capacidad de tool use, comprensión de código y contexto largo.&lt;/p&gt;
&lt;h2 id=&#34;para-quién-tiene-sentido&#34;&gt;Para quién tiene sentido
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;cc-haha&lt;/code&gt; encaja mejor con:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Usuarios que ya conocen Claude Code y quieren gestión de sesiones en escritorio.&lt;/li&gt;
&lt;li&gt;Personas que trabajan con varios repositorios, ramas y sesiones de IA al mismo tiempo.&lt;/li&gt;
&lt;li&gt;Quienes quieren ver cambios de archivos, diffs y estado del workspace en un panel lateral.&lt;/li&gt;
&lt;li&gt;Usuarios que quieren probar Computer Use y dejar que un Agent opere apps de escritorio.&lt;/li&gt;
&lt;li&gt;Personas que quieren conectar OpenAI, DeepSeek, Ollama u otros modelos mediante un protocolo compatible con Anthropic.&lt;/li&gt;
&lt;li&gt;Usuarios que necesitan ver sesiones o aprobar permisos desde móvil o IM.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Encaja peor con:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Usuarios que solo quieren la experiencia oficial y estable de Claude Code.&lt;/li&gt;
&lt;li&gt;Personas que no aceptan el origen en código filtrado y la incertidumbre de copyright.&lt;/li&gt;
&lt;li&gt;Usuarios que no quieren conceder permisos altos del sistema a herramientas locales.&lt;/li&gt;
&lt;li&gt;Equipos que necesitan cumplimiento empresarial, auditoría y soporte oficial.&lt;/li&gt;
&lt;li&gt;Personas que no están cómodas con API keys, proxies, compatibilidad de modelos y servicios locales.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;riesgos-y-límites&#34;&gt;Riesgos y límites
&lt;/h2&gt;&lt;p&gt;Este artículo no puede hablar solo de funciones; también debe hablar de riesgos.&lt;/p&gt;
&lt;p&gt;El origen de &lt;code&gt;cc-haha&lt;/code&gt; hace que no sea una reimplementación comunitaria normal. El README indica claramente que está basado en código fuente filtrado de Claude Code, y que el código original pertenece a Anthropic. Eso crea incertidumbre de copyright, cumplimiento y mantenimiento a largo plazo.&lt;/p&gt;
&lt;p&gt;Además, Computer Use, acceso remoto H5, integración IM y aprobación local de permisos son capacidades de alto privilegio. Cuanto más cómodas son, más claros deben ser sus límites:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No abrir H5 access en redes no confiables.&lt;/li&gt;
&lt;li&gt;No tratar el token como una credencial pública de login a largo plazo.&lt;/li&gt;
&lt;li&gt;No permitir que el Agent opere aplicaciones sensibles no relacionadas.&lt;/li&gt;
&lt;li&gt;No integrarlo casualmente en producción o entornos corporativos regulados.&lt;/li&gt;
&lt;li&gt;No exponer configuración de proxies de modelos ni API keys en repositorios públicos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si el objetivo es estudiar arquitectura de herramientas de programación con IA, flujos de escritorio e implementación de Computer Use, es una referencia útil. Si se quiere usar en un flujo de producción a largo plazo, hay que evaluar primero riesgos legales, de permisos, seguridad y mantenimiento.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Lo más interesante de &lt;code&gt;cc-haha&lt;/code&gt; no es si puede replicar Claude Code, sino que empuja las herramientas de programación con IA tipo Claude Code hacia una forma de banco de trabajo de escritorio.&lt;/p&gt;
&lt;p&gt;Sesiones, proyectos, Worktree, diffs, permisos, acceso remoto, Computer Use, proveedores de modelos, tareas programadas y estadísticas de tokens se reúnen en una sola experiencia de escritorio. Esto muestra que el siguiente paso de las herramientas de programación con IA no es solo tener modelos más fuertes, sino también interfaces de flujo de trabajo más completas.&lt;/p&gt;
&lt;p&gt;Pero sus límites también son claros: no es un producto oficial de Anthropic, tiene un origen sensible y sus funciones de alto permiso requieren cuidado. La actitud más razonable es verlo como un proyecto para observar la evolución de las herramientas de programación con IA, no como un reemplazo despreocupado de Claude Code oficial.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Repositorio de GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/NanmiCoder/cc-haha&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/NanmiCoder/cc-haha&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Último release: &lt;a class=&#34;link&#34; href=&#34;https://github.com/NanmiCoder/cc-haha/releases/tag/v0.2.6&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/NanmiCoder/cc-haha/releases/tag/v0.2.6&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Documentación de Computer Use: &lt;a class=&#34;link&#34; href=&#34;https://github.com/NanmiCoder/cc-haha/blob/main/docs/computer-use.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/NanmiCoder/cc-haha/blob/main/docs/computer-use.md&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Documentación de modelos de terceros: &lt;a class=&#34;link&#34; href=&#34;https://github.com/NanmiCoder/cc-haha/blob/main/docs/guide/third-party-models.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/NanmiCoder/cc-haha/blob/main/docs/guide/third-party-models.md&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Codex /goal vs Claude Code /goal: ejecutar tareas largas hasta terminarlas</title>
        <link>https://knightli.com/es/2026/05/14/codex-goal-vs-claude-code-goal/</link>
        <pubDate>Thu, 14 May 2026 22:25:31 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/14/codex-goal-vs-claude-code-goal/</guid>
        <description>&lt;p&gt;&lt;code&gt;/goal&lt;/code&gt; se está convirtiendo en un comando importante dentro de las herramientas de programación con IA.&lt;/p&gt;
&lt;p&gt;No se trata de hacer que el modelo escriba unas cuantas líneas más de código. Resuelve un problema más práctico: cuando una tarea tiene condiciones claras de finalización, ¿puede el Agent seguir avanzando hasta cumplirlas, en lugar de detenerse después de cada turno y esperar a que el usuario escriba &amp;ldquo;continúa&amp;rdquo;?&lt;/p&gt;
&lt;p&gt;Codex CLI ya añadió un &lt;code&gt;/goal&lt;/code&gt; experimental en su documentación oficial. Claude Code también publicó su propia documentación de &lt;code&gt;/goal&lt;/code&gt;, y lo describe como una capacidad de automatización que puede seguir trabajando durante varios turnos. El nombre es el mismo, pero la orientación del producto no es exactamente igual.&lt;/p&gt;
&lt;h2 id=&#34;qué-problema-resuelve-goal&#34;&gt;Qué problema resuelve &lt;code&gt;/goal&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;Una conversación normal de programación con IA suele funcionar turno por turno:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;El usuario plantea una tarea.&lt;/li&gt;
&lt;li&gt;El Agent analiza, modifica código y ejecuta pruebas.&lt;/li&gt;
&lt;li&gt;El Agent informa el resultado.&lt;/li&gt;
&lt;li&gt;El usuario decide el siguiente paso.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Ese flujo funciona bien para tareas cortas. Pero cuando se trata de migraciones, refactors, correcciones de pruebas o limpieza de un issue backlog, se vuelve fragmentado. El Agent puede avanzar solo un poco y luego detenerse hasta que escribas &amp;ldquo;continúa&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;La idea de &lt;code&gt;/goal&lt;/code&gt; es cambiar la pregunta de &amp;ldquo;qué hago ahora&amp;rdquo; a &amp;ldquo;qué estado final cuenta como terminado&amp;rdquo;. Por ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal 完成登录模块迁移，所有 auth 测试通过，lint 无报错
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Este tipo de objetivo encaja de forma natural con tareas largas, porque tiene un punto final claro: las pruebas pasan, la compilación funciona, los archivos se han dividido, una cola queda vacía o se cumplen los criterios de aceptación.&lt;/p&gt;
&lt;h2 id=&#34;goal-en-codex-experimental-y-ligado-al-hilo-actual&#34;&gt;&lt;code&gt;/goal&lt;/code&gt; en Codex: experimental y ligado al hilo actual
&lt;/h2&gt;&lt;p&gt;La documentación de Codex CLI de OpenAI marca &lt;code&gt;/goal&lt;/code&gt; como experimental. No es una capacidad estable activada por defecto; primero hay que habilitar &lt;code&gt;features.goals&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Hay dos formas de hacerlo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/experimental
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;O añadir esto a &lt;code&gt;config.toml&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-toml&#34; data-lang=&#34;toml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;features&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;goals&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Una vez habilitado, se puede usar así:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal Finish the migration and keep tests green
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Los comandos habituales incluyen:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal pause
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal resume
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal clear
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Según la documentación de OpenAI, Codex adjunta el goal al active thread actual y sigue ese objetivo mientras avanza una tarea más grande.&lt;/p&gt;
&lt;p&gt;Aquí hay un detalle importante: el lenguaje oficial sobre Codex &lt;code&gt;/goal&lt;/code&gt; es prudente. Enfatiza configurar un objetivo experimental para trabajo de larga duración y adjuntar ese objetivo al hilo actual, pero no describe con el mismo detalle que la documentación de Claude Code un evaluator independiente que revise cada turno y arranque automáticamente el siguiente. Por eso, de momento conviene tratar Codex &lt;code&gt;/goal&lt;/code&gt; como un mecanismo experimental para objetivos de tareas largas, no como un modo de ejecución desatendida plenamente estable.&lt;/p&gt;
&lt;h2 id=&#34;goal-en-claude-code-ejecución-por-varias-rondas-guiada-por-condiciones-de-finalización&#34;&gt;&lt;code&gt;/goal&lt;/code&gt; en Claude Code: ejecución por varias rondas guiada por condiciones de finalización
&lt;/h2&gt;&lt;p&gt;La documentación de &lt;code&gt;/goal&lt;/code&gt; en Claude Code es más explícita: después de que el usuario define una completion condition, Claude sigue trabajando entre turnos hasta cumplirla.&lt;/p&gt;
&lt;p&gt;Ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal all tests in test/auth pass and the lint step is clean
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El mecanismo de Claude Code, a grandes rasgos, es este:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cuando termina el turno actual, el control no vuelve inmediatamente al usuario.&lt;/li&gt;
&lt;li&gt;Un modelo pequeño y rápido revisa si la condición del objetivo ya se cumplió.&lt;/li&gt;
&lt;li&gt;Si no se cumplió, Claude empieza automáticamente el siguiente turno.&lt;/li&gt;
&lt;li&gt;Si se cumplió, el goal se borra automáticamente y el estado de finalización queda registrado en el transcript.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto hace que &lt;code&gt;/goal&lt;/code&gt; en Claude Code se parezca más a &amp;ldquo;continuar automáticamente hasta satisfacer la condición de finalización&amp;rdquo;. No solo fija un objetivo en la conversación; delega en un paso de evaluación independiente la decisión de si debe continuar.&lt;/p&gt;
&lt;p&gt;Claude Code también permite ver el estado directamente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El estado muestra la condición del objetivo, el tiempo transcurrido, la cantidad de turnos evaluados, el consumo de tokens y la razón más reciente del evaluator.&lt;/p&gt;
&lt;p&gt;Para detenerlo antes de tiempo, se puede usar:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal clear
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;stop&lt;/code&gt;, &lt;code&gt;off&lt;/code&gt;, &lt;code&gt;reset&lt;/code&gt;, &lt;code&gt;none&lt;/code&gt; y &lt;code&gt;cancel&lt;/code&gt; también funcionan como alias de limpieza. Después de activar un objetivo, si la sesión se interrumpe y más tarde se reanuda con &lt;code&gt;--resume&lt;/code&gt; o &lt;code&gt;--continue&lt;/code&gt;, un goal activo puede recuperarse. Sin embargo, el tiempo, el número de turnos y la línea base de tokens se recalculan.&lt;/p&gt;
&lt;h2 id=&#34;la-diferencia-principal&#34;&gt;La diferencia principal
&lt;/h2&gt;&lt;p&gt;Codex y Claude Code están empujando la programación con IA desde respuestas de un solo turno hacia la ejecución de tareas largas, pero la posición de &lt;code&gt;/goal&lt;/code&gt; no es la misma.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Comparación&lt;/th&gt;
          &lt;th&gt;Codex CLI &lt;code&gt;/goal&lt;/code&gt;&lt;/th&gt;
          &lt;th&gt;Claude Code &lt;code&gt;/goal&lt;/code&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Estado&lt;/td&gt;
          &lt;td&gt;experimental&lt;/td&gt;
          &lt;td&gt;documentado en una página oficial dedicada&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Activación&lt;/td&gt;
          &lt;td&gt;requiere &lt;code&gt;features.goals&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;usable directamente en un workspace confiable&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Alcance del objetivo&lt;/td&gt;
          &lt;td&gt;active thread actual&lt;/td&gt;
          &lt;td&gt;session actual&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Operaciones habituales&lt;/td&gt;
          &lt;td&gt;set / view / pause / resume / clear&lt;/td&gt;
          &lt;td&gt;set / view / clear&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Evaluación automática&lt;/td&gt;
          &lt;td&gt;la documentación enfatiza adjuntar y seguir el objetivo&lt;/td&gt;
          &lt;td&gt;la documentación describe checks del evaluator después de cada turno&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Continuación automática&lt;/td&gt;
          &lt;td&gt;el lenguaje oficial es prudente&lt;/td&gt;
          &lt;td&gt;empieza el siguiente turno automáticamente si las condiciones no se cumplen&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Mejor caso de uso&lt;/td&gt;
          &lt;td&gt;mantener un objetivo de largo plazo en una tarea de Codex&lt;/td&gt;
          &lt;td&gt;dejar que Claude Code avance según condiciones de finalización&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;En resumen, &lt;code&gt;/goal&lt;/code&gt; en Codex se parece más a &amp;ldquo;adjuntar un objetivo experimental de largo plazo al hilo actual&amp;rdquo;. &lt;code&gt;/goal&lt;/code&gt; en Claude Code se parece más a &amp;ldquo;definir una condición verificable de parada para la sesión actual y dejar que siga trabajando hasta satisfacerla&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;cómo-escribir-un-buen-goal&#34;&gt;Cómo escribir un buen &lt;code&gt;/goal&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;Uses la herramienta que uses, &lt;code&gt;/goal&lt;/code&gt; no es un buen lugar para deseos vagos.&lt;/p&gt;
&lt;p&gt;Un mal ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal 把项目优化一下
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Un mejor ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal 将 payment 模块迁移到新 API，npm test -- payment 退出码为 0，git diff 只包含 payment 相关文件
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Un buen objetivo suele incluir tres cosas:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Un estado final claro.&lt;/li&gt;
&lt;li&gt;Un método de validación ejecutable.&lt;/li&gt;
&lt;li&gt;Límites que deben respetarse.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si el objetivo es grande, conviene añadir una condición de parada:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal 修复 eslint 报错，npm run lint 退出码为 0；如果超过 20 轮仍未完成，停止并总结剩余问题
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Esto importa. Cuanto más potente sea &lt;code&gt;/goal&lt;/code&gt;, más necesita límites. Si no, el Agent puede modificar demasiados archivos, ejecutarse durante demasiado tiempo, consumir demasiados tokens o seguir adelante con una cuestión que debería haberse detenido para pedir criterio humano.&lt;/p&gt;
&lt;h2 id=&#34;cuándo-conviene-usar-goal&#34;&gt;Cuándo conviene usar &lt;code&gt;/goal&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;Encaja bien con:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Corrección de pruebas: hasta que pasen pruebas específicas.&lt;/li&gt;
&lt;li&gt;Migraciones de código: hasta que todos los puntos de llamada estén actualizados y la compilación funcione.&lt;/li&gt;
&lt;li&gt;Limpieza por lotes: hasta eliminar una clase de errores de lint o tipos.&lt;/li&gt;
&lt;li&gt;Documentación: hasta que todos los módulos especificados tengan explicación.&lt;/li&gt;
&lt;li&gt;Gestión de issues: hasta que todos los issues bajo una etiqueta estén tratados o clasificados con claridad.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No encaja bien con:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Requisitos que todavía no están claros.&lt;/li&gt;
&lt;li&gt;Tareas que requieren juicio de producto frecuente.&lt;/li&gt;
&lt;li&gt;Eliminaciones de alto riesgo, migraciones de datos o cambios de permisos.&lt;/li&gt;
&lt;li&gt;Criterios de aceptación puramente subjetivos.&lt;/li&gt;
&lt;li&gt;Tareas que cruzan muchos módulos no relacionados.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Una regla práctica: si puedes escribir &amp;ldquo;qué comando ejecutar, qué resultado esperar y qué archivos no se deben tocar&amp;rdquo;, es buen candidato para &lt;code&gt;/goal&lt;/code&gt;. Si solo puedes escribir &amp;ldquo;hazlo mejor&amp;rdquo;, sigue siendo más seguro usar conversación normal, plan mode o revisión humana.&lt;/p&gt;
&lt;h2 id=&#34;qué-significa-esto-para-las-herramientas-de-programación-con-ia&#34;&gt;Qué significa esto para las herramientas de programación con IA
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;/goal&lt;/code&gt; apunta a una dirección clara: las herramientas de programación con IA están pasando de asistentes interactivos a unidades de trabajo que pueden ejecutarse de forma continua.&lt;/p&gt;
&lt;p&gt;Antes, usar un Agent solía implicar quedarse cerca. Si se atascaba, lo guiabas. Si terminaba las pruebas, le decías que continuara. Si aparecía un error, dabas otra orden. &lt;code&gt;/goal&lt;/code&gt; comprime esa interacción en una condición de finalización y deja que el Agent decida qué debe hacer el siguiente turno.&lt;/p&gt;
&lt;p&gt;Pero esto también sube el listón para los usuarios. Escribir prompts ya no consiste solo en describir una tarea; también implica definir criterios de aceptación, comandos de validación, límites de modificación y reglas de parada. Dicho de otro modo, el trabajo del usuario pasa de &amp;ldquo;pedirle que continúe&amp;rdquo; a &amp;ldquo;definir qué significa terminado&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Que Codex y Claude Code hayan llegado a &lt;code&gt;/goal&lt;/code&gt; muestra que los Agents de tareas largas ya no pertenecen solo a tareas en segundo plano o colas en la nube. Las herramientas locales de programación en terminal también empiezan a necesitar una capacidad más fuerte de avance autónomo.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Codex CLI y Claude Code tienen &lt;code&gt;/goal&lt;/code&gt;, pero por ahora no conviene tratarlos como la misma función.&lt;/p&gt;
&lt;p&gt;El &lt;code&gt;/goal&lt;/code&gt; de Codex sigue siendo experimental, requiere &lt;code&gt;features.goals&lt;/code&gt; y encaja mejor como una forma de mantener un objetivo de largo plazo en el hilo actual de Codex. El &lt;code&gt;/goal&lt;/code&gt; de Claude Code conecta de forma más explícita las condiciones de finalización con la continuación automática, usando un evaluator independiente para decidir si debe seguir.&lt;/p&gt;
&lt;p&gt;Para el desarrollo diario, este tipo de comando funciona mejor en tareas de ingeniería con criterios de aceptación claros. No reemplaza el juicio de producto ni la revisión de código, pero puede reducir mucho el ciclo repetitivo de &amp;ldquo;continúa&amp;rdquo;, &amp;ldquo;ejecútalo otra vez&amp;rdquo; y &amp;ldquo;corrige hasta que pasen las pruebas&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;La habilidad importante no es memorizar el comando, sino aprender a escribir tareas como objetivos claros, verificables y detenibles.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;OpenAI Codex CLI Slash Commands: &lt;a class=&#34;link&#34; href=&#34;https://developers.openai.com/codex/cli/slash-commands&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://developers.openai.com/codex/cli/slash-commands&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Documentación de Claude Code Goal: &lt;a class=&#34;link&#34; href=&#34;https://code.claude.com/docs/en/goal&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://code.claude.com/docs/en/goal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Conectar Claude a Fusion 360: un ejemplo de edición de modelos STEP con AI</title>
        <link>https://knightli.com/es/2026/05/14/claude-fusion-360-mcp-step-model-edit/</link>
        <pubDate>Thu, 14 May 2026 20:58:04 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/14/claude-fusion-360-mcp-step-model-edit/</guid>
        <description>&lt;p&gt;Después de conectar Claude a Fusion 360, ya no sirve solo para “explicar ideas”: puede participar directamente en la edición de modelos CAD. Un flujo típico consiste en abrir un archivo STEP existente, dejar que Claude lea el modelo actual, analice conflictos estructurales, planifique dimensiones y ejecute cambios de modelado a través del plugin de Fusion.&lt;/p&gt;
&lt;p&gt;A continuación se usa la modificación de un divisor con engranaje planetario como ejemplo para resumir el flujo básico de Claude + Fusion 360.&lt;/p&gt;
&lt;h2 id=&#34;primero-activa-el-servicio-apimcp-de-fusion-360&#34;&gt;Primero activa el servicio API/MCP de Fusion 360
&lt;/h2&gt;&lt;p&gt;Empieza con una configuración básica en Fusion 360:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Abre &lt;code&gt;Preferences&lt;/code&gt; en la esquina superior derecha.&lt;/li&gt;
&lt;li&gt;Entra en &lt;code&gt;General&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Busca la opción &lt;code&gt;API&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Activa el MCP server.&lt;/li&gt;
&lt;li&gt;Anota el número de puerto. El ejemplo por defecto es &lt;code&gt;27182&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Después vuelve a Claude, entra en &lt;code&gt;Connectors&lt;/code&gt;, busca el conector de Fusion e introduce la dirección y el puerto de Fusion 360. Normalmente basta con el puerto por defecto &lt;code&gt;27182&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Cuando la conexión funciona, Claude puede interactuar con el modelo abierto a través del plugin de Fusion.&lt;/p&gt;
&lt;h2 id=&#34;abre-el-archivo-step-y-define-claramente-el-objetivo&#34;&gt;Abre el archivo STEP y define claramente el objetivo
&lt;/h2&gt;&lt;p&gt;La pieza a modificar es un engranaje dentro de un divisor planetario. En el diseño original, el engranaje se fija al soporte con un tornillo que actúa como eje central.&lt;/p&gt;
&lt;p&gt;El objetivo es convertirlo en una estructura con rodamiento:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;el agujero central debe adaptarse al rodamiento;&lt;/li&gt;
&lt;li&gt;los agujeros de tornillo alrededor no deben interferir con el agujero central ampliado;&lt;/li&gt;
&lt;li&gt;el agujero para tornillo autorroscante del soporte también debe ajustarse a una estructura de eje adecuada para la rotación del rodamiento;&lt;/li&gt;
&lt;li&gt;el modelo final debe poder importarse en un slicer y usarse para impresión 3D.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La clave es no decirle simplemente a Claude “modifica esto”. Hay que explicar claramente el uso, el método de ensamblaje, el material y el proceso de fabricación.&lt;/p&gt;
&lt;h2 id=&#34;claude-puede-entender-el-modelo-actual-mediante-capturas&#34;&gt;Claude puede entender el modelo actual mediante capturas
&lt;/h2&gt;&lt;p&gt;Algunas personas se preocupan de que el plugin de Fusion solo pueda ejecutar comandos y no permita que Claude vea el modelo. En pruebas reales, Claude puede reconocer el estado actual del modelo mediante capturas de pantalla.&lt;/p&gt;
&lt;p&gt;En este caso, Claude pudo ver la estructura del engranaje y hacer varias cosas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;identificar el engranaje y el agujero central;&lt;/li&gt;
&lt;li&gt;medir o estimar dimensiones relevantes;&lt;/li&gt;
&lt;li&gt;recomendar dimensiones de rodamiento;&lt;/li&gt;
&lt;li&gt;juzgar qué estructuras afectarían la instalación del rodamiento;&lt;/li&gt;
&lt;li&gt;detectar que, al ampliar el agujero central, los agujeros de tornillo alrededor podrían generar interferencia geométrica.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Este paso es importante. Muestra que Claude no edita a ciegas siguiendo solo instrucciones de texto, sino que puede combinar la vista actual del modelo con razonamiento estructural.&lt;/p&gt;
&lt;h2 id=&#34;el-material-y-el-método-de-fabricación-deben-indicarse-antes&#34;&gt;El material y el método de fabricación deben indicarse antes
&lt;/h2&gt;&lt;p&gt;Si el modelo final se usará para impresión 3D, hay que decirle claramente a Claude el material y el proceso.&lt;/p&gt;
&lt;p&gt;Por ejemplo, al imprimir con PLA, el agujero para el rodamiento no debe diseñarse estrictamente con tolerancias de mecanizado CNC en metal. Para un rodamiento de 6mm que debe entrar a presión, puede considerarse un diámetro de agujero cercano a &lt;code&gt;6.1mm&lt;/code&gt;. Si ese tamaño es adecuado dependerá de la precisión de la impresora, la contracción del material, los parámetros del slicer y las pruebas reales.&lt;/p&gt;
&lt;p&gt;Si no se especifica el material, Claude puede asumir tolerancias propias de CNC. El agujero resultante puede ser demasiado pequeño para impresión 3D y dificultar el ensamblaje.&lt;/p&gt;
&lt;p&gt;Un prompt útil sería:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Este modelo es para impresión 3D FDM, usando PLA.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;El objetivo es instalar un rodamiento de 6mm, así que hay que considerar tolerancia de impresión y ajuste a presión.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;No lo trates como tolerancia de mecanizado CNC en metal.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;deja-que-claude-modifique-la-estructura-del-engranaje&#34;&gt;Deja que Claude modifique la estructura del engranaje
&lt;/h2&gt;&lt;p&gt;Una vez claro el objetivo, Claude puede ejecutar modificaciones concretas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ampliar el agujero central;&lt;/li&gt;
&lt;li&gt;ajustar los agujeros de tornillo que generan interferencia;&lt;/li&gt;
&lt;li&gt;añadir un asiento para rodamiento;&lt;/li&gt;
&lt;li&gt;añadir chaflanes en los bordes;&lt;/li&gt;
&lt;li&gt;mantener el cuerpo del engranaje y la estructura de engrane clave sin cambios.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En este caso, Claude primero preparó un plan y luego llamó a Fusion 360 para ejecutar operaciones de modelado. Por ejemplo, al detectar un conflicto entre los agujeros de tornillo originales y el agujero central, movió los agujeros ligeramente hacia afuera para no destruir el espacio de instalación del rodamiento.&lt;/p&gt;
&lt;p&gt;Después de la modificación, conviene revisar el modelo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;si el asiento central del rodamiento quedó bien formado;&lt;/li&gt;
&lt;li&gt;si los agujeros alrededor conservan su función;&lt;/li&gt;
&lt;li&gt;si la estructura del engranaje fue dañada por error;&lt;/li&gt;
&lt;li&gt;si los chaflanes afectan el ensamblaje;&lt;/li&gt;
&lt;li&gt;si existen voladizos, paredes delgadas o riesgos de slicing.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;el-soporte-también-debe-modificarse&#34;&gt;El soporte también debe modificarse
&lt;/h2&gt;&lt;p&gt;Modificar solo el engranaje no basta. El soporte original tenía un agujero para tornillo autorroscante. Si el centro del engranaje pasa a usar rodamiento, el soporte también debe adaptarse a una estructura de eje para el rodamiento.&lt;/p&gt;
&lt;p&gt;Puedes pedirle a Claude una modificación similar en el soporte:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;conservar la posición general de montaje;&lt;/li&gt;
&lt;li&gt;convertir el agujero autorroscante original en un eje cilíndrico;&lt;/li&gt;
&lt;li&gt;controlar diámetro y altura del eje;&lt;/li&gt;
&lt;li&gt;reservar espacio para la rotación del rodamiento;&lt;/li&gt;
&lt;li&gt;evitar interferencia con otras partes del soporte.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Después de imprimir, el engranaje puede presionarse en el rodamiento y el soporte puede proporcionar el nuevo centro de rotación. El resultado final convierte una estructura fijada con tornillo en una estructura de rotación con rodamiento más suave.&lt;/p&gt;
&lt;h2 id=&#34;exportar-laminar-e-imprimir-para-verificar&#34;&gt;Exportar, laminar e imprimir para verificar
&lt;/h2&gt;&lt;p&gt;Después de modificar el CAD, todavía hay que pasar por el proceso real de fabricación:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Exportar el modelo modificado desde Fusion 360.&lt;/li&gt;
&lt;li&gt;Importarlo en el slicer.&lt;/li&gt;
&lt;li&gt;Revisar agujeros, paredes delgadas, voladizos y soportes.&lt;/li&gt;
&lt;li&gt;Imprimir el engranaje y el soporte.&lt;/li&gt;
&lt;li&gt;Presionar el rodamiento en su lugar.&lt;/li&gt;
&lt;li&gt;Comprobar si la rotación es suave.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Los resultados CAD modificados por AI no deben juzgarse solo por si el modelo se ve bien en pantalla. Hay que verificarlos imprimiendo. En estructuras mecánicas como rodamientos, agujeros, clips y engranajes, un error de 0,1mm puede decidir si la pieza encaja y gira bien.&lt;/p&gt;
&lt;h2 id=&#34;sugerencias-de-uso&#34;&gt;Sugerencias de uso
&lt;/h2&gt;&lt;p&gt;Claude + Fusion 360 encaja bien en tareas como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;hacer modificaciones locales en modelos STEP existentes;&lt;/li&gt;
&lt;li&gt;ajustar agujeros, chaflanes, soportes y asientos de montaje;&lt;/li&gt;
&lt;li&gt;convertir estructuras fijadas con tornillo en estructuras con rodamiento, clip o pasador;&lt;/li&gt;
&lt;li&gt;corregir tolerancias para modelos impresos en 3D;&lt;/li&gt;
&lt;li&gt;generar rápidamente varias versiones revisadas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pero no conviene usarlo para producir piezas finales sin revisión. Un flujo más confiable sería:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;La persona define el objetivo de ensamblaje y el proceso/material.&lt;/li&gt;
&lt;li&gt;Claude analiza la estructura y propone cambios.&lt;/li&gt;
&lt;li&gt;Claude llama a Fusion para ejecutar el modelado.&lt;/li&gt;
&lt;li&gt;La persona revisa dimensiones clave e interferencias.&lt;/li&gt;
&lt;li&gt;Se imprime una muestra pequeña.&lt;/li&gt;
&lt;li&gt;Se itera según el resultado físico.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;El valor de conectar Claude a Fusion 360 no está en reemplazar los fundamentos de CAD, sino en acelerar las modificaciones locales de modelos existentes.&lt;/p&gt;
&lt;p&gt;Si explicas claramente el objetivo, material, dimensiones, tolerancia y método de ensamblaje, Claude puede ayudarte a leer el modelo, encontrar interferencias, modificar estructuras, añadir chaflanes y llevar el modelo hacia un estado imprimible. Para impresión 3D, modificación de piezas mecánicas open source e iteración en pequeños talleres personales, este workflow de AI CAD ya es práctico.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>¿Cómo conectar Codex con modelos chinos? Gestionar APIs compatibles con OpenAI usando CCX</title>
        <link>https://knightli.com/es/2026/05/13/ccx-ai-api-proxy-gateway/</link>
        <pubDate>Wed, 13 May 2026 23:20:40 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/13/ccx-ai-api-proxy-gateway/</guid>
        <description>&lt;p&gt;CCX es una pasarela de proxy y conversión de protocolos para APIs de IA. Coloca Claude Messages, OpenAI Chat Completions, OpenAI Images, Codex Responses y Gemini API detrás de una única entrada de servicio, y ofrece una interfaz web para configurar canales, claves, mapeos de modelos, prioridades, failover y monitoreo de tráfico.&lt;/p&gt;
&lt;p&gt;Si usas Claude, OpenAI, Gemini y Codex al mismo tiempo, o mantienes varios servicios aguas arriba compatibles con OpenAI API, el valor de CCX está en unificar la entrada y la gestión. Los clientes se conectan a una sola dirección; CCX decide qué canal aguas arriba debe atender cada solicitud.&lt;/p&gt;
&lt;p&gt;Proyecto: &lt;a class=&#34;link&#34; href=&#34;https://github.com/BenedictKing/ccx&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/BenedictKing/ccx&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;qué-problema-resuelve-ccx&#34;&gt;Qué problema resuelve CCX
&lt;/h2&gt;&lt;p&gt;Cuando se mezclan varias APIs de IA, aparecen rápidamente algunos problemas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cada proveedor tiene rutas, autenticación y formatos de solicitud diferentes.&lt;/li&gt;
&lt;li&gt;Una misma clase de modelos puede tener varios upstreams, lo que obliga a cambiar manualmente base URL y API key.&lt;/li&gt;
&lt;li&gt;Cuando una clave o canal falla, el cliente normalmente no cambia automáticamente a un canal de respaldo.&lt;/li&gt;
&lt;li&gt;En equipos, cuesta centralizar allowlists de modelos, proxies, cabeceras personalizadas y logs.&lt;/li&gt;
&lt;li&gt;Al conectar Claude, Gemini, OpenAI Chat, APIs de imagen y Codex Responses, la configuración se dispersa.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La idea de CCX es concentrar esas diferencias en una capa proxy. Las herramientas frontend, scripts o servicios de negocio llaman a CCX; luego CCX enruta la solicitud al upstream adecuado según tipo de API, modelo, estado del canal, prioridad y salud.&lt;/p&gt;
&lt;h2 id=&#34;endpoints-soportados&#34;&gt;Endpoints soportados
&lt;/h2&gt;&lt;p&gt;CCX expone una entrada backend unificada. El puerto predeterminado es &lt;code&gt;3000&lt;/code&gt;. Las rutas principales incluyen:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;GET  /                         -&amp;gt; Interfaz web de administración
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;GET  /health                   -&amp;gt; Health check
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/api/*                         -&amp;gt; API de administración
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;POST /v1/messages              -&amp;gt; Proxy de Claude Messages
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;POST /v1/chat/completions      -&amp;gt; Proxy de OpenAI Chat
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;POST /v1/responses             -&amp;gt; Proxy de Codex Responses
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;POST /v1/images/generations    -&amp;gt; Generación con OpenAI Images
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;POST /v1/images/edits          -&amp;gt; Edición con OpenAI Images
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;POST /v1/images/variations     -&amp;gt; Variaciones con OpenAI Images
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;GET  /v1/models                -&amp;gt; Lista de modelos
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;POST /v1beta/models/*          -&amp;gt; Proxy de Gemini
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Es decir, CCX no se limita a un protocolo. Gestiona APIs comunes de IA como tipos de canal separados: Messages, Chat, Responses, Gemini e Images. Cada protocolo mantiene su propio estado de salud y espacio de logs, lo que ayuda al diagnóstico.&lt;/p&gt;
&lt;h2 id=&#34;arquitectura&#34;&gt;Arquitectura
&lt;/h2&gt;&lt;p&gt;CCX usa backend en Go y frontend en Vue 3. El build del frontend se incrusta en el binario del backend, por lo que puede desplegarse en un solo puerto: el mismo servicio ofrece Web UI, API de administración y API proxy.&lt;/p&gt;
&lt;p&gt;Una solicitud pasa aproximadamente por esta cadena:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Client -&amp;gt; Auth Middleware -&amp;gt; Route Handler -&amp;gt; Channel Scheduler -&amp;gt; Provider / Converter -&amp;gt; Upstream API -&amp;gt; Metrics / Channel Logs -&amp;gt; Client Response
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Los módulos principales:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;handlers&lt;/code&gt;: reciben solicitudes de distintos protocolos y operaciones de administración.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;providers&lt;/code&gt;: encapsulan el manejo de solicitudes y respuestas del upstream.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;converters&lt;/code&gt;: gestionan conversiones de protocolo en escenarios como Responses.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;scheduler&lt;/code&gt;: elige canales según prioridad, periodo promocional, salud, circuito abierto y afinidad de traza.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;metrics&lt;/code&gt;: registra volumen, tasa de éxito, latencia, logs y estado de circuit breaker.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;config&lt;/code&gt;: mantiene configuración en tiempo de ejecución, con hot reload y respaldo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El objetivo no es forzar todas las APIs a un único formato, sino proxyar cada tipo de protocolo por separado y unificar gestión, planificación, logs y autenticación.&lt;/p&gt;
&lt;h2 id=&#34;diferencias-entre-ccx-y-codexbridge&#34;&gt;Diferencias entre CCX y CodexBridge
&lt;/h2&gt;&lt;p&gt;CCX y CodexBridge están relacionados con Codex y las APIs compatibles con OpenAI, pero resuelven problemas distintos.&lt;/p&gt;
&lt;p&gt;CodexBridge es más bien un puente dedicado para Codex. Su objetivo principal es encapsular Codex CLI/SDK como un servicio &lt;code&gt;/v1/chat/completions&lt;/code&gt; compatible con OpenAI, para que OpenWebUI, Cherry Studio, scripts u otros clientes compatibles puedan llamar a Codex local. En resumen, CodexBridge se centra en exponer Codex.&lt;/p&gt;
&lt;p&gt;CCX se parece más a una pasarela unificada de APIs de IA. No solo maneja Codex Responses; también soporta Claude Messages, OpenAI Chat, OpenAI Images y Gemini API, con interfaz web, prioridad de canales, failover, monitoreo de logs y gestión de múltiples claves. En resumen, CCX se centra en gestionar varios modelos y proveedores juntos.&lt;/p&gt;
&lt;p&gt;Comparación rápida:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Aspecto&lt;/th&gt;
          &lt;th&gt;CodexBridge&lt;/th&gt;
          &lt;th&gt;CCX&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Posicionamiento&lt;/td&gt;
          &lt;td&gt;Puente local para Codex&lt;/td&gt;
          &lt;td&gt;Pasarela AI API multiprotocolo&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Objetivo principal&lt;/td&gt;
          &lt;td&gt;Convertir Codex en endpoint compatible con OpenAI&lt;/td&gt;
          &lt;td&gt;Gestionar juntos Claude, OpenAI, Gemini, Codex y otros canales&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Interfaz de gestión&lt;/td&gt;
          &lt;td&gt;Se centra en el servicio API&lt;/td&gt;
          &lt;td&gt;Ofrece interfaz web de administración&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Planificación multicanal&lt;/td&gt;
          &lt;td&gt;No es el foco&lt;/td&gt;
          &lt;td&gt;Soporta prioridad, failover y monitoreo de logs&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Mejor escenario&lt;/td&gt;
          &lt;td&gt;Llamadas locales o de un solo servicio a Codex&lt;/td&gt;
          &lt;td&gt;Equipos, múltiples claves, proveedores y protocolos&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Si solo quieres conectar Codex a OpenWebUI o Cherry Studio, CodexBridge es más directo. Si quieres gestionar Codex, Claude, Gemini, DeepSeek, Qwen, Kimi y otros upstreams juntos, CCX encaja mejor.&lt;/p&gt;
&lt;h2 id=&#34;despliegue-rápido&#34;&gt;Despliegue rápido
&lt;/h2&gt;&lt;p&gt;La forma más sencilla es descargar el binario. Luego crea &lt;code&gt;.env&lt;/code&gt; en el mismo directorio:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-env&#34; data-lang=&#34;env&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;PROXY_ACCESS_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your-proxy-access-key
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;PORT&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;3000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ENABLE_WEB_UI&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;APP_UI_LANGUAGE&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;zh-CN
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Tras iniciar, abre:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://localhost:3000
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si desde WSL, Docker, PowerShell u otro entorno en Windows &lt;code&gt;localhost&lt;/code&gt; no funciona, usa la IPv4 LAN del host Windows, por ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://192.168.1.23:3000
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;CCX escucha por defecto en &lt;code&gt;:PORT&lt;/code&gt; para todas las interfaces, así que debes controlar el acceso si lo expones a la LAN.&lt;/p&gt;
&lt;h2 id=&#34;despliegue-con-docker&#34;&gt;Despliegue con Docker
&lt;/h2&gt;&lt;p&gt;Docker es adecuado para mantener el servicio en ejecución:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -d &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --name ccx &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -p 3000:3000 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -e &lt;span class=&#34;nv&#34;&gt;PROXY_ACCESS_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your-proxy-access-key &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -e &lt;span class=&#34;nv&#34;&gt;APP_UI_LANGUAGE&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;zh-CN &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -v &lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;pwd&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;/.config:/app/.config &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  crpi-i19l8zl0ugidq97v.cn-hangzhou.personal.cr.aliyuncs.com/bene/ccx:latest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si el repositorio ya incluye &lt;code&gt;docker-compose.yml&lt;/code&gt;, también puedes ejecutar:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker compose up -d
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Para actualizaciones automáticas, añade la configuración de Watchtower:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker compose -f docker-compose.yml -f docker-compose.watchtower.yml up -d
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Tras desplegar, &lt;code&gt;.config&lt;/code&gt; guarda configuración de runtime y datos persistentes. Conviene montarlo en el host para no perder configuración al recrear el contenedor.&lt;/p&gt;
&lt;h2 id=&#34;ejecutar-desde-código-fuente&#34;&gt;Ejecutar desde código fuente
&lt;/h2&gt;&lt;p&gt;Para desarrollo o builds personalizados:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/BenedictKing/ccx
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; ccx
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cp backend-go/.env.example backend-go/.env
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;make run
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Comandos comunes:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;make dev
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;make run
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;make build
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;make frontend-dev
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Desarrollo solo del frontend:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; frontend
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bun install
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bun run dev
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Desarrollo solo del backend:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; backend-go
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;make dev
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;variables-de-entorno-clave&#34;&gt;Variables de entorno clave
&lt;/h2&gt;&lt;p&gt;Una configuración mínima suele incluir:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-env&#34; data-lang=&#34;env&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;PORT&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;3000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ENV&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;production
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ENABLE_WEB_UI&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;PROXY_ACCESS_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your-proxy-access-key
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ADMIN_ACCESS_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your-admin-secret-key
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;APP_UI_LANGUAGE&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;zh-CN
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;LOG_LEVEL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;info
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;REQUEST_TIMEOUT&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;300000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Notas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;PROXY_ACCESS_KEY&lt;/code&gt; se usa para la API proxy y debe cambiarse.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ADMIN_ACCESS_KEY&lt;/code&gt; se usa para la Web UI y &lt;code&gt;/api/*&lt;/code&gt;; conviene separarlo de la clave proxy.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ENABLE_WEB_UI&lt;/code&gt; controla si la interfaz de administración está activa.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;REQUEST_TIMEOUT&lt;/code&gt; controla el timeout; aumenta el valor para contextos largos o tareas de imagen.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;LOG_LEVEL&lt;/code&gt; controla la verbosidad; en producción suele usarse &lt;code&gt;info&lt;/code&gt; o &lt;code&gt;warn&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para limitar el tamaño del cuerpo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-env&#34; data-lang=&#34;env&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;MAX_REQUEST_BODY_SIZE_MB&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;50&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;La edición de imágenes, imágenes base64 y solicitudes multimodales pueden aumentar mucho el cuerpo.&lt;/p&gt;
&lt;h2 id=&#34;orquestación-de-canales-y-failover&#34;&gt;Orquestación de canales y failover
&lt;/h2&gt;&lt;p&gt;La interfaz de CCX permite configurar múltiples canales, con opciones como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tipo de servicio upstream.&lt;/li&gt;
&lt;li&gt;API key o rotación de múltiples claves.&lt;/li&gt;
&lt;li&gt;Dirección proxy.&lt;/li&gt;
&lt;li&gt;Cabeceras personalizadas.&lt;/li&gt;
&lt;li&gt;Allowlist de modelos.&lt;/li&gt;
&lt;li&gt;Prefijo de ruta.&lt;/li&gt;
&lt;li&gt;Prioridad.&lt;/li&gt;
&lt;li&gt;Health checks y recuperación de circuit breaker.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La planificación considera estado del canal, prioridad, periodo promocional, afinidad de traza, estado de circuit breaker y claves disponibles. En simple:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Normalmente se usan primero los canales de mayor prioridad.&lt;/li&gt;
&lt;li&gt;Si un canal falla, CCX puede cambiar a un canal de respaldo.&lt;/li&gt;
&lt;li&gt;El circuit breaker evita seguir llamando a un upstream claramente no disponible.&lt;/li&gt;
&lt;li&gt;La afinidad de traza intenta mantener sesiones relacionadas en canales adecuados.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas funciones son útiles con múltiples claves, proveedores o upstreams regionales. Para uso personal ligero, también puedes configurar un solo canal y usar CCX como capa proxy con Web UI.&lt;/p&gt;
&lt;h2 id=&#34;logs-y-monitoreo&#34;&gt;Logs y monitoreo
&lt;/h2&gt;&lt;p&gt;CCX ofrece métricas de canal y logs de solicitudes, incluyendo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Volumen de solicitudes.&lt;/li&gt;
&lt;li&gt;Tasa de éxito.&lt;/li&gt;
&lt;li&gt;Tasa de fallo.&lt;/li&gt;
&lt;li&gt;Latencia media.&lt;/li&gt;
&lt;li&gt;Historial por modelo.&lt;/li&gt;
&lt;li&gt;Estado de canales y circuit breakers.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En producción conviene una configuración de logs contenida:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-env&#34; data-lang=&#34;env&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ENV&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;production
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;LOG_LEVEL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;info
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ENABLE_REQUEST_LOGS&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ENABLE_RESPONSE_LOGS&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;false&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Así conservas información básica sin escribir respuestas completas en logs. Para investigar problemas puedes activar logs más detallados temporalmente, pero después deberías volver a una configuración segura, sobre todo en producción.&lt;/p&gt;
&lt;h2 id=&#34;recomendaciones-de-seguridad&#34;&gt;Recomendaciones de seguridad
&lt;/h2&gt;&lt;p&gt;CCX es una pasarela proxy y almacena API keys aguas arriba, así que no basta con que &amp;ldquo;funcione&amp;rdquo;. Como mínimo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No uses un &lt;code&gt;PROXY_ACCESS_KEY&lt;/code&gt; predeterminado o demasiado corto.&lt;/li&gt;
&lt;li&gt;Define un &lt;code&gt;ADMIN_ACCESS_KEY&lt;/code&gt; separado.&lt;/li&gt;
&lt;li&gt;No expongas directamente la Web UI a internet.&lt;/li&gt;
&lt;li&gt;Si necesitas acceso público, colócala detrás de reverse proxy, VPN, control de acceso o SSO.&lt;/li&gt;
&lt;li&gt;No subas &lt;code&gt;.env&lt;/code&gt;, &lt;code&gt;.config&lt;/code&gt; ni logs a Git.&lt;/li&gt;
&lt;li&gt;No mantengas logs completos de cuerpo de solicitud y respuesta en producción.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Puedes generar claves aleatorias así:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;PROXY_ACCESS_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;openssl rand -base64 32&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ADMIN_ACCESS_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;openssl rand -base64 32&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;para-quién-es-adecuado&#34;&gt;Para quién es adecuado
&lt;/h2&gt;&lt;p&gt;CCX encaja mejor en estos escenarios:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mantener Claude, OpenAI, Gemini, Codex o APIs de imagen al mismo tiempo.&lt;/li&gt;
&lt;li&gt;Tener varias API keys que requieren rotación, enrutamiento y failover.&lt;/li&gt;
&lt;li&gt;Gestionar upstreams desde una Web UI en vez de editar archivos manualmente.&lt;/li&gt;
&lt;li&gt;Observar tasa de éxito, latencia y logs de cada canal.&lt;/li&gt;
&lt;li&gt;Proporcionar a un equipo una entrada AI API unificada.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si solo llamas ocasionalmente a un modelo en tu equipo local, el SDK oficial o un proxy compatible con OpenAI más simple será suficiente. La ventaja de CCX está en múltiples canales, múltiples protocolos y operación unificada.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;CCX es una pasarela AI API, no un cliente para un modelo concreto. Coloca Claude Messages, OpenAI Chat, OpenAI Images, Codex Responses y Gemini en una capa proxy, y ofrece orquestación de canales, failover, logs, monitoreo y Web UI.&lt;/p&gt;
&lt;p&gt;Para usuarios individuales, reduce la molestia de cambiar direcciones API y claves. Para equipos o servicios de larga duración, se parece más a una pasarela ligera de IA. Antes de producción, lo importante no es solo configurar modelos, sino también claves, entrada de administración, niveles de log, prioridades de canal y estrategia de failover.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Proyecto GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/BenedictKing/ccx&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/BenedictKing/ccx&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Arquitectura: &lt;a class=&#34;link&#34; href=&#34;https://github.com/BenedictKing/ccx/blob/main/ARCHITECTURE.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/BenedictKing/ccx/blob/main/ARCHITECTURE.md&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Variables de entorno: &lt;a class=&#34;link&#34; href=&#34;https://github.com/BenedictKing/ccx/blob/main/ENVIRONMENT.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/BenedictKing/ccx/blob/main/ENVIRONMENT.md&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>¿Cómo conectar Codex con modelos chinos? APIs compatibles con OpenAI y el enfoque de CodexBridge</title>
        <link>https://knightli.com/es/2026/05/13/codexbridge-openai-compatible-api/</link>
        <pubDate>Wed, 13 May 2026 23:08:28 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/13/codexbridge-openai-compatible-api/</guid>
        <description>&lt;p&gt;CodexBridge es una herramienta local de puente cuyo objetivo es claro: exponer Codex CLI/SDK como un servicio HTTP compatible con OpenAI. Así, Codex deja de estar limitado al terminal y puede ser llamado desde OpenWebUI, Cherry Studio, scripts, sistemas de automatización o cualquier cliente compatible con OpenAI Chat Completions.&lt;/p&gt;
&lt;p&gt;Sus endpoints principales son &lt;code&gt;/v1/chat/completions&lt;/code&gt; y &lt;code&gt;/v1/models&lt;/code&gt;. El primero gestiona conversaciones y admite respuestas normales y transmisión SSE. El segundo permite a los clientes descubrir modelos como si leyeran una lista de modelos estilo OpenAI. Para herramientas que ya soportan OpenAI API, normalmente basta con cambiar el base URL, la API key y el nombre del modelo.&lt;/p&gt;
&lt;p&gt;Proyecto: &lt;a class=&#34;link&#34; href=&#34;https://github.com/begonia599/CodexBridge&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/begonia599/CodexBridge&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;cuándo-usarlo&#34;&gt;Cuándo usarlo
&lt;/h2&gt;&lt;p&gt;CodexBridge encaja cuando quieres integrar Codex en clientes o flujos de trabajo existentes. Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Seleccionar Codex directamente en OpenWebUI o Cherry Studio.&lt;/li&gt;
&lt;li&gt;Llamar a Codex local desde &lt;code&gt;curl&lt;/code&gt;, Python, Node.js u otros scripts.&lt;/li&gt;
&lt;li&gt;Conectar un mismo frontend a OpenAI, Ollama, otras APIs compatibles y Codex.&lt;/li&gt;
&lt;li&gt;Conservar los hilos locales, sandbox, directorio de trabajo y aprobaciones de Codex.&lt;/li&gt;
&lt;li&gt;Ofrecer a herramientas internas una entrada unificada &lt;code&gt;/v1/chat/completions&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No es un nuevo LLM ni un reemplazo completo de Codex CLI. Es más bien una capa adaptadora: Codex sigue siendo el motor aguas arriba, y el puente convierte solicitudes estilo OpenAI en entradas de conversación que Codex entiende.&lt;/p&gt;
&lt;h2 id=&#34;requisitos-básicos&#34;&gt;Requisitos básicos
&lt;/h2&gt;&lt;p&gt;Antes de ejecutarlo necesitas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Node.js 18 o superior.&lt;/li&gt;
&lt;li&gt;Codex CLI instalado y con sesión iniciada.&lt;/li&gt;
&lt;li&gt;npm, o pnpm / yarn si lo prefieres.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Despliegue básico desde código fuente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/begonia599/CodexBridge
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; codexbridge
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cp .env.example .env
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cp .env .env.local
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Luego edita &lt;code&gt;.env&lt;/code&gt; o &lt;code&gt;.env.local&lt;/code&gt; para definir la API key, modelo predeterminado, directorio de trabajo, modo sandbox, acceso de red y otras opciones.&lt;/p&gt;
&lt;p&gt;Inicia el servicio HTTP:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm run codex:server
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El puerto predeterminado es &lt;code&gt;8080&lt;/code&gt;, configurable con &lt;code&gt;PORT&lt;/code&gt;. Tras iniciar, el servicio expone:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;GET /health
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;POST /v1/chat/completions
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;GET /v1/models
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;modo-de-conversación-cli&#34;&gt;Modo de conversación CLI
&lt;/h2&gt;&lt;p&gt;Además del servicio HTTP, CodexBridge conserva una CLI ligera:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm run codex:chat
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Desde la CLI puedes escribir mensajes en lenguaje natural para conversar con Codex. Dos comandos útiles son:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/reset&lt;/code&gt;: crear un nuevo hilo de Codex.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/exit&lt;/code&gt;: salir de la CLI.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El ID del hilo actual se guarda en &lt;code&gt;.codex_thread.json&lt;/code&gt;. Si este archivo sigue existiendo al iniciar la CLI de nuevo, puedes continuar la conversación anterior.&lt;/p&gt;
&lt;h2 id=&#34;ejemplo-http&#34;&gt;Ejemplo HTTP
&lt;/h2&gt;&lt;p&gt;Una solicitud mínima:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl http://localhost:8080/v1/chat/completions &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -H &lt;span class=&#34;s2&#34;&gt;&amp;#34;content-type: application/json&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -H &lt;span class=&#34;s2&#34;&gt;&amp;#34;authorization: Bearer 123321&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -d &lt;span class=&#34;s1&#34;&gt;&amp;#39;{&amp;#34;model&amp;#34;:&amp;#34;gpt-5-codex:medium&amp;#34;,&amp;#34;session_id&amp;#34;:&amp;#34;demo&amp;#34;,&amp;#34;messages&amp;#34;:[{&amp;#34;role&amp;#34;:&amp;#34;user&amp;#34;,&amp;#34;content&amp;#34;:&amp;#34;ls&amp;#34;}]}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Puntos importantes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El token de &lt;code&gt;authorization&lt;/code&gt; debe coincidir con &lt;code&gt;CODEX_BRIDGE_API_KEY&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;model&lt;/code&gt; puede incluir nivel de razonamiento, por ejemplo &lt;code&gt;gpt-5-codex:medium&lt;/code&gt; o &lt;code&gt;gpt-5-codex:high&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;session_id&lt;/code&gt; vincula la solicitud a una conversación y permite reutilizar el mismo hilo de Codex.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para salida en streaming, añade &lt;code&gt;stream: true&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -N http://localhost:8080/v1/chat/completions &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -H &lt;span class=&#34;s2&#34;&gt;&amp;#34;content-type: application/json&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -H &lt;span class=&#34;s2&#34;&gt;&amp;#34;authorization: Bearer 123321&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -d &lt;span class=&#34;s1&#34;&gt;&amp;#39;{&amp;#34;model&amp;#34;:&amp;#34;gpt-5-codex:high&amp;#34;,&amp;#34;session_id&amp;#34;:&amp;#34;stream&amp;#34;,&amp;#34;stream&amp;#34;:true,&amp;#34;messages&amp;#34;:[{&amp;#34;role&amp;#34;:&amp;#34;user&amp;#34;,&amp;#34;content&amp;#34;:&amp;#34;Explica paso a paso cómo crear un proyecto Node.js&amp;#34;}]}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Para clientes que soportan respuestas en streaming de OpenAI, esta forma se siente más cercana a una conversación normal.&lt;/p&gt;
&lt;h2 id=&#34;persistencia-de-sesiones&#34;&gt;Persistencia de sesiones
&lt;/h2&gt;&lt;p&gt;Una función importante de CodexBridge es el mapeo de sesiones. La solicitud puede pasar un ID de sesión mediante estos campos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;session_id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;conversation_id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;thread_id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;user&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;También puede pasarse por cabeceras:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;x-session-id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;session-id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;x-conversation-id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;x-thread-id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;x-user-id&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En producción conviene activar:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-env&#34; data-lang=&#34;env&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CODEX_REQUIRE_SESSION_ID&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Así todas las solicitudes deben incluir un ID de sesión, evitando que distintos usuarios o ventanas de chat se mezclen en el mismo contexto temporal. El mapeo del puente se guarda en &lt;code&gt;.codex_threads.json&lt;/code&gt;. Borrar este archivo restablece la relación del puente; los hilos propios de Codex siguen en &lt;code&gt;~/.codex/sessions&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Si &lt;code&gt;CODEX_REQUIRE_SESSION_ID=false&lt;/code&gt; y la solicitud no incluye ID de sesión, el puente expande los &lt;code&gt;messages&lt;/code&gt; actuales como una entrada de un solo uso para Codex. Sirve para llamadas temporales, pero no para conversaciones largas.&lt;/p&gt;
&lt;h2 id=&#34;entrada-multimodal&#34;&gt;Entrada multimodal
&lt;/h2&gt;&lt;p&gt;CodexBridge admite bloques de contenido estilo OpenAI y convierte imágenes en entradas &lt;code&gt;local_image&lt;/code&gt; utilizables por Codex.&lt;/p&gt;
&lt;p&gt;Imagen remota:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;image_url&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;image_url&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;url&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://example.com/demo.png&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Imagen local:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;local_image&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;path&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;./images/demo.png&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Los recursos remotos se descargan primero en un directorio temporal y se limpian al final del turno. En uso real, presta atención al tamaño del cuerpo de la solicitud, especialmente cuando envías imágenes en base64. Puede que necesites aumentar &lt;code&gt;CODEX_JSON_LIMIT&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;salida-estructurada&#34;&gt;Salida estructurada
&lt;/h2&gt;&lt;p&gt;Si el cliente soporta &lt;code&gt;response_format&lt;/code&gt;, CodexBridge puede mapearlo al &lt;code&gt;outputSchema&lt;/code&gt; de Codex. Es útil cuando quieres que Codex devuelva una estructura JSON fija, como resultados de revisión, resúmenes, clasificación o informes de automatización.&lt;/p&gt;
&lt;p&gt;Ejemplo mínimo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;model&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;gpt-5-codex&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;session_id&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;lint&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;response_format&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;json_schema&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;json_schema&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nt&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;lint_report&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nt&#34;&gt;&amp;#34;schema&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;object&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;properties&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &lt;span class=&#34;nt&#34;&gt;&amp;#34;summary&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;string&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &lt;span class=&#34;nt&#34;&gt;&amp;#34;status&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nt&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;string&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nt&#34;&gt;&amp;#34;enum&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;ok&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;action_required&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;required&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;summary&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;status&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;additionalProperties&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;messages&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nt&#34;&gt;&amp;#34;role&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;user&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nt&#34;&gt;&amp;#34;content&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Revisa los problemas de lint en src/ y devuelve el resultado como JSON&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;type: &amp;quot;json_schema&amp;quot;&lt;/code&gt; debe incluir &lt;code&gt;schema&lt;/code&gt;; de lo contrario, el servicio devuelve 400.&lt;/p&gt;
&lt;h2 id=&#34;variables-de-entorno-clave&#34;&gt;Variables de entorno clave
&lt;/h2&gt;&lt;p&gt;La configuración común puede agruparse así.&lt;/p&gt;
&lt;p&gt;Servicio y autenticación:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-env&#34; data-lang=&#34;env&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;PORT&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;8080&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CODEX_BRIDGE_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;123321&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CODEX_JSON_LIMIT&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;10mb
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Modelo predeterminado:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-env&#34; data-lang=&#34;env&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CODEX_MODEL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;gpt-5-codex
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CODEX_REASONING&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;medium
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Entorno de ejecución de Codex:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-env&#34; data-lang=&#34;env&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CODEX_WORKDIR&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CODEX_SANDBOX_MODE&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;read-only
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CODEX_APPROVAL_POLICY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;never
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CODEX_SKIP_GIT_CHECK&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Acceso de red:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-env&#34; data-lang=&#34;env&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CODEX_NETWORK_ACCESS&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;false&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CODEX_WEB_SEARCH&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;false&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si solo lo usas para chat desde un frontend, es más seguro mantener la red desactivada por defecto. Activa estas opciones solo cuando Codex necesite ejecutar &lt;code&gt;curl&lt;/code&gt;, &lt;code&gt;git clone&lt;/code&gt; o búsqueda web.&lt;/p&gt;
&lt;h2 id=&#34;docker-y-scripts-de-instalación&#34;&gt;Docker y scripts de instalación
&lt;/h2&gt;&lt;p&gt;El proyecto también ofrece despliegue con Docker para mantener el servicio en ejecución:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker compose up -d
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker compose logs -f codexbridge
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;También hay un script de instalación para Linux:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -fsSL https://raw.githubusercontent.com/begonia599/CodexBridge/master/scripts/install.sh &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El script instala dependencias, clona o actualiza el repositorio, copia &lt;code&gt;.env.example&lt;/code&gt; e inicia el servicio con Docker Compose. Requiere &lt;code&gt;sudo&lt;/code&gt;, por lo que encaja mejor en un servidor limpio. Si la máquina ya tiene un entorno complejo de Node.js, Docker o Codex, revisa el script antes de ejecutarlo.&lt;/p&gt;
&lt;h2 id=&#34;problemas-comunes&#34;&gt;Problemas comunes
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;La solicitud devuelve 413&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Normalmente el cuerpo es demasiado grande, a menudo por imágenes base64. Aumenta:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-env&#34; data-lang=&#34;env&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CODEX_JSON_LIMIT&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;20mb
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;La API key no es válida&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Comprueba que la cabecera incluya:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Authorization: Bearer &amp;lt;tu CODEX_BRIDGE_API_KEY&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;o usa &lt;code&gt;x-api-key&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Codex informa una restricción de repositorio Git&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Si el directorio de ejecución no es un repositorio confiable, Codex puede activar una verificación. Úsalo solo en entornos seguros:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-env&#34; data-lang=&#34;env&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CODEX_SKIP_GIT_CHECK&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Restablecer conversaciones&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;El mapeo del puente está en &lt;code&gt;.codex_threads.json&lt;/code&gt;, y los hilos propios de Codex están en &lt;code&gt;~/.codex/sessions&lt;/code&gt;. Detén el servicio y borra los archivos o directorios correspondientes para restablecerlos.&lt;/p&gt;
&lt;h2 id=&#34;recomendaciones&#34;&gt;Recomendaciones
&lt;/h2&gt;&lt;p&gt;Para pruebas locales, empieza con la API key predeterminada y el sandbox &lt;code&gt;read-only&lt;/code&gt;. Cuando OpenWebUI, Cherry Studio o tus scripts llamen al servicio correctamente, ajusta gradualmente &lt;code&gt;CODEX_WORKDIR&lt;/code&gt;, &lt;code&gt;CODEX_SANDBOX_MODE&lt;/code&gt;, &lt;code&gt;CODEX_NETWORK_ACCESS&lt;/code&gt; y &lt;code&gt;CODEX_APPROVAL_POLICY&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Si lo usarán varias personas, al menos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Exige &lt;code&gt;session_id&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Cambia la API key predeterminada.&lt;/li&gt;
&lt;li&gt;Limita claramente el directorio de trabajo y los permisos del sandbox.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El valor de CodexBridge no está en tener muchas funciones, sino en colocar Codex dentro del ecosistema compatible con OpenAI. Si un cliente permite cambiar el base URL, puede tratar Codex como un modelo de chat normal y conservar al mismo tiempo sus hilos locales, sandbox y llamadas a herramientas.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>¿Puede Sulphur 2 ejecutarse con 8 GB de VRAM? Notas de despliegue local de un modelo de video LTX 2.3</title>
        <link>https://knightli.com/es/2026/05/12/sulphur-2-ltx-2-3-video-generation/</link>
        <pubDate>Tue, 12 May 2026 22:12:45 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/12/sulphur-2-ltx-2-3-video-generation/</guid>
        <description>&lt;p&gt;SulphurAI publicó &lt;code&gt;Sulphur-2-base&lt;/code&gt; en Hugging Face. Según la model card, Sulphur 2 es un modelo de generación de video basado en LTX 2.3. Está posicionado como un uncensored video generation model, soporta de forma nativa text-to-video e image-to-video, y también es compatible con otros formatos de LTX 2.3.&lt;/p&gt;
&lt;p&gt;Página del modelo: &lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/SulphurAI/Sulphur-2-base&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://huggingface.co/SulphurAI/Sulphur-2-base&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;qué-es-sulphur-2&#34;&gt;Qué es Sulphur 2
&lt;/h2&gt;&lt;p&gt;Sulphur 2 no está pensado como un modelo general de chat, sino como una pieza para flujos de trabajo de generación de video. Proporciona pesos del modelo y herramientas relacionadas. Los puntos principales de la model card son:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Está basado en LTX 2.3.&lt;/li&gt;
&lt;li&gt;Soporta text-to-video e image-to-video.&lt;/li&gt;
&lt;li&gt;Incluye un prompt enhancer para mejorar prompts.&lt;/li&gt;
&lt;li&gt;La página de Hugging Face ofrece entradas para Diffusers, llama.cpp, Ollama, LM Studio, Jan y otras herramientas.&lt;/li&gt;
&lt;li&gt;Los archivos del modelo incluyen contenido relacionado con GGUF, lo que facilita su carga con algunas herramientas locales.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En otras palabras, es más una publicación para usuarios de generación de video y autores de workflows que un producto web listo para usar con un clic.&lt;/p&gt;
&lt;h2 id=&#34;relación-entre-sulphur-2-y-ltx-23&#34;&gt;Relación entre Sulphur 2 y LTX 2.3
&lt;/h2&gt;&lt;p&gt;Para entender Sulphur 2 conviene ubicarlo dentro del ecosistema de LTX 2.3.&lt;/p&gt;
&lt;p&gt;LTX 2.3 es la línea de modelo de video subyacente. Define qué formas de entrada, componentes y estructuras de workflow son compatibles. Sulphur 2 es una variante publicada sobre esa base, con foco en integrar text-to-video, image-to-video y flujos relacionados.&lt;/p&gt;
&lt;p&gt;Por eso Sulphur 2 no es una herramienta completamente independiente ni un modelo de chat común. Se parece más a un paquete de modelo dentro del ecosistema LTX 2.3: todavía necesitas elegir frontend, nodos, versión de pesos y parámetros adecuados para generar video de verdad.&lt;/p&gt;
&lt;p&gt;Eso también explica por qué su barrera de entrada es más alta que la de las herramientas web. Las herramientas web esconden modelo, parámetros, planificación de VRAM y reintentos en el backend; en local tienes que lidiar con esos detalles.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-vale-la-pena-mirarlo&#34;&gt;Por qué vale la pena mirarlo
&lt;/h2&gt;&lt;p&gt;La familia LTX ya llama la atención por su generación de video eficiente. Al estar basado en LTX 2.3, Sulphur 2 encaja naturalmente con workflows LTX existentes. Para usuarios de ComfyUI, Diffusers o herramientas locales de inferencia, su valor está sobre todo en el control y la posibilidad de modificar el flujo.&lt;/p&gt;
&lt;p&gt;Otro punto interesante es el prompt enhancer. La generación de video es muy sensible al prompt: sujeto, cámara, acción, estilo y calidad pueden producir resultados muy distintos según cómo se escriban. Al incluir un prompt enhancer, Sulphur 2 intenta ayudar a convertir descripciones normales en prompts más adecuados para el modelo.&lt;/p&gt;
&lt;h2 id=&#34;recomendaciones-de-la-model-card&#34;&gt;Recomendaciones de la model card
&lt;/h2&gt;&lt;p&gt;La model card oficial recomienda empezar con una versión dev, como &lt;code&gt;fp8mixed&lt;/code&gt; o &lt;code&gt;bf16&lt;/code&gt;, y usar el distill lora proporcionado. También advierte que, si usas LoRA, no deberías cargar al mismo tiempo las partes duplicadas del modelo completo, para evitar que el workflow acumule dos veces la misma capacidad.&lt;/p&gt;
&lt;p&gt;El prompt enhancer está más orientado a herramientas locales. La model card indica que se puede crear una estructura &lt;code&gt;Sulphur/promptenhancer&lt;/code&gt; dentro del directorio de modelos de LM Studio, colocar allí los archivos &lt;code&gt;gguf&lt;/code&gt; y &lt;code&gt;mmproj&lt;/code&gt;, y cargar el enhancer. No necesita system prompt: basta con enviar el texto que quieres mejorar, y también se pueden adjuntar imágenes.&lt;/p&gt;
&lt;h2 id=&#34;entradas-de-ejecución-local&#34;&gt;Entradas de ejecución local
&lt;/h2&gt;&lt;p&gt;La página de Hugging Face ofrece varias entradas comunes. Por ejemplo, con &lt;code&gt;llama.cpp&lt;/code&gt; puedes iniciar un servidor local desde el repositorio del modelo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;llama-server -hf SulphurAI/Sulphur-2-base:BF16
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;También puedes ejecutarlo directamente desde la terminal:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;llama-cli -hf SulphurAI/Sulphur-2-base:BF16
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Con Ollama, la entrada es:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama run hf.co/SulphurAI/Sulphur-2-base:BF16
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Estos comandos se parecen más a entradas de carga generadas automáticamente por Hugging Face. Que funcionen bien depende de la VRAM, la versión de los archivos, el formato de cuantización y la compatibilidad de la herramienta. Los modelos de video suelen consumir más recursos que los modelos solo de texto, así que para el primer intento conviene seguir la versión y el workflow recomendados por la model card, sin mezclar pesos de distintas fuentes.&lt;/p&gt;
&lt;h2 id=&#34;entorno-de-prueba-recomendado-comfyui-diffusers-o-gguf&#34;&gt;Entorno de prueba recomendado: ComfyUI, Diffusers o GGUF
&lt;/h2&gt;&lt;p&gt;Si solo quieres ver resultados rápido, primero busca si la comunidad ya preparó un workflow de ComfyUI. ComfyUI es visual: modelos, LoRA, samplers, resolución, número de frames y nodos de postproceso pueden verse en un mismo grafo, lo que facilita depurar generación de video.&lt;/p&gt;
&lt;p&gt;Si conoces mejor Python, o quieres integrar Sulphur 2 en tus propios scripts, Diffusers encaja mejor. Es reproducible y automatizable, útil para probar parámetros por lotes y registrar uso de VRAM y tiempos de generación.&lt;/p&gt;
&lt;p&gt;GGUF, llama.cpp, Ollama y LM Studio son más adecuados para el prompt enhancer o componentes del lado de texto. No conviene asumir que GGUF cubre todo el flujo de generación de video. Los modelos de video suelen incluir modelos visuales, VAE, sampling flows y componentes de generación de frames; GGUF es solo una parte del ecosistema local y ligero.&lt;/p&gt;
&lt;p&gt;En resumen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si eres principiante, busca primero un workflow de ComfyUI.&lt;/li&gt;
&lt;li&gt;Si trabajas con scripts, usa Diffusers para pruebas reproducibles y por lotes.&lt;/li&gt;
&lt;li&gt;Para prompt enhancer o herramientas de texto, mira GGUF / LM Studio / Ollama.&lt;/li&gt;
&lt;li&gt;Si no estás seguro, sigue la versión dev y la combinación de LoRA recomendadas por la model card.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;puede-correr-con-8-gb-de-vram-depende-de-la-versión-y-del-workflow&#34;&gt;¿Puede correr con 8 GB de VRAM? Depende de la versión y del workflow
&lt;/h2&gt;&lt;p&gt;Que Sulphur 2 pueda correr con 8 GB de VRAM no depende solo del nombre del modelo. Importan la versión concreta, la cuantización, la resolución, el número de frames, el batch size y el workflow.&lt;/p&gt;
&lt;p&gt;En general, generar video consume más VRAM que generar imágenes, porque no se trata de producir una sola imagen: hay que manejar varios frames, consistencia temporal y estados intermedios relacionados con el video. Aunque exista una versión ligera del modelo, sumar LoRA, alta resolución, más frames o nodos extra puede agotar 8 GB rápidamente.&lt;/p&gt;
&lt;p&gt;Si solo tienes 8 GB de VRAM, puedes reducir carga así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Prioriza &lt;code&gt;fp8mixed&lt;/code&gt;, versiones cuantizadas o workflows de baja VRAM preparados por la comunidad.&lt;/li&gt;
&lt;li&gt;Baja la resolución y confirma primero que el flujo funciona en tamaño pequeño.&lt;/li&gt;
&lt;li&gt;Reduce el número de frames; no empieces con videos largos.&lt;/li&gt;
&lt;li&gt;Pon batch size en 1.&lt;/li&gt;
&lt;li&gt;Desactiva al principio nodos de mejora y postproceso que no sean necesarios.&lt;/li&gt;
&lt;li&gt;Usa CPU offload, modo low-VRAM u opciones de optimización de memoria del framework.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Así que una forma más precisa de decir &amp;ldquo;también corre con 8 GB de VRAM&amp;rdquo; sería: con una versión de bajo consumo, baja resolución, pocos frames y un workflow simplificado, puede llegar a funcionar; pero no es razonable esperar alta resolución, videos largos y workflows complejos en 8 GB.&lt;/p&gt;
&lt;h2 id=&#34;cómo-usar-el-prompt-enhancer&#34;&gt;Cómo usar el prompt enhancer
&lt;/h2&gt;&lt;p&gt;La model card de Sulphur 2 menciona específicamente el prompt enhancer. Su función no es generar video, sino reescribir prompts normales para que el modelo los entienda mejor.&lt;/p&gt;
&lt;p&gt;Un prompt de video suele tener que describir sujeto, acción, cámara, escena, iluminación, estilo y calidad. Si solo escribes una frase corta, el modelo puede perder detalles importantes. El prompt enhancer puede expandir una descripción simple a un prompt más completo y hacer que la generación posterior sea más estable.&lt;/p&gt;
&lt;p&gt;La idea propuesta por la model card es crear un directorio &lt;code&gt;Sulphur/promptenhancer&lt;/code&gt; dentro del directorio de modelos de LM Studio, colocar allí los archivos &lt;code&gt;gguf&lt;/code&gt; y &lt;code&gt;mmproj&lt;/code&gt;, y cargar el enhancer. No necesita system prompt: se envía directamente el texto a mejorar, y también se pueden adjuntar imágenes.&lt;/p&gt;
&lt;p&gt;Puedes verlo como un preprocesador de prompts:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;descripción normal -&amp;gt; prompt enhancer -&amp;gt; prompt de video más completo -&amp;gt; workflow de Sulphur 2
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si solo estás probando si el modelo puede correr, el prompt enhancer no es la primera prioridad. Primero haz funcionar el workflow principal; luego úsalo para mejorar prompts. Así es más fácil localizar problemas.&lt;/p&gt;
&lt;h2 id=&#34;fallos-comunes-en-despliegue-local&#34;&gt;Fallos comunes en despliegue local
&lt;/h2&gt;&lt;p&gt;Cuando falla el despliegue local de modelos como Sulphur 2, normalmente no hay una sola causa. Los problemas comunes incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La versión del modelo no coincide con el workflow, por ejemplo un workflow que espera la versión dev y pesos distintos descargados localmente.&lt;/li&gt;
&lt;li&gt;Cargar LoRA y partes duplicadas del modelo completo, causando resultados extraños o uso excesivo de VRAM.&lt;/li&gt;
&lt;li&gt;Falta de VRAM, especialmente con alta resolución, muchos frames o nodos complejos.&lt;/li&gt;
&lt;li&gt;Versiones antiguas de herramientas, como nodos de ComfyUI, Diffusers, Transformers o Accelerate incompatibles.&lt;/li&gt;
&lt;li&gt;Archivos auxiliares faltantes, como VAE, text encoder, &lt;code&gt;mmproj&lt;/code&gt; o prompt enhancer.&lt;/li&gt;
&lt;li&gt;Rutas o estructura de directorios que no cumplen lo que espera la herramienta.&lt;/li&gt;
&lt;li&gt;Copiar un comando de Hugging Face sin confirmar si corresponde al flujo principal de video o solo a un componente de texto.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para depurar, conviene ir por orden: confirma que los archivos del modelo estén completos, revisa la versión que exige el workflow, baja resolución y frames, y después añade LoRA, prompt enhancer y nodos de postproceso poco a poco. Cambiar una sola variable a la vez es la forma más fácil de encontrar el problema.&lt;/p&gt;
&lt;h2 id=&#34;para-quién-tiene-sentido-probarlo&#34;&gt;Para quién tiene sentido probarlo
&lt;/h2&gt;&lt;p&gt;Sulphur 2 encaja mejor con estos usuarios:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Quienes ya usan LTX, ComfyUI, Diffusers o workflows locales de generación de video.&lt;/li&gt;
&lt;li&gt;Quienes quieren probar text-to-video o image-to-video y aceptan configurar archivos manualmente.&lt;/li&gt;
&lt;li&gt;Quienes necesitan un modelo de video uncensored y entienden sus límites de uso.&lt;/li&gt;
&lt;li&gt;Quienes quieren estudiar cómo un prompt enhancer mejora prompts de video.&lt;/li&gt;
&lt;li&gt;Quienes tienen suficiente VRAM o están dispuestos a probar versiones cuantizadas y herramientas locales.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si solo quieres generar videos cortos rápidamente, un producto online sigue siendo más cómodo. Sulphur 2 es para quienes están dispuestos a ajustar modelos, nodos, LoRA, prompts y entorno local.&lt;/p&gt;
&lt;h2 id=&#34;puntos-a-tener-en-cuenta&#34;&gt;Puntos a tener en cuenta
&lt;/h2&gt;&lt;p&gt;Primero, la model card todavía está evolucionando. El autor menciona que el README añadirá instrucciones de configuración y entrenamiento más completas, así que el flujo concreto debe seguir siempre la model card y la lista de archivos más recientes.&lt;/p&gt;
&lt;p&gt;Segundo, no conviene decidir si &amp;ldquo;corre&amp;rdquo; mirando solo un comando de Hugging Face. La generación de video involucra modelo principal, VAE, LoRA, prompt enhancer, parámetros de sampling, resolución, frames y VRAM. Cualquier desajuste puede provocar fallos.&lt;/p&gt;
&lt;p&gt;Tercero, un modelo uncensored no significa uso sin límites. El contenido generado debe respetar las reglas de la plataforma, la comunidad y la ley. Hay que ser especialmente cuidadoso con personas reales, personajes con copyright, menores, violencia y privacidad.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Sulphur 2 tiene una posición clara: no es un modelo de chat, sino una publicación para el ecosistema de generación de video LTX 2.3. Sus puntos fuertes son el soporte para text-to-video e image-to-video, junto con prompt enhancer, entradas de herramientas locales y workflows recomendados.&lt;/p&gt;
&lt;p&gt;Para usuarios comunes, la barrera no es baja. Para quienes ya hacen generación local de video, merece estar en la lista de pruebas. La experiencia real dependerá del workflow, la VRAM, la calidad de los prompts y de si el README y los ejemplos de la comunidad maduran.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Página del modelo en Hugging Face: &lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/SulphurAI/Sulphur-2-base&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://huggingface.co/SulphurAI/Sulphur-2-base&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Página de referencia en FreeDidi: &lt;a class=&#34;link&#34; href=&#34;https://www.freedidi.com/24142.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.freedidi.com/24142.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Ejecutar DeepSeek 4 en local: el experimento ds4 de Antirez en Apple Silicon Mac</title>
        <link>https://knightli.com/es/2026/05/11/deepseek-v4-flash-ds4-metal/</link>
        <pubDate>Mon, 11 May 2026 08:51:37 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/11/deepseek-v4-flash-ds4-metal/</guid>
        <description>&lt;p&gt;Antirez ha publicado un nuevo proyecto open source: &lt;code&gt;ds4&lt;/code&gt;. No es un framework LLM de propósito general, sino un motor de inferencia local para DeepSeek V4 Flash, centrado en Apple Silicon y el backend Metal.&lt;/p&gt;
&lt;p&gt;URL del proyecto: &lt;a class=&#34;link&#34; href=&#34;https://github.com/antirez/ds4&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/antirez/ds4&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;qué-es-ds4&#34;&gt;Qué es ds4
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;ds4&lt;/code&gt; tiene un objetivo muy claro: ejecutar DeepSeek V4 Flash localmente en un Mac.&lt;/p&gt;
&lt;p&gt;Actualmente ofrece tres formas de uso:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CLI interactiva.&lt;/li&gt;
&lt;li&gt;HTTP server.&lt;/li&gt;
&lt;li&gt;Un modo Agent experimental.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por su posicionamiento, se parece más a un proyecto de inferencia profundamente optimizado para un modelo específico que a un reemplazo de herramientas generales como &lt;code&gt;llama.cpp&lt;/code&gt;, Ollama o vLLM.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-merece-atención&#34;&gt;Por qué merece atención
&lt;/h2&gt;&lt;p&gt;Hay tres razones principales por las que este tipo de proyecto merece atención.&lt;/p&gt;
&lt;p&gt;La primera es que su autor es Antirez, creador de Redis. Lleva mucho tiempo interesado en sistemas de bajo nivel, rendimiento y herramientas simples, y sus proyectos suelen tener un estilo bastante directo.&lt;/p&gt;
&lt;p&gt;La segunda es que DeepSeek V4 Flash apunta a una inferencia eficiente. Si la experiencia local es lo bastante buena, puede resultar muy atractivo para usuarios de Mac.&lt;/p&gt;
&lt;p&gt;La tercera es que &lt;code&gt;ds4&lt;/code&gt; apunta directamente a Apple Metal. En lugar de intentar soportar todas las plataformas primero y optimizar después, parece buscar profundidad en un escenario muy definido.&lt;/p&gt;
&lt;h2 id=&#34;para-quién-es&#34;&gt;Para quién es
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;ds4&lt;/code&gt; encaja mejor con usuarios que:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Usan un Apple Silicon Mac.&lt;/li&gt;
&lt;li&gt;Quieren ejecutar DeepSeek V4 Flash en local.&lt;/li&gt;
&lt;li&gt;Se interesan por el rendimiento de inferencia con Metal.&lt;/li&gt;
&lt;li&gt;Están dispuestos a probar un proyecto en fase alpha.&lt;/li&gt;
&lt;li&gt;Quieren estudiar motores de inferencia ligeros y detalles de ejecución de modelos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si tu objetivo es un despliegue estable, ejecución multiplataforma o una infraestructura compatible con OpenAI API, probablemente no sea la primera opción en esta etapa. Tiene más sentido como herramienta experimental y como proyecto técnico para observar.&lt;/p&gt;
&lt;h2 id=&#34;cómo-usarlo&#34;&gt;Cómo usarlo
&lt;/h2&gt;&lt;p&gt;El flujo básico que muestra el README del proyecto es compilar primero y ejecutar después.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/antirez/ds4.git
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; ds4
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;make
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Ejecución interactiva:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./ds4
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Iniciar el HTTP server:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./ds4 --server
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Modo Agent:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./ds4 --agent
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Para los parámetros concretos y la preparación de los archivos del modelo, conviene seguir el README del repositorio, porque el proyecto todavía cambia con rapidez.&lt;/p&gt;
&lt;h2 id=&#34;riesgos-actuales&#34;&gt;Riesgos actuales
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;ds4&lt;/code&gt; todavía está en una etapa temprana, así que conviene ajustar expectativas antes de usarlo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Las funciones pueden estar incompletas.&lt;/li&gt;
&lt;li&gt;Los parámetros, formatos de modelo y comportamientos de línea de comandos pueden cambiar.&lt;/li&gt;
&lt;li&gt;La compatibilidad gira principalmente alrededor de Apple Silicon y Metal.&lt;/li&gt;
&lt;li&gt;El modo Agent es más experimental y no es adecuado para usarlo directamente en producción.&lt;/li&gt;
&lt;li&gt;Si surge un problema, quizá tengas que leer el README, los issues o el código fuente por tu cuenta.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En otras palabras, ahora mismo se parece más a un experimento open source que vale la pena probar que a una herramienta de un clic para usuarios generales.&lt;/p&gt;
&lt;h2 id=&#34;diferencias-frente-a-herramientas-de-inferencia-generales&#34;&gt;Diferencias frente a herramientas de inferencia generales
&lt;/h2&gt;&lt;p&gt;Las herramientas de inferencia generales suelen buscar compatibilidad amplia con formatos de modelo, plataformas, backends y APIs. &lt;code&gt;ds4&lt;/code&gt; toma un camino más estrecho: ejecutar DeepSeek V4 Flash en local con Metal.&lt;/p&gt;
&lt;p&gt;Esa decisión tiene ventajas y costes.&lt;/p&gt;
&lt;p&gt;La ventaja es que la implementación puede mantenerse enfocada, lo que facilita optimizar rendimiento y experiencia alrededor de un único objetivo. El coste es un alcance limitado: no está pensado para ejecutar todo tipo de modelos ni para sustituir una plataforma completa de despliegue.&lt;/p&gt;
&lt;p&gt;Si ya usas &lt;code&gt;llama.cpp&lt;/code&gt; u Ollama, &lt;code&gt;ds4&lt;/code&gt; puede servir como herramienta complementaria de pruebas, no como sustituto inmediato de tu flujo de trabajo actual.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Lo interesante de &lt;code&gt;ds4&lt;/code&gt; no es que sea otra herramienta local para grandes modelos. Lo interesante es que reduce mucho su alcance: DeepSeek V4 Flash, Apple Silicon, Metal e inferencia local.&lt;/p&gt;
&lt;p&gt;Si tienes un Mac adecuado y te apetece experimentar con un proyecto temprano, vale la pena seguir su rendimiento, su forma de soportar modelos y la evolución de sus capacidades de server/agent. Para entornos de producción, es mejor observar un poco más y evaluarlo cuando las interfaces y la forma de uso sean más estables.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Proyecto en GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/antirez/ds4&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/antirez/ds4&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Por qué DeepSeek se volvió la clave para ahorrar en esta ola de herramientas de AI Coding</title>
        <link>https://knightli.com/es/2026/05/11/deepseek-ai-coding-cost-saving/</link>
        <pubDate>Mon, 11 May 2026 04:59:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/11/deepseek-ai-coding-cost-saving/</guid>
        <description>&lt;p&gt;En esta ola de herramientas de AI Coding, la competencia parece girar en torno a capacidad del modelo, ecosistema de plugins y automatización con agentes. Pero cuando se usan de verdad, el primer muro que aparece es el coste.&lt;/p&gt;
&lt;p&gt;Claude Code, Codex, OpenClaw y Superpowers son herramientas muy útiles, pero comparten una característica: cuando una tarea se vuelve compleja, consumen muchísimos tokens. Tienen que leer el proyecto, crear planes, llamar herramientas, resumir contexto, revisar resultados una y otra vez, e incluso lanzar subtareas. Cuanto más inteligente es el modelo y más automatizado es el workflow, más fácil es que la factura crezca en silencio.&lt;/p&gt;
&lt;p&gt;Por eso DeepSeek se volvió importante en esta ronda. No solo porque pueda escribir código, sino porque su contexto largo y su coste de caché atacan justo la parte más cara de las herramientas de AI Coding.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-las-herramientas-agent-consumen-tantos-tokens&#34;&gt;Por qué las herramientas agent consumen tantos tokens
&lt;/h2&gt;&lt;p&gt;Los asistentes de programación tradicionales en modo chat suelen funcionar con preguntas y respuestas. Preguntas cómo escribir una función y el modelo responde con un fragmento de código. Ese modo también consume tokens, pero sigue siendo relativamente controlable.&lt;/p&gt;
&lt;p&gt;Las herramientas agent son distintas. No solo responden preguntas, sino que entran al proyecto como un ingeniero temporal:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;escanean directorios y archivos clave;&lt;/li&gt;
&lt;li&gt;entienden el requisito y la arquitectura existente;&lt;/li&gt;
&lt;li&gt;crean un plan;&lt;/li&gt;
&lt;li&gt;modifican archivos;&lt;/li&gt;
&lt;li&gt;ejecutan comandos o tests;&lt;/li&gt;
&lt;li&gt;siguen corrigiendo según los errores;&lt;/li&gt;
&lt;li&gt;resumen al final qué cambió.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Durante este proceso, el modelo lee repetidamente el mismo contexto. Descripciones del proyecto, fragmentos de código, resultados de herramientas, historial de conversación, planes y logs de error vuelven una y otra vez al contexto. Cuando la tarea es un poco compleja, cientos de miles de tokens desaparecen rápido.&lt;/p&gt;
&lt;p&gt;Si además instalas plugins más agresivos, el coste se nota todavía más. Algunas extensiones de OpenCode o Claude Code pueden organizar por defecto todo un equipo de agentes. Tú solo querías cambiar una pequeña función, pero la herramienta puede iniciar planificación, revisión, ejecución y retrospectiva. La tarea parece más “inteligente”, pero los tokens suben sin parar.&lt;/p&gt;
&lt;h2 id=&#34;la-ventaja-de-superpowers-es-activarse-bajo-demanda&#34;&gt;La ventaja de Superpowers es activarse bajo demanda
&lt;/h2&gt;&lt;p&gt;Una ventaja de herramientas como Superpowers es que no fuerzan un flujo agent completo en todas las tareas.&lt;/p&gt;
&lt;p&gt;Normalmente puedes seguir usando Claude Code, OpenCode o Codex de la forma habitual. Solo cuando llamas explícitamente a una skill, como brainstorming, planificación, ejecución de plan o retrospectiva, entra en un flujo de automatización más pesado.&lt;/p&gt;
&lt;p&gt;Esto importa mucho para el coste.&lt;/p&gt;
&lt;p&gt;AI Coding no debería usar artillería pesada para todo. Cambiar una línea de configuración, revisar un error o escribir un script pequeño se puede resolver con una conversación normal. Solo refactors complejos, cambios en varios archivos, procesamiento de documentos largos y validación por varias rondas justifican un flujo agent completo.&lt;/p&gt;
&lt;p&gt;Cuanto más poderosa es la herramienta, más importante es controlar cuándo se activa. Si no, más automatización solo significa más desperdicio.&lt;/p&gt;
&lt;h2 id=&#34;la-ventaja-clave-de-deepseek-es-una-caché-barata&#34;&gt;La ventaja clave de DeepSeek es una caché barata
&lt;/h2&gt;&lt;p&gt;Una razón importante por la que DeepSeek encaja con estas herramientas agent es su bajo coste cuando hay cache hit.&lt;/p&gt;
&lt;p&gt;Las tareas de AI Coding tienen muchos prefijos repetidos: contexto del proyecto, prompts de sistema, instrucciones de herramientas, contenido de archivos y turnos anteriores aparecen muchas veces en solicitudes posteriores. Si el servicio del modelo soporta prompt cache, esas partes repetidas cuestan mucho menos después de un acierto de caché.&lt;/p&gt;
&lt;p&gt;En muchos modelos, un cache hit solo es algo más barato que un miss, quizá alrededor de un tercio del precio original. La ventaja de DeepSeek es que la diferencia después de un hit puede ser mucho mayor. En workflows agent con contexto largo, muchas rondas y lectura repetida del proyecto, esa diferencia se ve directamente en la factura.&lt;/p&gt;
&lt;p&gt;Es decir, DeepSeek no tiene por qué dar la mejor respuesta en cada turno. Pero en escenarios con tareas largas, muchas rondas y lectura repetida de contexto, su estructura de costes encaja especialmente bien con AI Coding.&lt;/p&gt;
&lt;h2 id=&#34;el-contexto-largo-hace-más-útil-a-claude-code&#34;&gt;El contexto largo hace más útil a Claude Code
&lt;/h2&gt;&lt;p&gt;Al conectar Claude Code o herramientas similares a DeepSeek V4, otra ventaja clara es el contexto largo.&lt;/p&gt;
&lt;p&gt;Lo que más temen las herramientas de AI Coding es quedarse sin contexto. Cuando el contexto no alcanza, hay que comprimir con frecuencia. Cuando se comprime mucho, se pueden perder detalles ya leídos. El modelo empieza a olvidar la estructura del proyecto, las restricciones o por qué se modificó cierto archivo, y la calidad baja después.&lt;/p&gt;
&lt;p&gt;La capacidad de contexto largo de DeepSeek V4 lo hace más adecuado para repositorios de código, procesamiento por lotes de documentos, traducción de subtítulos y limpieza de artículos de sitio. Especialmente al conectarlo a Claude Code u OpenClaw, una buena configuración puede retrasar la compresión de contexto y conservar más detalles del proyecto.&lt;/p&gt;
&lt;p&gt;Por eso algunas tareas se sienten “resistentes” con DeepSeek: no necesariamente impresiona en cada paso, pero aguanta llamadas largas, baratas y repetidas.&lt;/p&gt;
&lt;h2 id=&#34;cómo-repartir-trabajo-entre-v4-pro-y-v4-flash&#34;&gt;Cómo repartir trabajo entre V4 Pro y V4 Flash
&lt;/h2&gt;&lt;p&gt;DeepSeek V4 Pro y V4 Flash no deberían usarse sin distinción.&lt;/p&gt;
&lt;p&gt;Para tareas simples, &lt;code&gt;DeepSeek V4 Flash&lt;/code&gt; suele ser mejor. Es rápido, barato y normalmente suficiente para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;traducir subtítulos;&lt;/li&gt;
&lt;li&gt;ordenar documentos;&lt;/li&gt;
&lt;li&gt;generar scripts comunes;&lt;/li&gt;
&lt;li&gt;modificar pequeñas zonas de código;&lt;/li&gt;
&lt;li&gt;ejecutar tareas ligeras en OpenClaw;&lt;/li&gt;
&lt;li&gt;procesar contenido simple de un sitio.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para tareas complejas, conviene considerar &lt;code&gt;DeepSeek V4 Pro&lt;/code&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;refactors de gran escala;&lt;/li&gt;
&lt;li&gt;comprensión de código con varios módulos;&lt;/li&gt;
&lt;li&gt;razonamiento complejo;&lt;/li&gt;
&lt;li&gt;tareas agent de cadena larga;&lt;/li&gt;
&lt;li&gt;cambios de código de alto riesgo;&lt;/li&gt;
&lt;li&gt;tareas de ingeniería que requieren planificación más fuerte.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mucha gente quiere conectar siempre el modelo más fuerte, pero eso suele ser poco rentable. La forma práctica de usar herramientas de AI Coding es dividir las tareas por capas: que el modelo barato procese mucho trabajo rutinario, y reservar el modelo caro para los puntos críticos.&lt;/p&gt;
&lt;h2 id=&#34;minimax-doubao-y-deepseek-ocupan-posiciones-distintas&#34;&gt;MiniMax, Doubao y DeepSeek ocupan posiciones distintas
&lt;/h2&gt;&lt;p&gt;Entre modelos y planes chinos, MiniMax, Doubao, Kimi y DeepSeek tienen posiciones diferentes.&lt;/p&gt;
&lt;p&gt;MiniMax destaca por dar mucho volumen, bajo precio y funciones amplias. Quizá no sea el modelo de programación más inteligente, pero sirve muy bien para traducción, limpieza ligera y procesamiento por lotes. Procesar subtítulos, cambiar formatos o hacer revisión simple son buenos casos para planes tipo MiniMax.&lt;/p&gt;
&lt;p&gt;Doubao destaca por un ecosistema de herramientas más completo: imagen, video, búsqueda, TTS, posible STT y embedding pueden conectarse dentro de la misma caja. Se parece más a una caja de herramientas general.&lt;/p&gt;
&lt;p&gt;DeepSeek tiene una posición más clara: texto, código, contexto largo y caché barata. No tiene un ecosistema completo de generación de imagen, voz y video, y sus debilidades son evidentes. Pero en AI Coding y workflows agent de texto largo, sus fortalezas son suficientemente fuertes.&lt;/p&gt;
&lt;p&gt;No se trata de que uno sustituya a otro. Se trata de dividir la tarea y usar cada herramienta donde encaja.&lt;/p&gt;
&lt;h2 id=&#34;ahorrar-no-es-solo-elegir-un-modelo-barato&#34;&gt;Ahorrar no es solo elegir un modelo barato
&lt;/h2&gt;&lt;p&gt;Ahorrar en AI Coding no significa cambiar todas las solicitudes al modelo más barato.&lt;/p&gt;
&lt;p&gt;Las formas realmente efectivas son:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;No iniciar un agent pesado para tareas simples.&lt;/li&gt;
&lt;li&gt;No usar Pro cuando Flash basta.&lt;/li&gt;
&lt;li&gt;Aprovechar la caché en tareas largas.&lt;/li&gt;
&lt;li&gt;Mantener estable el contexto repetido para no romper cache hits con cambios inútiles.&lt;/li&gt;
&lt;li&gt;Dejar que un modelo barato haga borradores y batch processing, y usar un modelo fuerte para revisiones clave.&lt;/li&gt;
&lt;li&gt;Decirle claramente al agent que no repita hechos ni resuma el mismo punto una y otra vez.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;El último punto es especialmente importante. Las herramientas de AI tienden a ser verbosas, y la verbosidad no es solo un problema de lectura; también es un problema de coste. Incluir en el prompt “describe cada hecho una sola vez y expresa cada opinión una sola vez” puede mejorar tanto la calidad del texto como el consumo de tokens.&lt;/p&gt;
&lt;h2 id=&#34;para-qué-workflows-de-ai-coding-encaja-deepseek&#34;&gt;Para qué workflows de AI Coding encaja DeepSeek
&lt;/h2&gt;&lt;p&gt;DeepSeek encaja mejor en:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;lectura de repositorios largos;&lt;/li&gt;
&lt;li&gt;cambios ligeros en varios archivos;&lt;/li&gt;
&lt;li&gt;limpieza de documentos por lotes;&lt;/li&gt;
&lt;li&gt;traducción masiva de subtítulos;&lt;/li&gt;
&lt;li&gt;limpieza de artículos Hugo;&lt;/li&gt;
&lt;li&gt;ejecución de planes agent;&lt;/li&gt;
&lt;li&gt;automatización barata con mucho contexto repetido.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No sirve para todo. Si necesitas gusto frontend especialmente fuerte, juicio de producto complejo o creación multimodal, quizá necesites combinarlo con Claude, GPT, Gemini, Doubao u otras herramientas.&lt;/p&gt;
&lt;p&gt;Pero cuando la tarea es de texto largo, contexto largo, llamadas repetidas y sensibilidad al coste, DeepSeek se vuelve fácilmente la primera opción.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;En esta ola de herramientas de AI Coding, el valor de DeepSeek no es solo que un modelo chino pueda escribir código. Su valor real es resolver el dolor más práctico de las herramientas agent: las tareas largas cuestan demasiado.&lt;/p&gt;
&lt;p&gt;Herramientas como Claude Code, OpenClaw y Superpowers automatizan cada vez más el proceso de desarrollo, pero detrás de esa automatización hay lecturas masivas de contexto y llamadas en múltiples rondas. Quien consiga bajar ese coste puede convertir AI Coding de algo “agradable de vez en cuando” en algo “usable todos los días”.&lt;/p&gt;
&lt;p&gt;El contexto largo de DeepSeek, su bajo coste de caché y el uso por capas de V4 Flash / V4 Pro lo colocan justo en esa posición.&lt;/p&gt;
&lt;p&gt;La verdadera clave de ahorro en esta ronda no es dejar de usar buenos modelos. Es combinar bien modelos buenos, modelos baratos, caché y workflows agent. Cuando entiendes esa factura, las herramientas de AI Coding se convierten en productividad real, no en un juguete bonito pero caro.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Cómo elegir entre GPT-5.5, GPT-5.4 y GPT-5.3-Codex</title>
        <link>https://knightli.com/es/2026/05/10/gpt-5-5-vs-gpt-5-4-vs-gpt-5-3-codex/</link>
        <pubDate>Sun, 10 May 2026 08:43:17 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/10/gpt-5-5-vs-gpt-5-4-vs-gpt-5-3-codex/</guid>
        <description>&lt;p&gt;Si solo quieres la conclusión corta, es bastante simple: usa &lt;code&gt;GPT-5.5&lt;/code&gt; por defecto, elige &lt;code&gt;GPT-5.4&lt;/code&gt; cuando el presupuesto y el consumo importen más, y presta especial atención a &lt;code&gt;GPT-5.3-Codex&lt;/code&gt; cuando trabajes en tareas de ingeniería de software de larga duración dentro de Codex o necesites funciones como Cloud Tasks y Code Review.&lt;/p&gt;
&lt;p&gt;No es solo una impresión subjetiva. A fecha de &lt;code&gt;2026-05-10&lt;/code&gt;, la documentación oficial de Codex sigue diciendo que la mayoría de las tareas deberían empezar con &lt;code&gt;gpt-5.5&lt;/code&gt;; si &lt;code&gt;gpt-5.5&lt;/code&gt; aún no está disponible, conviene seguir con &lt;code&gt;gpt-5.4&lt;/code&gt;; y para tareas ligeras o subagentes, &lt;code&gt;gpt-5.4-mini&lt;/code&gt; encaja mejor.&lt;/p&gt;
&lt;h2 id=&#34;diferencias-de-posicionamiento-entre-los-tres-modelos&#34;&gt;Diferencias de posicionamiento entre los tres modelos
&lt;/h2&gt;&lt;p&gt;Primero conviene mirar la posición oficial de cada uno.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.5&lt;/code&gt; es el modelo frontier más reciente dentro de Codex, orientado a programación compleja, uso del ordenador, trabajo de conocimiento y flujos de investigación. Funciona como el modelo principal por defecto para análisis difíciles, tareas de varios pasos, cambios en múltiples archivos, diseño de soluciones y trabajo documental más pesado.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.4&lt;/code&gt; es una opción más equilibrada y estable. OpenAI lo describe como un modelo que reúne la capacidad de programación de &lt;code&gt;GPT-5.3-Codex&lt;/code&gt; con mejor razonamiento, uso de herramientas y flujos agentic. Es decir, no es simplemente una versión más débil de &lt;code&gt;5.5&lt;/code&gt;, sino una opción más balanceada para usar como base a largo plazo.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt; sigue siendo un modelo muy fuerte para código, pero sus ventajas están más concentradas en la ingeniería de software real y en los flujos nativos de Codex. La documentación oficial también deja claro que está optimizado para agentic coding tasks, mientras que &lt;code&gt;GPT-5.4&lt;/code&gt; ya hereda buena parte de esa fortaleza.&lt;/p&gt;
&lt;p&gt;Por eso hoy ya no tiene tanto sentido tratar &lt;code&gt;GPT-5.3-Codex&lt;/code&gt; como si fuera automáticamente &amp;ldquo;el mejor modelo de programación&amp;rdquo;. En la mayoría de escenarios cotidianos de desarrollo, conviene mirar antes &lt;code&gt;GPT-5.5&lt;/code&gt; y &lt;code&gt;GPT-5.4&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;cómo-elegir-según-el-tipo-de-tarea&#34;&gt;Cómo elegir según el tipo de tarea
&lt;/h2&gt;&lt;p&gt;Si tu trabajo es preguntas frecuentes, explicaciones complejas, síntesis de materiales, análisis de archivos o integración de información extensa, &lt;code&gt;GPT-5.5&lt;/code&gt; es la mejor opción. No solo escribe código bien, sino que también resuelve mejor el trabajo intelectual exigente fuera del código puro.&lt;/p&gt;
&lt;p&gt;Si tu trabajo es programación compleja, refactorización, depuración, diseño de arquitectura o cambios en varios archivos, &lt;code&gt;GPT-5.5&lt;/code&gt; sigue siendo la primera elección. Esa es también la recomendación oficial de Codex: cuando &lt;code&gt;gpt-5.5&lt;/code&gt; está disponible, lo normal es empezar por ahí.&lt;/p&gt;
&lt;p&gt;Si te importan más el consumo y los límites, y aun así quieres una calidad alta, &lt;code&gt;GPT-5.4&lt;/code&gt; suele ser el valor por defecto más razonable. Para desarrollo habitual, reescrituras normales, traducciones estándar, generación de scripts y corrección de bugs, &lt;code&gt;GPT-5.4&lt;/code&gt; ya es suficientemente fuerte y además consume menos.&lt;/p&gt;
&lt;p&gt;Si usas Codex CLI, la extensión de IDE o la app para un trabajo más parecido al de un agente de ingeniería, por ejemplo leer un repositorio durante mucho tiempo, modificar código de forma continua, encadenar tareas, o usar Cloud Tasks y Code Review, &lt;code&gt;GPT-5.3-Codex&lt;/code&gt; sigue teniendo peso. No porque sea más avanzado que &lt;code&gt;GPT-5.5&lt;/code&gt;, sino porque Cloud Tasks y Code Review de Codex siguen ejecutándose sobre &lt;code&gt;GPT-5.3-Codex&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;cuánta-diferencia-hay-en-consumo&#34;&gt;Cuánta diferencia hay en consumo
&lt;/h2&gt;&lt;p&gt;La tabla de credits de Codex deja las diferencias bastante claras.&lt;/p&gt;
&lt;p&gt;Bajo la tarificación por tokens para Business / New Enterprise:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;: &lt;code&gt;125 credits / 1M tokens&lt;/code&gt; de entrada, &lt;code&gt;12.5 credits&lt;/code&gt; de entrada en caché y &lt;code&gt;750 credits&lt;/code&gt; de salida&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GPT-5.4&lt;/code&gt;: &lt;code&gt;62.5 credits / 1M tokens&lt;/code&gt; de entrada, &lt;code&gt;6.25 credits&lt;/code&gt; de entrada en caché y &lt;code&gt;375 credits&lt;/code&gt; de salida&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt;: &lt;code&gt;43.75 credits / 1M tokens&lt;/code&gt; de entrada, &lt;code&gt;4.375 credits&lt;/code&gt; de entrada en caché y &lt;code&gt;350 credits&lt;/code&gt; de salida&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Eso significa que, si solo miras la tarifa nominal, &lt;code&gt;GPT-5.4&lt;/code&gt; cuesta aproximadamente la mitad que &lt;code&gt;GPT-5.5&lt;/code&gt; para cantidades parecidas de entrada y salida. &lt;code&gt;GPT-5.3-Codex&lt;/code&gt; es más barato en entrada, pero su salida ya está bastante cerca de &lt;code&gt;GPT-5.4&lt;/code&gt;, así que no es una opción &amp;ldquo;muchísimo más barata&amp;rdquo; en conjunto.&lt;/p&gt;
&lt;p&gt;Hay otro detalle importante. La documentación oficial también dice que &lt;code&gt;GPT-5.5 uses significantly fewer tokens to achieve results comparable to GPT-5.4&lt;/code&gt;. En otras palabras, aunque la tarifa unitaria sea más alta, en tareas complejas puede compensar con menos tokens y menos retrabajo.&lt;/p&gt;
&lt;p&gt;Sin embargo, en tareas como reescritura de artículos con plantilla fija, traducción o generación de descripciones SEO, donde la longitud de entrada y salida suele ser bastante estable, esa ventaja de &amp;ldquo;equivocarse menos&amp;rdquo; se nota menos que en la ingeniería compleja. En la práctica, &lt;code&gt;GPT-5.4&lt;/code&gt; suele seguir siendo la opción más barata, normalmente con un ahorro de alrededor del &lt;code&gt;45%&lt;/code&gt; al &lt;code&gt;50%&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;diferencias-en-los-límites-de-uso-dentro-de-codex&#34;&gt;Diferencias en los límites de uso dentro de Codex
&lt;/h2&gt;&lt;p&gt;Además del precio, estos modelos no están disponibles exactamente de la misma manera dentro de Codex.&lt;/p&gt;
&lt;p&gt;A fecha de &lt;code&gt;2026-05-10&lt;/code&gt;, &lt;code&gt;GPT-5.5&lt;/code&gt; es el modelo recomendado en Codex, pero por ahora solo está disponible cuando inicias sesión en Codex con ChatGPT, y no admite autenticación con API key. &lt;code&gt;GPT-5.4&lt;/code&gt; y &lt;code&gt;GPT-5.3-Codex&lt;/code&gt; sí admiten acceso vía API.&lt;/p&gt;
&lt;p&gt;Además, &lt;code&gt;GPT-5.5&lt;/code&gt; y &lt;code&gt;GPT-5.4&lt;/code&gt; no soportan actualmente Codex Cloud Tasks ni Code Review. Esas dos funciones siguen siendo terreno de &lt;code&gt;GPT-5.3-Codex&lt;/code&gt;. Por eso, si lo que realmente quieres es ejecutar trabajo de ingeniería prolongado dentro de Codex, no basta con comparar cuál modelo es más fuerte: también debes mirar si la función que necesitas sigue dependiendo de &lt;code&gt;GPT-5.3-Codex&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Si solo usas mensajes locales, la ventana oficial de cinco horas del plan Plus es aproximadamente:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;: &lt;code&gt;15-80&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GPT-5.4&lt;/code&gt;: &lt;code&gt;20-100&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt;: &lt;code&gt;30-150&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Eso también refleja una diferencia práctica: &lt;code&gt;GPT-5.5&lt;/code&gt; es el más fuerte, pero normalmente te da menos usos dentro de un límite fijo; &lt;code&gt;GPT-5.4&lt;/code&gt; es más equilibrado; y &lt;code&gt;GPT-5.3-Codex&lt;/code&gt; puede parecer más resistente en mensajes locales.&lt;/p&gt;
&lt;h2 id=&#34;cómo-elegir-en-escenarios-comunes&#34;&gt;Cómo elegir en escenarios comunes
&lt;/h2&gt;&lt;p&gt;En el trabajo diario hay muchas tareas frecuentes. La forma más útil de comparar estos modelos no es preguntar en abstracto cuál es &amp;ldquo;mejor&amp;rdquo;, sino separarlos por escenario.&lt;/p&gt;
&lt;h3 id=&#34;1-preguntas-diarias-organización-de-materiales-y-resúmenes-largos&#34;&gt;1. Preguntas diarias, organización de materiales y resúmenes largos
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;: La mejor opción. Maneja mejor las solicitudes ambiguas, completa contexto y convierte información dispersa en una salida estructurada.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.4&lt;/code&gt;: Adecuado para resúmenes normales y trabajo en lote. Cuando la dificultad es moderada y el volumen es alto, suele ser la opción más económica.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt;: No es ideal como opción principal. Puede hacerlo, pero no es donde más destaca.&lt;/p&gt;
&lt;h3 id=&#34;2-explicación-de-conceptos-técnicos-lectura-de-código-y-proyectos-antiguos&#34;&gt;2. Explicación de conceptos técnicos, lectura de código y proyectos antiguos
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;: Mejor para proyectos complejos. Es más fiable cuando hay muchas relaciones entre archivos, cadenas largas de llamadas y mucha deuda histórica.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.4&lt;/code&gt;: Muy bueno para lectura y explicación normales. Funciona bien para entender funciones, módulos, configuraciones y ponerse al día en un proyecto.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt;: Más orientado a ejecución, no es la primera opción para tareas centradas en explicación.&lt;/p&gt;
&lt;h3 id=&#34;3-scripts-herramientas-pequeñas-sql-shell-y-expresiones-regulares&#34;&gt;3. Scripts, herramientas pequeñas, SQL, shell y expresiones regulares
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;: Mejor cuando el script forma parte de un diseño de sistema más amplio, conecta varios servicios o tiene restricciones complejas.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.4&lt;/code&gt;: La mejor opción principal por defecto. La mayoría de scripts, herramientas pequeñas, SQL y trabajo de línea de comandos caben perfectamente dentro de su zona de confort, y además consume menos.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt;: Tiene sentido si el script es solo una parte de un flujo más grande de agente de ingeniería, pero no hace falta priorizarlo para scripting aislado.&lt;/p&gt;
&lt;h3 id=&#34;4-corregir-bugs-hacer-cambios-pequeños-añadir-tests-y-desarrollo-rutinario&#34;&gt;4. Corregir bugs, hacer cambios pequeños, añadir tests y desarrollo rutinario
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;: Mejor para correcciones algo más complejas, especialmente si primero debe analizar la causa, luego editar varios archivos y finalmente añadir pruebas.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.4&lt;/code&gt;: El mejor caballo de batalla para el desarrollo diario. En bugs normales, pequeñas funciones, esqueletos de tests, renombrado y limpieza de formato, ofrece el mejor equilibrio entre coste y resultado.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt;: Capaz, pero normalmente no es la primera opción salvo que necesites específicamente Cloud Tasks o un flujo de agente de ingeniería.&lt;/p&gt;
&lt;h3 id=&#34;5-refactorización-compleja-diseño-de-arquitectura-y-depuración-difícil&#34;&gt;5. Refactorización compleja, diseño de arquitectura y depuración difícil
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;: La mejor opción. En tareas complejas, lo caro no suele ser una respuesta aislada, sino el retrabajo. &lt;code&gt;GPT-5.5&lt;/code&gt; encaja mejor como modelo principal para resolver problemas difíciles.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.4&lt;/code&gt;: Bueno para trabajos de complejidad media. Puede encargarse de refactorizaciones y diseño, pero en contextos muy largos, razonamiento de muchos pasos y problemas con alta incertidumbre, suele ser menos estable que &lt;code&gt;GPT-5.5&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt;: Más orientado a ejecución, y no es la prioridad por defecto para trabajo de decisión difícil.&lt;/p&gt;
&lt;h3 id=&#34;6-tareas-ligeras-en-lote-trabajo-repetitivo-y-sub-tareas-divididas&#34;&gt;6. Tareas ligeras en lote, trabajo repetitivo y sub-tareas divididas
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;: Puede hacerlo, pero normalmente no compensa por coste.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.4&lt;/code&gt;: La mejor opción. Para editar comentarios en lote, reformatear, generar código de plantilla o hacer cambios repetitivos de contenido, es la más equilibrada.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt;: Tiene sentido si el trabajo ya vive dentro de un flujo de ingeniería de Codex, pero en términos puros de coste-rendimiento suele quedar por detrás de &lt;code&gt;GPT-5.4&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;7-automatización-ejecución-de-agentes-y-trabajo-continuo-sobre-repositorios&#34;&gt;7. Automatización, ejecución de agentes y trabajo continuo sobre repositorios
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;: Bueno para diseño inicial, reglas y descomposición de tareas complejas.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.4&lt;/code&gt;: Bueno para escribir scripts de automatización y completar lógica de flujos de complejidad media, especialmente si importa el acceso por API.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt;: Es el más relevante aquí. Como Cloud Tasks y Code Review de Codex siguen corriendo sobre él, encaja mejor en escenarios donde quieres que el sistema siga trabajando por sí solo.&lt;/p&gt;
&lt;h3 id=&#34;8-copy-para-páginas-importantes-presentación-de-marca-y-pulido-final&#34;&gt;8. Copy para páginas importantes, presentación de marca y pulido final
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;: La mejor opción. Tiene mayor naturalidad, mejor control de estilo y más consistencia en textos largos.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.4&lt;/code&gt;: Adecuado para la mayoría de páginas normales y actualizaciones diarias. Las páginas importantes pueden partir de un borrador en &lt;code&gt;GPT-5.4&lt;/code&gt; y pulirse después con &lt;code&gt;GPT-5.5&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt;: No encaja como modelo principal de redacción.&lt;/p&gt;
&lt;h3 id=&#34;9-reescritura-de-artículos-con-plantilla-fija-traducción-y-descripciones-seo&#34;&gt;9. Reescritura de artículos con plantilla fija, traducción y descripciones SEO
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;: Mejor para diseñar la plantilla, hacer el pulido final, cerrar páginas importantes y producir una traducción chino-inglés más natural.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.4&lt;/code&gt;: La mejor opción para producción en lote. En reescritura de artículos estándar, traducciones con estructura fija, reescritura de copy de producto y generación masiva de meta descriptions, suele ofrecer el mejor equilibrio entre calidad y coste.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt;: No es adecuado como modelo principal de redacción. Es más útil para scripts de procesamiento por lotes, limpieza de HTML, conservación de estructuras de etiquetas y mejora de flujos de publicación.&lt;/p&gt;
&lt;h3 id=&#34;10-copy-para-e-commerce-páginas-de-categoría-y-operación-masiva-de-contenidos&#34;&gt;10. Copy para e-commerce, páginas de categoría y operación masiva de contenidos
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;: Bueno para definir reglas, hacer revisiones de muestra y pulir páginas de alto valor.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.4&lt;/code&gt;: La mejor opción para producción masiva. En títulos de producto, descripciones de categorías, textos de campañas y contenido SEO long-tail, ofrece un equilibrio más práctico.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt;: Bueno para scraping, limpieza, procesamiento en lote y scripts de publicación automática, pero no tanto para el copy principal.&lt;/p&gt;
&lt;p&gt;Si comprimes todos estos escenarios en una sola línea:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Trabajo intelectual complejo, análisis complejo y redacción de alto valor: prioriza &lt;code&gt;GPT-5.5&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Desarrollo diario, producción en lote y trabajo repetitivo: prioriza &lt;code&gt;GPT-5.4&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Agentes de ingeniería en Codex, Cloud Tasks y Code Review: presta especial atención a &lt;code&gt;GPT-5.3-Codex&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;recomendación-final&#34;&gt;Recomendación final
&lt;/h2&gt;&lt;p&gt;Si tu trabajo consiste sobre todo en programación normal, corrección de bugs, preguntas técnicas y documentación de apoyo, &lt;code&gt;GPT-5.4&lt;/code&gt; es un valor por defecto muy sólido.&lt;/p&gt;
&lt;p&gt;Si necesitas análisis de proyecto más complejos, cambios en varios archivos, diseño de arquitectura, depuración difícil, o un solo modelo que cubra tanto ingeniería como trabajo intelectual exigente, ve directamente a &lt;code&gt;GPT-5.5&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Si lo que más pesa es el flujo de trabajo de ingeniería dentro de Codex, como Cloud Tasks, Code Review y ejecución prolongada de agentes, entonces &lt;code&gt;GPT-5.3-Codex&lt;/code&gt; sigue mereciendo un lugar, aunque ya no tenga demasiado sentido como primera opción por defecto.&lt;/p&gt;
&lt;p&gt;Para un sitio con contenido de plantilla fija, una combinación más práctica suele ser:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;GPT-5.4&lt;/code&gt; para la producción en lote&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GPT-5.5&lt;/code&gt; para diseñar la plantilla, hacer revisiones de muestra y pulir el resultado final&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GPT-5.3-Codex&lt;/code&gt; para escribir herramientas de automatización en lugar del contenido principal&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;El orden por defecto más razonable hoy es &lt;code&gt;GPT-5.5&lt;/code&gt; primero, &lt;code&gt;GPT-5.4&lt;/code&gt; segundo, y &lt;code&gt;GPT-5.3-Codex&lt;/code&gt; reservado para escenarios más ligados a agentes de ingeniería o a funciones específicas de Codex.&lt;/p&gt;
&lt;p&gt;Si la pregunta concreta es &amp;ldquo;¿cuánto ahorra &lt;code&gt;GPT-5.4&lt;/code&gt; frente a &lt;code&gt;GPT-5.5&lt;/code&gt; al reescribir el mismo artículo con plantilla?&amp;rdquo;, entonces, según la tabla oficial de credits y la estructura típica de tokens de este tipo de tarea, es razonable pensar en un ahorro cercano a la mitad. Para sitios de contenido por lotes, esa diferencia es lo bastante grande como para que la práctica habitual no sea usar &lt;code&gt;GPT-5.5&lt;/code&gt; en todo, sino usar &lt;code&gt;GPT-5.5&lt;/code&gt; para fijar reglas y estilo, y dejar la producción masiva a &lt;code&gt;GPT-5.4&lt;/code&gt;.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Cómo elegir planes de AI Coding: los usuarios ligeros priorizan comodidad, los intensivos necesitan flexibilidad</title>
        <link>https://knightli.com/es/2026/05/10/ai-coding-plan-selection/</link>
        <pubDate>Sun, 10 May 2026 08:20:58 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/10/ai-coding-plan-selection/</guid>
        <description>&lt;p&gt;Los planes de AI Coding han cambiado muy rápido en los últimos seis meses. Muchas herramientas han pasado de un modelo de cobro por mensajes o por uso limitado a uno claramente basado en consumo, los planes baratos y generosos se han ido recortando, y algunos servicios extranjeros han añadido verificaciones de identidad, restricciones regionales y reglas de uso más estrictas.&lt;/p&gt;
&lt;p&gt;Para un desarrollador, la pregunta ya no es solo qué modelo es el más fuerte. También importa cuánto vas a gastar cada mes, si la cuota alcanza, si la herramienta resulta cómoda de usar y si podrás cambiar sin demasiado dolor cuando un proveedor suba precios o cambie las reglas de repente.&lt;/p&gt;
&lt;p&gt;Una conclusión bastante útil es esta: los usuarios ligeros deberían comprar comodidad, los usuarios intermedios deberían comprar relación calidad-precio y los usuarios intensivos deberían comprar flexibilidad. Cuanto más intensivo sea el uso, menos conviene atar el modelo y la herramienta dentro del mismo plan.&lt;/p&gt;
&lt;h2 id=&#34;cuatro-cosas-que-conviene-revisar-antes-de-elegir-un-plan&#34;&gt;Cuatro cosas que conviene revisar antes de elegir un plan
&lt;/h2&gt;&lt;p&gt;Antes, al elegir un plan de AI Coding, normalmente bastaba con mirar tres cosas:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Si el modelo era lo bastante fuerte.&lt;/li&gt;
&lt;li&gt;Si la velocidad de respuesta era estable.&lt;/li&gt;
&lt;li&gt;Si la cuota incluida alcanzaba.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Ahora hay que añadir una cuarta: si el modelo y la herramienta se pueden separar.&lt;/p&gt;
&lt;p&gt;El modelo aporta la capacidad de razonamiento, mientras que la herramienta gestiona contexto, edición de archivos, orquestación de Agent y experiencia de flujo de trabajo. Ambas cosas importan, pero es mejor no dejarlas completamente atadas entre sí. Por ejemplo, si te gustan los modelos de Claude, puedes usar el plan oficial o conectar la API a otras herramientas. Y si te gusta un editor o entorno Agent concreto, es preferible que pueda conectarse a varios modelos en lugar de obligarte a usar solo el suyo.&lt;/p&gt;
&lt;p&gt;La gracia de esto no es complicarse por gusto. Es reducir riesgos. AI Coding es uno de los segmentos que cambian más rápido. Un plan que hoy parece generoso puede cambiar de precio en dos meses, y una herramienta que hoy parece cómoda puede empeorar después de un cambio en la integración con modelos. Separar modelos y herramientas te deja margen de maniobra.&lt;/p&gt;
&lt;h2 id=&#34;los-planes-extranjeros-se-están-endureciendo&#34;&gt;Los planes extranjeros se están endureciendo
&lt;/h2&gt;&lt;p&gt;Herramientas como GitHub Copilot, Cursor, Windsurf y Claude Code siguen siendo la base de trabajo de mucha gente, pero la tendencia es cada vez más clara: mantener planes muy baratos con cuotas muy altas es más difícil, y la facturación por uso real es cada vez más común.&lt;/p&gt;
&lt;p&gt;Cuando servicios como GitHub Copilot se apoyan más en facturación por uso, el supuesto margen de ahorro de algunos planes cae bastante. Para usuarios ligeros siguen siendo cómodos, pero para quienes usan agentes, contexto largo y tareas complejas de código con mucha frecuencia, el consumo real empieza a parecerse mucho más al coste real de API.&lt;/p&gt;
&lt;p&gt;Cursor y Windsurf, en esencia, empaquetan capacidad de modelo dentro de una experiencia de IDE. Su punto fuerte es que funcionan bien desde el primer momento y ofrecen una experiencia de editor madura. Su punto débil es el mayor nivel de dependencia de herramienta. Cuanto más dependas de sus agentes propietarios, sus índices y sus flujos automáticos, más caro será migrar después.&lt;/p&gt;
&lt;p&gt;Claude Code sigue siendo atractivo tanto por experiencia como por atención del ecosistema, pero las suscripciones internacionales, la verificación de identidad, las restricciones regionales y la seguridad de los servicios intermedios son riesgos que los usuarios en China necesitan valorar con cuidado. En especial, los relays de terceros pueden mezclar modelos, ser inestables, exponer datos o desaparecer, así que no son una gran base a largo plazo para trabajo importante.&lt;/p&gt;
&lt;h2 id=&#34;ventajas-y-límites-de-los-planes-nacionales&#34;&gt;Ventajas y límites de los planes nacionales
&lt;/h2&gt;&lt;p&gt;Una ventaja de muchos planes nacionales de AI Coding es que suelen ofrecerse en forma de API, lo que hace que queden menos atados a una sola herramienta. Puedes conectarlos a OpenCode, Cline, Continue, tus propios scripts o agentes internos.&lt;/p&gt;
&lt;p&gt;El problema también es evidente: si quieres al mismo tiempo un modelo fuerte, buena velocidad y bastante cuota, hay pocos planes que cumplan todo a la vez.&lt;/p&gt;
&lt;p&gt;La familia GLM es fuerte dentro del panorama nacional, pero en horas punta el rendimiento puede volverse inestable y las tareas pesadas acaban limitadas por velocidad. Kimi tiene buen nivel, pero sus reglas de precio y cuota hay que seguirlas de cerca, sobre todo la transparencia del límite real. Modelos como MiniMax son más amables en velocidad y cuota, lo que los hace útiles para tareas ligeras del día a día, lotes y ayuda de código no demasiado compleja, aunque pueden quedar un escalón por debajo en razonamiento de ingeniería difícil. DeepSeek puede parecer muy rentable cuando un modelo nuevo está en precio promocional, pero al acabar la promoción toca reevaluarlo con tarifa normal.&lt;/p&gt;
&lt;p&gt;Por eso, en muchos casos, las opciones nacionales funcionan mejor como un grupo de modelos disponible para repartir trabajo según la tarea, y no como una apuesta total por un solo modelo y un solo plan.&lt;/p&gt;
&lt;h2 id=&#34;usuarios-ligeros-elige-lo-que-resulte-cómodo-y-no-sobrediseñes&#34;&gt;Usuarios ligeros: elige lo que resulte cómodo y no sobrediseñes
&lt;/h2&gt;&lt;p&gt;Si solo usas AI para retocar scripts, completar documentación, explicar errores o generar herramientas pequeñas una o dos veces por semana, probablemente no necesitas una configuración complicada.&lt;/p&gt;
&lt;p&gt;En este caso importa más la comodidad. Cursor, Windsurf, Trae, CodeBuddy, Tongyi Lingma, GitHub Copilot y herramientas similares son opciones razonables. El objetivo no es perseguir el coste unitario más bajo, sino reducir fricción: algo estable dentro de tu editor, con buenas sugerencias y fácil de revertir cuando se equivoca.&lt;/p&gt;
&lt;p&gt;Para usuarios ligeros, construir capas de API, relays y proxys complejos solo para ahorrar un poco de dinero rara vez compensa. El tiempo, el riesgo de cuenta y el coste de depuración suelen costar más que la suscripción que te ahorras.&lt;/p&gt;
&lt;h2 id=&#34;usuarios-intermedios-mira-la-relación-calidad-precio-pero-también-la-portabilidad&#34;&gt;Usuarios intermedios: mira la relación calidad-precio, pero también la portabilidad
&lt;/h2&gt;&lt;p&gt;Si usas AI todos los días para programar, modificar proyectos, generar pruebas y preparar documentación, la cuota y el consumo real empiezan a importar mucho más.&lt;/p&gt;
&lt;p&gt;En este caso conviene separar la herramienta principal de los modelos de respaldo. Por ejemplo, un plan cómodo de IDE puede servir para el trabajo diario, mientras que una API o plan agregador conectable a varias herramientas puede encargarse de tareas con contexto más largo o flujos de Agent más complejos.&lt;/p&gt;
&lt;p&gt;Aquí hay tres preguntas clave:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Si se puede integrar con herramientas de terceros.&lt;/li&gt;
&lt;li&gt;Si el consumo de tokens o cuota es visible y entendible.&lt;/li&gt;
&lt;li&gt;Si al superar el límite se aplica throttling, degradación, corte del servicio o pura facturación por uso.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si un plan parece barato pero solo funciona dentro de su propia herramienta, conviene contar también el coste de migrar más adelante. Si cuesta algo más pero puede conectarse a varias herramientas, puede ser mejor como base a largo plazo.&lt;/p&gt;
&lt;h2 id=&#34;usuarios-intensivos-no-bloquees-modelo-y-herramienta-juntos&#34;&gt;Usuarios intensivos: no bloquees modelo y herramienta juntos
&lt;/h2&gt;&lt;p&gt;Para los usuarios intensivos, la necesidad principal es la flexibilidad.&lt;/p&gt;
&lt;p&gt;Cuando una persona o un equipo usa agentes de AI de forma intensiva todos los días, el consumo crece muy rápido. Búsquedas de repositorio, cambios con contexto largo, depuración en múltiples rondas y reparación automática de pruebas pueden multiplicar el gasto en tokens. Si en ese punto dependes de un solo plan, aparecen tres problemas con facilidad:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;La cuota deja de ser suficiente de repente.&lt;/li&gt;
&lt;li&gt;La regla de cobro cambia de forma inesperada.&lt;/li&gt;
&lt;li&gt;Una herramienta o un modelo deja de estar disponible temporalmente.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;La opción más estable es montar una estructura por capas: una herramienta Agent principal, uno o varios endpoints de modelo intercambiables, un modelo barato para tareas simples y un modelo fuerte para tareas difíciles. No conviene mandar todas las tareas pequeñas al modelo más caro, ni depender solo del más barato para las tareas críticas.&lt;/p&gt;
&lt;p&gt;Para un usuario intensivo, que las herramientas puedan conectarse a cualquier modelo y que los modelos puedan moverse entre herramientas importa más que ahorrar unas decenas de dólares al mes. Lo realmente caro no suele ser la suscripción. Lo caro es quedar atrapado en un solo ecosistema y tener que reconstruir el flujo de trabajo después.&lt;/p&gt;
&lt;h2 id=&#34;una-estrategia-de-combinación-más-estable&#34;&gt;Una estrategia de combinación más estable
&lt;/h2&gt;&lt;p&gt;Una forma razonablemente sólida de organizarlo sería esta:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Usa un modelo de bajo coste para tareas ligeras como explicar código, escribir scripts pequeños, formatear y generar documentos simples.&lt;/li&gt;
&lt;li&gt;Usa un modelo orientado a valor para tareas intermedias como desarrollo normal de funciones, completar pruebas y sugerencias de refactorización.&lt;/li&gt;
&lt;li&gt;Usa un modelo fuerte para tareas difíciles como cambios de arquitectura, correcciones entre varios archivos, bugs complejos y razonamiento con contexto largo.&lt;/li&gt;
&lt;li&gt;Mantén abierta la capa de herramientas, eligiendo soluciones que puedan conectarse por API, exportar configuración y cambiar de modelo.&lt;/li&gt;
&lt;li&gt;Conserva un camino de respaldo, de forma que si tu plan principal cambia reglas puedas moverte rápido a otra herramienta o modelo.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Puede que no sea la configuración más barata posible, pero sí una mucho más resistente. Los precios y cuotas de AI Coding van a seguir cambiando. Lo valioso a largo plazo no es un plan que hoy parezca muy generoso, sino un flujo de trabajo portable.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Los planes de AI Coding no deberían juzgarse solo por el precio mensual. Los usuarios ligeros deberían priorizar simplicidad y comodidad. Los usuarios intermedios deberían fijarse en cuota, consumo y capacidad de migrar. Los usuarios intensivos deberían separar modelos y herramientas para no quedar atrapados en un único ecosistema.&lt;/p&gt;
&lt;p&gt;La idea más importante es que los planes cambian, los modelos cambian y las herramientas también. Mantener la capacidad de elegir en tus propias manos es la forma más importante de controlar costes cuando trabajas con AI Coding a largo plazo.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Chrome descarga 4GB de Gemini Nano en silencio: cómo comprobarlo, desactivarlo y borrarlo</title>
        <link>https://knightli.com/es/2026/05/09/chrome-gemini-nano-silent-download/</link>
        <pubDate>Sat, 09 May 2026 21:37:18 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/09/chrome-gemini-nano-silent-download/</guid>
        <description>&lt;p&gt;Se ha informado que Google Chrome descarga en segundo plano, sin permiso explícito del usuario, un archivo de modelo local de IA de unos 4GB. El caso ha abierto un debate sobre privacidad, uso de almacenamiento e impacto ambiental.&lt;/p&gt;
&lt;p&gt;Estos archivos están relacionados con Gemini Nano y se usan principalmente para funciones locales de IA en Chrome. La polémica no es simplemente que el navegador admita IA local, sino si el proceso de descarga es lo bastante transparente, si el usuario debería ser informado antes y si el uso de recursos del sistema es razonable.&lt;/p&gt;
&lt;h2 id=&#34;qué-ocurrió&#34;&gt;Qué ocurrió
&lt;/h2&gt;&lt;p&gt;El archivo de modelo mencionado se llama &lt;code&gt;weights.bin&lt;/code&gt; y se encuentra en el directorio &lt;code&gt;OptGuideOnDeviceModel&lt;/code&gt; de Chrome. Se considera una versión local de Gemini Nano, usada para ejecutar parte de la inferencia de IA directamente en el dispositivo.&lt;/p&gt;
&lt;p&gt;Chrome decide en segundo plano si debe descargarlo según las capacidades del hardware, especialmente RAM y VRAM. Normalmente el usuario no inicia la descarga de forma manual, y puede que tampoco vea un aviso claro antes de que ocurra.&lt;/p&gt;
&lt;p&gt;Lo más incómodo es que borrar manualmente el archivo del modelo no suele impedir que vuelva. Mientras la función relacionada siga activada, Chrome puede descargar el modelo de nuevo después de reiniciar el navegador o tras una actualización posterior.&lt;/p&gt;
&lt;p&gt;Las plataformas mencionadas en la discusión incluyen Windows 11, macOS y Ubuntu en sistemas de escritorio. Si se toma como referencia la base instalada de Chrome en escritorio, el número de dispositivos potencialmente afectados podría llegar a cientos de millones.&lt;/p&gt;
&lt;h2 id=&#34;la-explicación-de-google&#34;&gt;La explicación de Google
&lt;/h2&gt;&lt;p&gt;Google afirma que estos archivos sirven para funciones locales de IA, como &amp;ldquo;Help me write&amp;rdquo; y la detección de estafas. Ejecutar el modelo de forma local puede reducir parte de la subida de datos y mejorar la protección de la privacidad.&lt;/p&gt;
&lt;p&gt;Google también señala que, si el dispositivo tiene poco espacio libre, Chrome eliminará automáticamente el modelo relacionado para liberar almacenamiento. Es decir, el modelo no necesariamente ocupa disco de forma permanente.&lt;/p&gt;
&lt;p&gt;Al mismo tiempo, Google dice que desde febrero de 2024 los usuarios pueden desactivar la función relacionada desde la configuración de Chrome. Una vez desactivada, el modelo dejará de descargarse o actualizarse.&lt;/p&gt;
&lt;h2 id=&#34;cómo-comprobarlo-y-desactivarlo&#34;&gt;Cómo comprobarlo y desactivarlo
&lt;/h2&gt;&lt;p&gt;Si no quieres que Chrome conserve el modelo Gemini Nano en local, puedes empezar revisando varios lugares.&lt;/p&gt;
&lt;p&gt;Primero, entra en la configuración de Chrome y busca opciones relacionadas con &amp;ldquo;on-device AI&amp;rdquo;, IA local, asistencia de escritura o sugerencias de optimización. Desactiva las funciones que no necesites.&lt;/p&gt;
&lt;p&gt;Después, escribe esto en la barra de direcciones:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;chrome://flags
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Luego busca y desactiva:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Enables optimization guide on device
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Por último, revisa el directorio de datos de usuario de Chrome, busca la carpeta &lt;code&gt;OptGuideOnDeviceModel&lt;/code&gt; y elimina los archivos de modelo que contiene. Ten en cuenta que borrar el archivo por sí solo no suele bastar. Es mejor desactivar primero el flag o la configuración relacionada; de lo contrario, Chrome podría volver a descargarlo más adelante.&lt;/p&gt;
&lt;h2 id=&#34;posibles-rutas-en-distintos-sistemas&#34;&gt;Posibles rutas en distintos sistemas
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;OptGuideOnDeviceModel&lt;/code&gt; suele estar dentro del directorio de datos de usuario de Chrome. La ubicación exacta puede variar según el sistema operativo y el método de instalación, pero estos son buenos puntos de partida:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Windows: &lt;code&gt;%LOCALAPPDATA%\Google\Chrome\User Data\&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;macOS: &lt;code&gt;~/Library/Application Support/Google/Chrome/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Linux: &lt;code&gt;~/.config/google-chrome/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Chromium: &lt;code&gt;~/.config/chromium/&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Una vez dentro del directorio correspondiente, busca &lt;code&gt;OptGuideOnDeviceModel&lt;/code&gt; o &lt;code&gt;weights.bin&lt;/code&gt;. Si usas Chrome Beta, Dev o Canary, el nombre del directorio puede incluir el canal de versión correspondiente.&lt;/p&gt;
&lt;h2 id=&#34;cómo-saber-si-weightsbin-ya-se-descargó&#34;&gt;Cómo saber si weights.bin ya se descargó
&lt;/h2&gt;&lt;p&gt;El método más directo es buscar en el directorio de datos de usuario de Chrome:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;weights.bin
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si ya se ha descargado, normalmente aparecerá dentro de &lt;code&gt;OptGuideOnDeviceModel&lt;/code&gt;, y su tamaño puede acercarse a varios GB. También puedes mirar la hora de modificación del archivo para saber si Chrome lo creó o actualizó recientemente en segundo plano.&lt;/p&gt;
&lt;p&gt;Si no encuentras &lt;code&gt;weights.bin&lt;/code&gt;, eso no significa necesariamente que el dispositivo nunca vaya a descargarlo. Chrome puede decidir si obtiene el modelo según el hardware, la región, la versión, los interruptores de funciones y la configuración experimental.&lt;/p&gt;
&lt;h2 id=&#34;qué-funciones-de-ia-de-chrome-pueden-verse-afectadas&#34;&gt;Qué funciones de IA de Chrome pueden verse afectadas
&lt;/h2&gt;&lt;p&gt;Después de desactivar las funciones locales de IA u optimización relacionadas, pueden verse afectadas capacidades en el dispositivo que dependan de Gemini Nano, como &amp;ldquo;Help me write&amp;rdquo;, la detección local de estafas y futuras funciones de IA del navegador que no pasen por la nube.&lt;/p&gt;
&lt;p&gt;Para quienes no usan estas funciones, la navegación diaria normalmente no cambia demasiado. Para usuarios que dependen a menudo de la asistencia de escritura integrada en Chrome, la comprensión de páginas o funciones experimentales de seguridad, la experiencia podría volver al procesamiento en la nube, dejar de estar disponible o usar una alternativa del navegador.&lt;/p&gt;
&lt;h2 id=&#34;dónde-está-la-polémica&#34;&gt;Dónde está la polémica
&lt;/h2&gt;&lt;p&gt;La cuestión central es si un navegador debería descargar varios GB de archivos de modelo para funciones de IA antes de que el usuario haya dado un consentimiento claro.&lt;/p&gt;
&lt;p&gt;Quienes lo defienden argumentan que la IA local puede reducir el procesamiento en la nube, mejorar la privacidad y acelerar las respuestas. Quienes lo critican sostienen que el usuario debería ver al menos un aviso claro antes de la descarga, especialmente cuando el archivo ronda los 4GB y puede afectar al almacenamiento y al tráfico de red.&lt;/p&gt;
&lt;p&gt;Expertos en privacidad también señalan que este tipo de descarga en segundo plano sin información suficiente podría plantear dudas de cumplimiento bajo la Directiva ePrivacy de la UE y el GDPR. Que sea o no una infracción dependerá del mecanismo de aviso de Google, la configuración predeterminada, la ruta de tratamiento de datos y los controles ofrecidos al usuario.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;La llegada de Gemini Nano a Chrome muestra que los navegadores están trasladando más capacidades de IA al dispositivo local. Pero también plantea un nuevo límite de producto: los modelos locales siguen consumiendo disco y ancho de banda, y pueden afectar la sensación de control del usuario sobre su propio dispositivo.&lt;/p&gt;
&lt;p&gt;Para un usuario normal, lo más directo es revisar la configuración de IA local y optimización de Chrome. Si no necesitas esas funciones, desactiva las opciones relacionadas y luego elimina los archivos del modelo dentro del directorio &lt;code&gt;OptGuideOnDeviceModel&lt;/code&gt;.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Cómo medir el rendimiento multi-GPU en llama.cpp: ¿2x V100 16GB son más rápidas que una sola GPU de 32GB?</title>
        <link>https://knightli.com/es/2026/05/09/llama-cpp-multi-gpu-offload-performance/</link>
        <pubDate>Sat, 09 May 2026 15:05:41 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/09/llama-cpp-multi-gpu-offload-performance/</guid>
        <description>&lt;p&gt;La conclusión rápida: el multi-GPU offload de llama.cpp no significa rendimiento gratis por añadir una segunda tarjeta. Si el modelo ya cabe completo en una GPU de 32GB, 2x V100 16GB suele ser menos cómodo que una sola tarjeta de 32GB, e incluso puede ser más lento. Si el modelo no cabe en una sola tarjeta de 16GB, el valor principal de usar dos GPU es mantener el modelo en GPU, y ahí la mejora sí puede ser clara.&lt;/p&gt;
&lt;h2 id=&#34;primero-separa-los-split-mode&#34;&gt;Primero, separa los split mode
&lt;/h2&gt;&lt;p&gt;El uso multi-GPU en llama.cpp gira principalmente alrededor de &lt;code&gt;--split-mode&lt;/code&gt; y &lt;code&gt;--tensor-split&lt;/code&gt;. Para hablar de rendimiento, conviene distinguir primero estos modos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;layer&lt;/code&gt;: divide capas entre distintas GPU. Suele ser el punto de partida más compatible.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tensor&lt;/code&gt;: divide el cálculo de tensores entre varias GPU. Se acerca más al paralelismo real, pero depende mucho del ancho de banda entre GPU y del soporte del backend.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;row&lt;/code&gt;: un modo antiguo de división por filas. Todavía aparece en algunas configuraciones, pero normalmente no es la primera opción para despliegues nuevos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En términos simples, &lt;code&gt;layer&lt;/code&gt; es como poner diferentes pisos en diferentes tarjetas. Durante la generación de un solo token, no siempre mantiene ambas GPU completamente ocupadas. &lt;code&gt;tensor&lt;/code&gt; se parece más a hacer que ambas tarjetas trabajen juntas en la misma capa. Tiene más paralelismo teórico, pero la comunicación entre GPU puede convertirse en el cuello de botella.&lt;/p&gt;
&lt;h2 id=&#34;si-una-gpu-de-32gb-puede-cargar-el-modelo-dos-de-16gb-no-siempre-son-más-rápidas&#34;&gt;Si una GPU de 32GB puede cargar el modelo, dos de 16GB no siempre son más rápidas
&lt;/h2&gt;&lt;p&gt;Si el modelo y la KV cache caben completos en una GPU de 32GB, una sola tarjeta suele ser más estable y a menudo más rápida. En hardware de la misma generación, como 1x V100 32GB frente a 2x V100 16GB, la configuración de dos tarjetas no tiene por qué ganar.&lt;/p&gt;
&lt;p&gt;Una expectativa conservadora es que 2x V100 16GB pueda ser entre un 10% y un 40% más lenta que una sola V100 32GB, sobre todo en chat de un solo usuario, Continue Agent y preguntas de código, donde una petición suele generar una sola respuesta.&lt;/p&gt;
&lt;p&gt;La razón es sencilla: multi-GPU no convierte la VRAM en un único gran bloque rápido. Con división por capas, la inferencia pasa entre GPU y una tarjeta puede esperar a la otra durante la generación. Con división por tensores, ambas tarjetas pueden calcular juntas, pero los resultados intermedios necesitan sincronización entre GPU, y el ancho de banda y la latencia afectan directamente el throughput.&lt;/p&gt;
&lt;p&gt;Así que si tus opciones son:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1x V100 32GB&lt;/li&gt;
&lt;li&gt;2x V100 16GB&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;y el modelo objetivo ya cabe completo en una sola tarjeta de 32GB, la GPU única de 32GB suele ser la opción más cómoda.&lt;/p&gt;
&lt;h2 id=&#34;si-una-gpu-de-16gb-no-puede-cargar-el-modelo-dos-tarjetas-sí-aportan-mucho&#34;&gt;Si una GPU de 16GB no puede cargar el modelo, dos tarjetas sí aportan mucho
&lt;/h2&gt;&lt;p&gt;La situación cambia por completo cuando el modelo no cabe en una GPU de 16GB, pero sí cabe repartido entre dos tarjetas de 16GB.&lt;/p&gt;
&lt;p&gt;En ese caso, el valor de dos GPU es directo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Una tarjeta de 16GB: puede requerir mucho CPU offload, con una caída clara de velocidad.&lt;/li&gt;
&lt;li&gt;2x 16GB: los pesos pueden quedarse en gran parte en GPU, lo que puede ser mucho más rápido que una ejecución mixta CPU/GPU.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En este escenario, 2x V100 16GB no garantiza superar a una sola tarjeta de 32GB, pero puede ser varias veces más rápida que una sola 16GB con mucho offload a memoria del sistema. Es decir, el primer valor de dos tarjetas no es acelerar; es evitar que los pesos del modelo caigan en una RAM del sistema mucho más lenta.&lt;/p&gt;
&lt;h2 id=&#34;v100-pcie-y-v100-sxm2-son-muy-diferentes&#34;&gt;V100 PCIe y V100 SXM2 son muy diferentes
&lt;/h2&gt;&lt;p&gt;Lo que más se pasa por alto en inferencia multi-GPU es el interconnect.&lt;/p&gt;
&lt;p&gt;Si tienes V100 SXM2 con NVLink, el ancho de banda entre GPU es mucho mayor. La documentación de NVIDIA para V100 indica que NVLink puede llegar hasta 300GB/s de ancho de banda de interconexión. En ese entorno, &lt;code&gt;tensor&lt;/code&gt; o cargas con batch más alto tienen más posibilidades de acercarse o incluso superar el rendimiento de una sola tarjeta.&lt;/p&gt;
&lt;p&gt;Si tienes V100 PCIe, conviene ser mucho más conservador. V100 PCIe usa principalmente PCIe Gen3, y el interconnect bandwidth indicado es 32GB/s. No está en la misma categoría que NVLink, por eso dos tarjetas PCIe a menudo dan VRAM suficiente, pero no duplican la velocidad.&lt;/p&gt;
&lt;p&gt;Por eso, para decidir si 2x V100 16GB merece la pena, no basta con sumar VRAM y decir que son 32GB. También hay que comprobar si son tarjetas PCIe o SXM2/NVLink.&lt;/p&gt;
&lt;h2 id=&#34;cómo-elegir-de-forma-práctica&#34;&gt;Cómo elegir de forma práctica
&lt;/h2&gt;&lt;p&gt;Si el modelo cabe en una sola GPU de 32GB, prioriza una sola tarjeta. Su latencia, estabilidad y coste de ajuste suelen ser mejores.&lt;/p&gt;
&lt;p&gt;Si el modelo no cabe en una GPU de 16GB, pero sí en dos de 16GB, merece la pena usar dos tarjetas. En ese caso, el objetivo es mantener los pesos en GPU tanto como sea posible, no esperar una mejora lineal de rendimiento.&lt;/p&gt;
&lt;p&gt;Si tienes dos V100 PCIe, empieza con &lt;code&gt;--split-mode layer&lt;/code&gt; y busca ejecución estable con menos caída a CPU.&lt;/p&gt;
&lt;p&gt;Si tienes V100 SXM2/NVLink, vale más la pena probar modos relacionados con &lt;code&gt;tensor&lt;/code&gt;, especialmente en prefill, batch más grande o servicio concurrente.&lt;/p&gt;
&lt;h2 id=&#34;cuándo-comprar-2x16gb-y-cuándo-comprar-1x32gb&#34;&gt;Cuándo comprar 2x16GB y cuándo comprar 1x32GB
&lt;/h2&gt;&lt;p&gt;Si solo atiendes a un usuario y trabajas sobre todo con chat, completado de código, Continue Agent o preguntas con contexto largo, y el modelo objetivo cabe en 32GB, 1x32GB suele ser mejor. Evita la planificación entre GPU, ofrece latencia más estable y simplifica la depuración.&lt;/p&gt;
&lt;p&gt;Si ya tienes una tarjeta de 16GB y quieres una forma más barata de ejecutar modelos de 30B, 32B o cuantizaciones más grandes, 2x16GB tiene sentido. No necesariamente duplicará los token/s, pero puede mantener en GPU pesos que de otro modo tendrían que ir a CPU offload.&lt;/p&gt;
&lt;p&gt;Si vas a comprar desde cero, puedes priorizar así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Un solo modelo, un solo usuario, latencia importante: preferir 1x32GB.&lt;/li&gt;
&lt;li&gt;El modelo no cabe en una sola tarjeta y el presupuesto es limitado: considerar 2x16GB.&lt;/li&gt;
&lt;li&gt;Hay una máquina con NVLink o SXM2: 2x16GB es mucho más interesante que dos tarjetas PCIe comunes.&lt;/li&gt;
&lt;li&gt;Quieres usar contextos más largos en el futuro: no mires solo el tamaño de los pesos; reserva VRAM para KV cache.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;consejos-prácticos-para-layer-split-y-tensor-split&#34;&gt;Consejos prácticos para layer split y tensor split
&lt;/h2&gt;&lt;p&gt;La regla práctica es: empieza con &lt;code&gt;layer&lt;/code&gt; y luego mide &lt;code&gt;tensor&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;layer&lt;/code&gt; es un buen punto de partida. Divide el modelo por capas, tiene mejor compatibilidad y funciona mejor en sistemas PCIe de dos tarjetas. Su desventaja es que la generación puede comportarse como una tubería: en algunos momentos una tarjeta está ocupada mientras la otra espera.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;tensor&lt;/code&gt; encaja mejor en máquinas con buena interconexión, como V100 SXM2/NVLink. Divide parte del cálculo de una misma capa entre varias GPU, así que tiene más paralelismo teórico, pero también sincroniza más a menudo entre tarjetas. En dos GPU PCIe, el coste de comunicación puede comerse la ganancia.&lt;/p&gt;
&lt;p&gt;Puedes empezar con estas pruebas:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;llama-bench -m model.gguf -ngl &lt;span class=&#34;m&#34;&gt;99&lt;/span&gt; --split-mode layer --tensor-split 1,1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;llama-bench -m model.gguf -ngl &lt;span class=&#34;m&#34;&gt;99&lt;/span&gt; --split-mode tensor --tensor-split 1,1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;llama-bench -m model.gguf -ngl &lt;span class=&#34;m&#34;&gt;99&lt;/span&gt; --split-mode layer --tensor-split 1,0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El tercer comando no es para uso permanente. Sirve como referencia de una sola tarjeta, para saber si dos GPU realmente son más rápidas o solo están repartiendo la presión de VRAM.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-prefill-y-decode-se-comportan-distinto&#34;&gt;Por qué prefill y decode se comportan distinto
&lt;/h2&gt;&lt;p&gt;El rendimiento de un LLM local suele dividirse en dos fases:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;prefill&lt;/code&gt;: procesa el prompt de entrada. Una métrica típica es el throughput de prompt processing, como &lt;code&gt;pp512&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;decode&lt;/code&gt;: genera la respuesta token por token. Una métrica típica es el throughput de token generation, como &lt;code&gt;tg128&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;prefill&lt;/code&gt; se parece más a cálculo matricial con batch grande. Con batch más alto es más fácil mantener las GPU ocupadas y obtener beneficio del paralelismo multi-GPU. &lt;code&gt;decode&lt;/code&gt; genera un token tras otro. El batch es pequeño y la sincronización es frecuente, así que la comunicación entre tarjetas y la latencia de planificación se notan más.&lt;/p&gt;
&lt;p&gt;Por eso puedes ver que dos GPU mejoran &lt;code&gt;pp512&lt;/code&gt;, pero &lt;code&gt;tg128&lt;/code&gt; apenas mejora o incluso empeora. Para chat y agentes, la experiencia del usuario se parece más a &lt;code&gt;tg128&lt;/code&gt;. Para ingestión de documentos largos, prefill por lotes o servicio concurrente, &lt;code&gt;pp512&lt;/code&gt; también importa.&lt;/p&gt;
&lt;h2 id=&#34;puede-kv-cache-convertirse-en-el-segundo-cuello-de-botella-de-vram&#34;&gt;¿Puede KV cache convertirse en el segundo cuello de botella de VRAM?
&lt;/h2&gt;&lt;p&gt;Sí. Muchas personas solo calculan los pesos del modelo y olvidan la KV cache.&lt;/p&gt;
&lt;p&gt;Los pesos determinan si el modelo puede cargarse. La KV cache determina si puedes usar la longitud de contexto que quieres. Cuanto más largo sea el contexto, mayor la concurrencia y más grande el batch, más visible será el consumo de KV cache. Puede pasar que el modelo base quepa en 32GB, pero al abrir 32K o 64K de contexto vuelva a faltar VRAM.&lt;/p&gt;
&lt;p&gt;Como mínimo, deja margen de VRAM para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;KV cache&lt;/li&gt;
&lt;li&gt;CUDA graph o sobrecarga del runtime del backend&lt;/li&gt;
&lt;li&gt;prompt batch y ubatch&lt;/li&gt;
&lt;li&gt;escritorio, driver y otros procesos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si usas 2x16GB, la VRAM no es un pool único de 32GB completamente equivalente. Algunos buffers, KV cache o tensores intermedios todavía pueden quedar limitados por la memoria restante en una sola tarjeta. Para probar contexto largo, usa directamente el &lt;code&gt;--ctx-size&lt;/code&gt; objetivo y la concurrencia objetivo, no solo compruebes si el modelo arranca.&lt;/p&gt;
&lt;h2 id=&#34;cómo-medir-tus-dos-tarjetas-con-llama-bench&#34;&gt;Cómo medir tus dos tarjetas con llama-bench
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;llama-bench&lt;/code&gt; es mejor que chatear directamente para comparar hardware, porque separa prompt processing y token generation en métricas comparables. El ejemplo básico del README oficial es:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;llama-bench -m model.gguf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Para dos V100, al menos mide estos grupos:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Single-card baseline&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CUDA_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;0&lt;/span&gt; llama-bench -m model.gguf -ngl &lt;span class=&#34;m&#34;&gt;99&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Dual-card layer split&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CUDA_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;0,1 llama-bench -m model.gguf -ngl &lt;span class=&#34;m&#34;&gt;99&lt;/span&gt; --split-mode layer --tensor-split 1,1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Dual-card tensor split&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CUDA_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;0,1 llama-bench -m model.gguf -ngl &lt;span class=&#34;m&#34;&gt;99&lt;/span&gt; --split-mode tensor --tensor-split 1,1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Fíjate sobre todo en dos columnas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;pp512&lt;/code&gt;: prompt processing, más relevante para entradas largas y prefill por lotes.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tg128&lt;/code&gt;: token generation, más relevante para chat de un solo usuario y respuesta de agentes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mantén fijos el modelo, la cuantización, el contexto, batch, versión del driver y versión de llama.cpp. Ejecuta cada grupo varias veces y compara medianas, no un único resultado. Por último, prueba también tu flujo real, como Continue Agent, un OpenAI-compatible server o tus propias peticiones RAG, porque un benchmark bonito no siempre significa una mejor experiencia interactiva.&lt;/p&gt;
&lt;h2 id=&#34;conclusión-en-una-frase&#34;&gt;Conclusión en una frase
&lt;/h2&gt;&lt;p&gt;La ventaja principal de 2x V100 16GB es la capacidad de VRAM, no una velocidad de generación garantizada. Si el modelo cabe en una sola tarjeta, una GPU de 32GB suele ser más rápida y estable. Si el modelo no cabe en una sola 16GB, dos tarjetas de 16GB valen mucho porque evitan gran parte del CPU offload. Que sean más rápidas o no depende del split mode, batch, tamaño del modelo y de si las dos V100 están conectadas por PCIe o NVLink.&lt;/p&gt;
&lt;p&gt;Referencias:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/ggml-org/llama.cpp/blob/master/tools/server/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;llama.cpp server README&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.mintlify.com/ggml-org/llama.cpp/concepts/backends&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;llama.cpp Compute Backends&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.nvidia.com/en-gb/data-center/tesla-v100/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;NVIDIA Tesla V100&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://images.nvidia.com/content/technologies/volta/pdf/tesla-volta-v100-datasheet.pdf&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;NVIDIA V100 Datasheet&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Claude Code duplica sus límites: Anthropic usa la expansión de cómputo con SpaceX para aliviar restricciones</title>
        <link>https://knightli.com/es/2026/05/09/anthropic-claude-code-higher-limits-spacex-compute/</link>
        <pubDate>Sat, 09 May 2026 10:59:48 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/09/anthropic-claude-code-higher-limits-spacex-compute/</guid>
        <description>&lt;p&gt;El 6 de mayo de 2026, Anthropic anunció límites de uso más altos para Claude Code y Claude API, junto con una nueva alianza de cómputo con SpaceX. Para usuarios comunes, el cambio más directo es más capacidad usable en Claude Code. Para desarrolladores y empresas, el punto de fondo es que la capacidad de inferencia de Claude sigue creciendo.&lt;/p&gt;
&lt;p&gt;El anuncio se puede dividir en dos partes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Límites más altos para Claude Code y Claude API.&lt;/li&gt;
&lt;li&gt;Nueva capacidad de cómputo desde centros de datos de SpaceX.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;qué-cambió-en-los-límites-de-claude-code&#34;&gt;Qué cambió en los límites de Claude Code
&lt;/h2&gt;&lt;p&gt;Anthropic afirma que estos tres cambios entraron en vigor el día del anuncio:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;El rate limit de cinco horas de Claude Code se duplicó para los planes Pro, Max, Team y Enterprise basado en asientos.&lt;/li&gt;
&lt;li&gt;Se eliminaron las reducciones de límites en horas pico para Claude Code en cuentas Pro y Max.&lt;/li&gt;
&lt;li&gt;Los rate limits de API para el modelo Claude Opus aumentaron de forma notable.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;En la práctica, si usas Claude Code para sesiones largas de programación, análisis de repositorios, refactorización, depuración o flujos con agentes, este cambio puede reducir las veces en que una tarea se detiene antes de terminar.&lt;/p&gt;
&lt;p&gt;Eso no significa uso ilimitado. Claude Code sigue afectado por el plan, el patrón de uso, el modelo, la longitud de la tarea, el tamaño del contexto y las políticas de la plataforma. Pero Anthropic ha ampliado claramente el margen de uso frente a los límites anteriores.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-el-cómputo-afecta-la-experiencia-de-claude-code&#34;&gt;Por qué el cómputo afecta la experiencia de Claude Code
&lt;/h2&gt;&lt;p&gt;Herramientas como Claude Code consumen más recursos que un chat normal. Una sola tarea de código puede incluir:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Leer muchos archivos.&lt;/li&gt;
&lt;li&gt;Analizar contexto largo.&lt;/li&gt;
&lt;li&gt;Hacer varias llamadas a herramientas.&lt;/li&gt;
&lt;li&gt;Generar, editar y revisar código.&lt;/li&gt;
&lt;li&gt;Ejecutar pruebas repetidas veces o explicar errores.&lt;/li&gt;
&lt;li&gt;Usar Opus para razonamiento complejo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Detrás de esas acciones no solo hay tokens. También hay capacidad de inferencia, concurrencia y recursos de planificación. El usuario ve límites, colas o lentitud en horas pico; la plataforma ve presión entre oferta y demanda de cómputo.&lt;/p&gt;
&lt;p&gt;Por eso es relevante que Anthropic haya unido los aumentos de límites y la alianza de cómputo en el mismo anuncio. Está indicando que mejorar Claude Code no es solo cambiar una regla del plan, sino ampliar la capacidad de inferencia del backend.&lt;/p&gt;
&lt;h2 id=&#34;qué-aporta-la-alianza-con-spacex&#34;&gt;Qué aporta la alianza con SpaceX
&lt;/h2&gt;&lt;p&gt;Anthropic dice que firmó un acuerdo con SpaceX para usar toda la capacidad de cómputo del centro de datos SpaceX Colossus 1. La capacidad anunciada supera los 300 megavatios, corresponde a más de 220,000 GPU NVIDIA y estará disponible para Anthropic en un mes.&lt;/p&gt;
&lt;p&gt;Esta capacidad adicional debería mejorar directamente la capacidad disponible para suscriptores de Claude Pro y Claude Max.&lt;/p&gt;
&lt;p&gt;El anuncio también menciona interés en trabajar con SpaceX en cómputo de IA orbital en el futuro. Eso es más una dirección de largo plazo, distinta del aumento de límites de Claude Code que los usuarios pueden notar de inmediato.&lt;/p&gt;
&lt;h2 id=&#34;la-huella-de-cómputo-de-anthropic-está-creciendo&#34;&gt;La huella de cómputo de Anthropic está creciendo
&lt;/h2&gt;&lt;p&gt;SpaceX es solo una parte de la expansión reciente de cómputo de Anthropic. La compañía también enumera otras alianzas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Hasta 5GW con Amazon, con cerca de 1GW de nueva capacidad prevista para finales de 2026.&lt;/li&gt;
&lt;li&gt;5GW con Google y Broadcom, previstos para empezar a entrar en línea en 2027.&lt;/li&gt;
&lt;li&gt;Una alianza estratégica con Microsoft y NVIDIA, que incluye 30,000 millones de dólares de capacidad en Azure.&lt;/li&gt;
&lt;li&gt;Una inversión de 50,000 millones de dólares en infraestructura de IA en Estados Unidos con Fluidstack.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Anthropic también señala que el entrenamiento y la inferencia de Claude usarán varios tipos de hardware de IA, incluidos AWS Trainium, Google TPU y GPU NVIDIA.&lt;/p&gt;
&lt;p&gt;La tendencia es clara: la competencia entre las principales compañías de modelos no se juega solo en nombres de modelos, benchmarks y funciones de producto. También se juega en energía, centros de datos, GPU, TPU, redes y capacidad de despliegue global.&lt;/p&gt;
&lt;h2 id=&#34;impacto-práctico-para-usuarios-de-claude-code&#34;&gt;Impacto práctico para usuarios de Claude Code
&lt;/h2&gt;&lt;p&gt;Para desarrolladores, el cambio más importante es que se duplicó el límite de cinco horas de Claude Code. Afecta escenarios como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Lectura de repositorios grandes.&lt;/li&gt;
&lt;li&gt;Refactorización de varios archivos.&lt;/li&gt;
&lt;li&gt;Investigación de bugs y corrección de pruebas.&lt;/li&gt;
&lt;li&gt;Migraciones de código y actualización de dependencias.&lt;/li&gt;
&lt;li&gt;Tareas largas de programación con agentes.&lt;/li&gt;
&lt;li&gt;Uso simultáneo de Claude Code en planes Team o Enterprise.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un problema común de Claude Code era llegar al límite mientras la tarea seguía en curso. Con límites más altos, es más fácil que un agente complete una tarea completa en lugar de detenerse a mitad de camino.&lt;/p&gt;
&lt;p&gt;Para usuarios Pro y Max, eliminar las reducciones en horas pico también es importante. Significa que la experiencia puede ser más estable durante periodos de alta demanda, con menos interrupciones por ajustes temporales.&lt;/p&gt;
&lt;h2 id=&#34;qué-significa-para-usuarios-de-api&#34;&gt;Qué significa para usuarios de API
&lt;/h2&gt;&lt;p&gt;El anuncio también dice que los rate limits de API para Claude Opus aumentaron considerablemente. Para equipos que usan Opus en tareas difíciles, normalmente eso implica:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mayor concurrencia.&lt;/li&gt;
&lt;li&gt;Menos errores 429 por límite de tasa.&lt;/li&gt;
&lt;li&gt;Mejor soporte para cargas por lotes.&lt;/li&gt;
&lt;li&gt;Mejor encaje para contexto largo, razonamiento complejo y flujos con agentes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Los límites concretos siguen variando por cuenta, organización, modelo y plan. Antes de desplegar en producción, conviene revisar Anthropic Console, la documentación de rate limits y los registros de errores.&lt;/p&gt;
&lt;h2 id=&#34;empresas-y-despliegue-regional-importan-más&#34;&gt;Empresas y despliegue regional importan más
&lt;/h2&gt;&lt;p&gt;Anthropic también señala que sectores regulados como finanzas, salud y gobierno necesitan cada vez más infraestructura regional para cumplir requisitos de cumplimiento y residencia de datos. Por eso, parte de la expansión de capacidad se ubicará fuera de Estados Unidos, especialmente para inferencia en Asia y Europa.&lt;/p&gt;
&lt;p&gt;Esto importa para clientes empresariales. Cuando las aplicaciones de modelos grandes entran en procesos críticos, la pregunta no es solo si el modelo funciona bien. También incluye:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si los datos permanecen en la región requerida.&lt;/li&gt;
&lt;li&gt;Si se cumplen requisitos regulatorios del sector.&lt;/li&gt;
&lt;li&gt;Si hay capacidad estable en horas pico.&lt;/li&gt;
&lt;li&gt;Si se soporta concurrencia a nivel de equipo y organización.&lt;/li&gt;
&lt;li&gt;Si existen controles de auditoría, permisos y seguridad.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Desde esa perspectiva, la expansión de cómputo no es solo una noticia de rendimiento. También puede influir en compras y decisiones de despliegue empresarial.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;El mensaje de Anthropic es directo: las restricciones de uso de Claude Code y Claude API se están relajando porque nueva capacidad de cómputo está entrando en línea.&lt;/p&gt;
&lt;p&gt;Para usuarios de Claude Code, lo más importante es la duplicación del límite de cinco horas y la eliminación de reducciones en horas pico para Pro y Max. Para usuarios de API y empresas, destacan el aumento de rate limits de Opus y las alianzas de cómputo a largo plazo con SpaceX, Amazon, Google, Microsoft, NVIDIA y Fluidstack.&lt;/p&gt;
&lt;p&gt;Las herramientas de IA se parecen cada vez más a servicios de infraestructura. La calidad del modelo importa, pero la capacidad estable, el cumplimiento regional, las políticas de límites y el control de costes también determinan la experiencia.&lt;/p&gt;
&lt;p&gt;Referencia:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.anthropic.com/news/higher-limits-spacex&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Anthropic: Higher usage limits for Claude and a compute deal with SpaceX&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Los nuevos modelos de voz Realtime de OpenAI: GPT-Realtime-2, traducción en vivo y transcripción en streaming</title>
        <link>https://knightli.com/es/2026/05/09/openai-realtime-voice-models-gpt-realtime-2-translate-whisper/</link>
        <pubDate>Sat, 09 May 2026 10:58:47 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/09/openai-realtime-voice-models-gpt-realtime-2-translate-whisper/</guid>
        <description>&lt;p&gt;El 7 de mayo de 2026, OpenAI presentó una nueva generación de modelos de voz para la Realtime API. El objetivo no es solo que la IA suene más natural, sino que los agentes de voz puedan entender, razonar, llamar herramientas, traducir y transcribir durante una conversación en vivo.&lt;/p&gt;
&lt;p&gt;La actualización incluye tres modelos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GPT-Realtime-2&lt;/code&gt;: el modelo principal para agentes de voz en tiempo real, con mejor razonamiento, llamadas a herramientas y contexto más largo.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GPT-Realtime-Translate&lt;/code&gt;: un modelo de traducción de voz en vivo que admite más de 70 idiomas de entrada y 13 idiomas de salida.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GPT-Realtime-Whisper&lt;/code&gt;: un modelo de voz a texto en streaming y baja latencia para subtítulos, notas de reuniones y flujos de trabajo en tiempo real.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si los primeros asistentes de voz eran más bien “pregunta una vez, responde una vez”, esta actualización se acerca más a una interfaz de voz que escucha y actúa al mismo tiempo.&lt;/p&gt;
&lt;h2 id=&#34;gpt-realtime-2-el-modelo-principal-para-agentes-de-voz&#34;&gt;GPT-Realtime-2: el modelo principal para agentes de voz
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;GPT-Realtime-2&lt;/code&gt; está diseñado para interacciones de voz en vivo. No solo responde preguntas; debe mantener el contexto mientras el usuario habla, se corrige, interrumpe o añade restricciones, y llamar herramientas cuando sea necesario.&lt;/p&gt;
&lt;p&gt;Las capacidades destacadas oficialmente incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Frases breves antes de la respuesta, como “déjame comprobarlo”, para que el usuario sepa que el sistema está trabajando.&lt;/li&gt;
&lt;li&gt;Llamadas paralelas a herramientas para calendarios, búsqueda, pedidos, soporte y otros flujos con varias herramientas.&lt;/li&gt;
&lt;li&gt;Recuperación más natural cuando algo falla.&lt;/li&gt;
&lt;li&gt;Ventana de contexto ampliada de 32K a 128K para conversaciones más largas y tareas más complejas.&lt;/li&gt;
&lt;li&gt;Mejor retención de terminología especializada, nombres propios y vocabulario médico.&lt;/li&gt;
&lt;li&gt;Tono y entrega más controlables, por ejemplo respuestas tranquilas, empáticas, confirmatorias o enérgicas.&lt;/li&gt;
&lt;li&gt;reasoning effort ajustable: &lt;code&gt;minimal&lt;/code&gt;, &lt;code&gt;low&lt;/code&gt;, &lt;code&gt;medium&lt;/code&gt;, &lt;code&gt;high&lt;/code&gt; y &lt;code&gt;xhigh&lt;/code&gt;, con &lt;code&gt;low&lt;/code&gt; como valor predeterminado.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto permite usar agentes de voz en productos más exigentes, no solo en preguntas y respuestas simples. Un agente de soporte puede escuchar mientras consulta un pedido; una app de viajes puede sugerir pasos tras un cambio de vuelo; una app inmobiliaria puede filtrar viviendas y programar visitas a partir de requisitos hablados.&lt;/p&gt;
&lt;h2 id=&#34;traducción-en-vivo-para-productos-de-voz-multilingües&#34;&gt;Traducción en vivo para productos de voz multilingües
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;GPT-Realtime-Translate&lt;/code&gt; está pensado para traducción de voz en tiempo real. Cada persona puede hablar en su idioma, mientras la otra escucha la traducción y ve la transcripción en vivo.&lt;/p&gt;
&lt;p&gt;Los casos de uso son claros:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Atención al cliente multilingüe.&lt;/li&gt;
&lt;li&gt;Ventas internacionales y preventa.&lt;/li&gt;
&lt;li&gt;Educación online y eventos en vivo.&lt;/li&gt;
&lt;li&gt;Reuniones internacionales y presentaciones.&lt;/li&gt;
&lt;li&gt;Localización de contenido para plataformas de video y creadores.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La dificultad de la traducción en vivo no es solo traducir bien. También requiere baja latencia, pausas naturales, conservación del tono, adaptación a acentos y manejo de vocabulario especializado. OpenAI enfatiza conversaciones entre idiomas que se sientan más naturales, en lugar de esperar a que termine un bloque completo antes de traducir.&lt;/p&gt;
&lt;h2 id=&#34;transcripción-en-streaming-la-voz-entra-antes-en-el-flujo-de-trabajo&#34;&gt;Transcripción en streaming: la voz entra antes en el flujo de trabajo
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;GPT-Realtime-Whisper&lt;/code&gt; es el nuevo modelo de voz a texto en streaming. Su valor está en convertir la voz en texto utilizable mientras ocurre, no después de que termina una grabación.&lt;/p&gt;
&lt;p&gt;Aplicaciones comunes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Subtítulos en vivo para reuniones.&lt;/li&gt;
&lt;li&gt;Subtítulos para clases y emisiones.&lt;/li&gt;
&lt;li&gt;Notas de reunión en tiempo real.&lt;/li&gt;
&lt;li&gt;Entrada de dictado continua para agentes de voz.&lt;/li&gt;
&lt;li&gt;Flujos posteriores en soporte, salud, contratación, ventas y otros escenarios de voz frecuentes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para un producto, la transcripción en streaming reduce el tiempo entre lo hablado y el texto accionable. Los subtítulos aparecen antes, las notas se generan durante la conversación y procesos como resúmenes, extracción de tareas o actualización del CRM pueden empezar antes.&lt;/p&gt;
&lt;h2 id=&#34;precios-y-disponibilidad&#34;&gt;Precios y disponibilidad
&lt;/h2&gt;&lt;p&gt;Los tres modelos ya están disponibles en la Realtime API. Los precios oficiales son:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Modelo&lt;/th&gt;
          &lt;th&gt;Precio&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;GPT-Realtime-2&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Entrada de audio $32 / 1M tokens, entrada en caché $0.40 / 1M tokens, salida de audio $64 / 1M tokens&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;GPT-Realtime-Translate&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;$0.034 / minuto&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;GPT-Realtime-Whisper&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;$0.017 / minuto&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;OpenAI también indica que la Realtime API admite EU Data Residency y está cubierta por sus compromisos de privacidad empresarial. Para empresas europeas o productos con requisitos de residencia de datos, es un punto que conviene evaluar por separado.&lt;/p&gt;
&lt;h2 id=&#34;qué-significa-para-los-desarrolladores&#34;&gt;Qué significa para los desarrolladores
&lt;/h2&gt;&lt;p&gt;El cambio principal es que la voz empieza a pasar de ser una capa de entrada y salida a ser una capa de interacción del producto.&lt;/p&gt;
&lt;p&gt;Muchas funciones de voz anteriores convertían voz a texto y luego convertían la respuesta textual de nuevo a voz. La parte difícil está en el medio: entender la intención, gestionar interrupciones, mantener contexto, llamar herramientas, explicar qué está haciendo el sistema y recuperarse con naturalidad cuando algo falla.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-Realtime-2&lt;/code&gt; intenta llevar más de esa capacidad directamente al modelo de voz en tiempo real. Para los desarrolladores, la pregunta no es solo la calidad de una respuesta, sino si el modelo puede sostener conversaciones largas y tareas de varios pasos.&lt;/p&gt;
&lt;p&gt;Productos especialmente interesantes para probar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Agentes de voz para atención al cliente.&lt;/li&gt;
&lt;li&gt;Asistentes de voz en autos y móviles.&lt;/li&gt;
&lt;li&gt;Servicios de viajes, reservas, inmobiliaria, finanzas y otros donde se conversa mientras se consulta información.&lt;/li&gt;
&lt;li&gt;Herramientas de reuniones multilingües y comunicación internacional.&lt;/li&gt;
&lt;li&gt;Subtítulos en vivo, notas de reuniones y sistemas de control de calidad de llamadas.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;seguridad-y-aviso-al-usuario&#34;&gt;Seguridad y aviso al usuario
&lt;/h2&gt;&lt;p&gt;OpenAI afirma que la Realtime API incluye varias capas de seguridad, como clasificadores activos sobre sesiones y la posibilidad de detener conversaciones que violen políticas. Los desarrolladores también pueden añadir sus propias barreras con Agents SDK.&lt;/p&gt;
&lt;p&gt;Un requisito fácil de pasar por alto es informar claramente cuando el usuario final interactúa con IA, salvo que el contexto ya lo haga evidente.&lt;/p&gt;
&lt;p&gt;Esto importa en soporte, ventas, educación, salud y escenarios similares. Cuanto más natural sea la voz, más importantes son los límites del producto: el usuario debe saber que habla con IA y entender qué acciones pueden grabarse, transcribirse o activar herramientas.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;La actualización de Realtime API de OpenAI lleva la voz en vivo de “puede escuchar y hablar” hacia “puede escuchar mientras trabaja en tareas”.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-Realtime-2&lt;/code&gt; cubre agentes de voz más complejos, &lt;code&gt;GPT-Realtime-Translate&lt;/code&gt; cubre comunicación multilingüe en vivo y &lt;code&gt;GPT-Realtime-Whisper&lt;/code&gt; cubre transcripción de baja latencia. Juntos cubren tres capacidades básicas de muchos productos de voz: conversación, traducción y transcripción.&lt;/p&gt;
&lt;p&gt;Si estás construyendo productos de soporte, automóvil, reuniones, educación, comunicación internacional o asistentes de voz móviles, vale la pena probar esta actualización. Lo importante no es solo si el modelo suena natural, sino cómo se comporta en conversaciones largas, interrupciones, llamadas a herramientas, recuperación de fallos y control de costes.&lt;/p&gt;
&lt;p&gt;Referencia:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://openai.com/index/advancing-voice-intelligence-with-new-models-in-the-api/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;OpenAI: Advancing voice intelligence with new models in the API&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Qué hacer si suspenden tu cuenta de Claude: límites de Claude Code y guía de apelación</title>
        <link>https://knightli.com/es/2026/05/09/claude-account-suspension-code-limit-guide/</link>
        <pubDate>Sat, 09 May 2026 10:32:12 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/09/claude-account-suspension-code-limit-guide/</guid>
        <description>&lt;p&gt;Cuando una cuenta de Claude o Claude Code se limita de repente, se suspende justo después de pagar, pierde acceso Pro o muestra menos capacidad de uso de la esperada, muchos usuarios buscan una explicación rápida. Lo importante es no tratarlo como un simple problema técnico de “cambiar IP” o “crear otra cuenta”. Los sistemas de riesgo de cuentas suelen combinar señales como región, pago, dispositivo, comportamiento de login, contenido de uso, automatización y patrones de uso compartido.&lt;/p&gt;
&lt;p&gt;Una forma más segura de abordarlo es identificar primero qué tipo de problema tienes: límite normal de uso, problema de pago o suscripción, autorización de Claude Code, o una acción a nivel de cuenta porque Anthropic considera que hubo incumplimiento de políticas o términos.&lt;/p&gt;
&lt;h2 id=&#34;primero-distingue-tres-situaciones&#34;&gt;Primero distingue tres situaciones
&lt;/h2&gt;&lt;p&gt;La primera categoría son límites normales. Claude Pro, Max, Team, API y Claude Code tienen modelos de cuota diferentes. Horas pico, contexto largo, tareas de código y flujos con agentes pueden consumir límites más rápido. Ver “limit reached” no significa necesariamente que la cuenta esté suspendida.&lt;/p&gt;
&lt;p&gt;La segunda categoría son problemas de suscripción o autorización. Por ejemplo, el pago puede haberse completado pero el acceso no se actualizó, una suscripción móvil puede no coincidir con la cuenta web, Claude Code puede no estar logueado correctamente, o puede quedar un &lt;code&gt;ANTHROPIC_API_KEY&lt;/code&gt; antiguo en el entorno. Empieza revisando facturación, estado de login y configuración del cliente.&lt;/p&gt;
&lt;p&gt;La tercera categoría sí es suspensión o terminación de cuenta. Suele verse en correos que mencionan suspension, disabled o terminated, o en un login que indica que la cuenta no está disponible. En ese caso, no conviene seguir probando con más dispositivos, redes y cuentas. Eso puede complicar las señales de riesgo.&lt;/p&gt;
&lt;h2 id=&#34;desencadenantes-comunes&#34;&gt;Desencadenantes comunes
&lt;/h2&gt;&lt;p&gt;La documentación de ayuda y privacidad de Anthropic menciona áreas de riesgo como violaciones de Usage Policy, creación o uso desde regiones no admitidas, incumplimientos de términos, infracciones repetidas, acceso inusual y abuso.&lt;/p&gt;
&lt;p&gt;En la práctica, los patrones de riesgo incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Registro, región de login y región de pago no coinciden.&lt;/li&gt;
&lt;li&gt;Uso prolongado de proxies de datacenter, proxies compartidos o cambios frecuentes de IP.&lt;/li&gt;
&lt;li&gt;Varias personas comparten una cuenta personal.&lt;/li&gt;
&lt;li&gt;Logins frecuentes desde muchos dispositivos o regiones en poco tiempo.&lt;/li&gt;
&lt;li&gt;Acceso automatizado de alta frecuencia a Claude.ai.&lt;/li&gt;
&lt;li&gt;Uso de Claude Code como servicio compartido o punto de reventa.&lt;/li&gt;
&lt;li&gt;Solicitudes que claramente violan las políticas de Anthropic.&lt;/li&gt;
&lt;li&gt;Conflictos entre método de pago, dirección de facturación y región de cuenta.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La clave no es que una sola señal siempre cause suspensión. El riesgo aumenta cuando varias señales anómalas aparecen juntas.&lt;/p&gt;
&lt;h2 id=&#34;no-lo-soluciones-evadiendo-controles-de-riesgo&#34;&gt;No lo soluciones evadiendo controles de riesgo
&lt;/h2&gt;&lt;p&gt;En internet se suelen recomendar “soluciones estables” como navegadores de huella digital, reinicio de fingerprint de dispositivo, borrar carpetas locales, cambiar entornos, alinear zona horaria e idioma, o registrar otro correo. Parte de eso puede ser diagnóstico normal, pero otra parte busca claramente evadir controles de riesgo de la plataforma.&lt;/p&gt;
&lt;p&gt;No conviene tratar “evadir el control de riesgo” como solución. Las razones son simples:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Puede violar los términos del servicio.&lt;/li&gt;
&lt;li&gt;Puede añadir más señales de riesgo a la cuenta.&lt;/li&gt;
&lt;li&gt;No resuelve causas raíz como pago, región o incumplimiento de política.&lt;/li&gt;
&lt;li&gt;Si hay uso de equipo o negocio, dificulta explicar una apelación posterior.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si tu objetivo es usar Claude de forma estable a largo plazo, la dirección correcta no es disfrazar el entorno. Es hacer que cuenta, región, pago, dispositivo y uso sean reales, coherentes y explicables.&lt;/p&gt;
&lt;h2 id=&#34;cómo-diagnosticar-límites-de-claude-code&#34;&gt;Cómo diagnosticar límites de Claude Code
&lt;/h2&gt;&lt;p&gt;Los usuarios de Claude Code pueden empezar con:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude --version
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude auth status
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si usas API key, confirma que la variable de entorno apunta a la cuenta correcta:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$ANTHROPIC_API_KEY&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;En Windows PowerShell:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo &lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$env:ANTHROPIC_API_KEY&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si has usado login web, OAuth, API keys, clientes de terceros o distintas terminales, primero unifica el método de autenticación. Alguna herramienta puede seguir usando credenciales antiguas.&lt;/p&gt;
&lt;p&gt;También distingue dos casos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Claude Code alcanzó el límite de uso: normalmente es cuota o suscripción.&lt;/li&gt;
&lt;li&gt;La cuenta u organización está disabled: normalmente es un riesgo de cuenta, organización, pago o política.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para lo primero, espera renovación de cuota o ajusta el plan. Para lo segundo, conserva capturas y correos, y usa soporte oficial o canales de apelación.&lt;/p&gt;
&lt;h2 id=&#34;recomendaciones-compatibles-para-estabilidad&#34;&gt;Recomendaciones compatibles para estabilidad
&lt;/h2&gt;&lt;p&gt;Para reducir la probabilidad de problemas de cuenta, empieza por lo básico:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Usa una cuenta normal en un país o región admitidos.&lt;/li&gt;
&lt;li&gt;Mantén región de login, método de pago y facturación coherentes cuando sea posible.&lt;/li&gt;
&lt;li&gt;Evita compartir una cuenta personal entre varias personas.&lt;/li&gt;
&lt;li&gt;No uses una cuenta Pro/Max personal como pool API de equipo.&lt;/li&gt;
&lt;li&gt;Evita cambios frecuentes de IP, dispositivo y navegador.&lt;/li&gt;
&lt;li&gt;No uses clientes Claude de terceros de origen desconocido.&lt;/li&gt;
&lt;li&gt;Evita automatización de alta frecuencia contra la interfaz web de Claude.ai.&lt;/li&gt;
&lt;li&gt;Para negocio o equipos, prefiere Team, Enterprise o API.&lt;/li&gt;
&lt;li&gt;Lee la Usage Policy de Anthropic y evita usos restringidos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si realmente necesitas usar Claude en varios dispositivos, inicia sesión normalmente. No borres entornos, cambies fingerprints ni alternes proxies de forma constante. La manipulación excesiva del entorno puede parecer anómala por sí misma.&lt;/p&gt;
&lt;h2 id=&#34;qué-hacer-tras-una-suspensión&#34;&gt;Qué hacer tras una suspensión
&lt;/h2&gt;&lt;p&gt;Si la cuenta ya fue suspendida, procede así:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Revisa correos de Anthropic o Claude y confirma la razón o tipo de mensaje.&lt;/li&gt;
&lt;li&gt;Deja de crear cuentas nuevas, cambiar redes y probar desde más dispositivos.&lt;/li&gt;
&lt;li&gt;Reúne correo de cuenta, orden de suscripción, prueba de pago y contexto de uso reciente.&lt;/li&gt;
&lt;li&gt;Si crees que fue un error, presenta appeal o contacta soporte por canales oficiales.&lt;/li&gt;
&lt;li&gt;Explica el caso real de uso. No inventes región, identidad ni propósito.&lt;/li&gt;
&lt;li&gt;Si hay cobro de suscripción, pregunta aparte por reembolso o gestión de suscripción.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;En una apelación, cuanto más concreto seas, mejor. Explica si usaste Claude Code, cambiaste dispositivos, usaste VPN, compartiste con un equipo o conectaste herramientas de terceros. La plataforma necesita identificar la fuente de riesgo. Un “no hice nada” vago suele ayudar poco.&lt;/p&gt;
&lt;h2 id=&#34;afirmaciones-que-conviene-tratar-con-cautela&#34;&gt;Afirmaciones que conviene tratar con cautela
&lt;/h2&gt;&lt;p&gt;Algunos posts o videos afirman que “fijar fingerprint evita bloqueos”, “un navegador elimina totalmente el riesgo”, “borrar una carpeta reinicia la identidad del dispositivo” o “alinear IP, zona horaria e idioma lo resuelve todo”. No conviene aceptarlo sin crítica.&lt;/p&gt;
&lt;p&gt;Los sistemas de riesgo de plataforma suelen ser multidimensionales. No miran solo fingerprint del navegador o IP. Historial de cuenta, información de pago, política regional, contenido de uso, frecuencia de acceso, patrones de automatización, versión del cliente y llamadas API también pueden contar. Disfrazar una sola señal no equivale a estabilidad a largo plazo, y puede crear más inconsistencias.&lt;/p&gt;
&lt;p&gt;Además, muchas “soluciones anti-bloqueo” son en realidad venta de herramientas o servicios. Lo que el usuario necesita es identificar la fuente de riesgo, usar el servicio de forma compatible y conservar evidencia para apelación, no depender de envoltorios de entorno de terceros.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;La suspensión de una cuenta Claude o la limitación de Claude Code no siempre tiene una sola causa. Puede ser cuota, suscripción, autorización, o una señal de riesgo combinada relacionada con región, pago, dispositivo, uso compartido, automatización o contenido sensible a políticas.&lt;/p&gt;
&lt;p&gt;La clave para usar Claude de forma estable a largo plazo no es evadir controles de riesgo. Es uso compatible, información de cuenta coherente, patrones de acceso estables y planes formales para equipos. Si la cuenta se suspende, deja de manipular el entorno, conserva evidencias y usa los canales oficiales de apelación y soporte.&lt;/p&gt;
&lt;p&gt;Referencias:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.anthropic.com/supported-countries&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Anthropic: Supported countries and regions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://support.claude.com/en/articles/8241253-i-ve-received-a-warning-that-my-usage-violates-the-acceptable-use-policy-what-should-i-do-differently&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Claude Help Center: Safeguards warnings and appeals&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://privacy.claude.com/en/articles/11186740-does-claude-use-my-location&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Anthropic Privacy Center: Does Claude use my location?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://support.anthropic.com/en/articles/12005017-using-agents-according-to-our-usage-policy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Anthropic Help Center: Using agents according to our Usage Policy&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>De PPT a prototipos: casos de uso de Guizang PPT Skill y Huashu Design</title>
        <link>https://knightli.com/es/2026/05/09/guizang-ppt-skill-huashu-design-agent-skills/</link>
        <pubDate>Sat, 09 May 2026 08:34:23 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/09/guizang-ppt-skill-huashu-design-agent-skills/</guid>
        <description>&lt;p&gt;Hay dos Agent Skills de diseño creadas por desarrolladores chinos que vale la pena mirar en conjunto: &lt;a class=&#34;link&#34; href=&#34;https://github.com/op7418/guizang-ppt-skill&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;guizang-ppt-skill&lt;/a&gt;, de Guizang, y &lt;a class=&#34;link&#34; href=&#34;https://github.com/alchaincyf/huashu-design&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;huashu-design&lt;/a&gt;, de Huashu.&lt;/p&gt;
&lt;p&gt;No son “herramientas de diseño” en el sentido tradicional. En realidad convierten un proceso de diseño, preferencias estéticas, listas de comprobación y plantillas de ingeniería en Skills que un Agent puede ejecutar. No abres una UI para arrastrar elementos poco a poco; entregas el requisito a un Agent como Claude Code, Codex o Cursor, y dejas que genere HTML, PPT, animaciones o prototipos siguiendo un flujo fijo.&lt;/p&gt;
&lt;p&gt;El valor de estos proyectos no está en dejar que la IA improvise, sino en convertir “cómo hacer que esto no se vea mal” en un proceso.&lt;/p&gt;
&lt;h2 id=&#34;guizang-ppt-skill-enfocado-en-ppt-web-con-estilo-de-revista&#34;&gt;guizang-ppt-skill: enfocado en PPT web con estilo de revista
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;guizang-ppt-skill&lt;/code&gt;, de Guizang, tiene una posición muy clara: genera PPT en HTML de archivo único con paginación horizontal, y una base visual de “revista digital x tinta electrónica”. Se parece más a un sistema de maquetación para charlas que a un framework de diseño general.&lt;/p&gt;
&lt;p&gt;El README del repositorio enumera estas capacidades principales:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Salida HTML de archivo único, sin necesidad de build ni servidor. Se abre directamente en el navegador.&lt;/li&gt;
&lt;li&gt;Paginación horizontal, con soporte para teclado, rueda del ratón, deslizamiento táctil, puntos inferiores e índice con ESC.&lt;/li&gt;
&lt;li&gt;5 paletas temáticas predefinidas, incluidas Ink Classic, Indigo Porcelain, Forest Ink, Kraft Paper y Dune.&lt;/li&gt;
&lt;li&gt;10 layouts de página, incluidos portada de apertura, separador de sección, póster de datos con número grande, texto a la izquierda e imagen a la derecha, cuadrícula de imágenes, Pipeline, pregunta de suspense, cita grande, comparación Before/After y composición mixta de texto e imagen.&lt;/li&gt;
&lt;li&gt;Plantillas integradas, notas de componentes, esqueletos de layout, configuración de tema y listas de comprobación de calidad.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Sirve para presentaciones presenciales, charlas internas de industria, eventos privados, lanzamientos de productos de IA, demo days y decks con un estilo personal fuerte. No encaja tan bien con grandes tablas de datos, materiales de formación o edición colaborativa entre varias personas.&lt;/p&gt;
&lt;p&gt;Este proyecto toma una buena decisión de alcance: no intenta cubrir todos los escenarios de diseño, sino que estrecha el foco a “PPT con estilo de revista”. Los colores de tema se eligen desde presets y los layouts tienen esqueletos claros. Eso reduce la probabilidad de que el Agent se desvíe.&lt;/p&gt;
&lt;p&gt;Si a menudo necesitas convertir opiniones, observaciones de industria o contenido de lanzamiento de producto en un deck de presentación, puede ser muy práctico.&lt;/p&gt;
&lt;p&gt;El comando de instalación también es directo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npx skills add https://github.com/op7418/guizang-ppt-skill --skill guizang-ppt-skill
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;huashu-design-un-flujo-de-diseño-html-native-más-completo&#34;&gt;huashu-design: un flujo de diseño HTML-native más completo
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;huashu-design&lt;/code&gt;, de Huashu, cubre un terreno más amplio. Su objetivo no es solo hacer PPT, sino tratar HTML como un lienzo de diseño nativo y usar un Agent para generar activos de diseño entregables.&lt;/p&gt;
&lt;p&gt;El README del repositorio enumera estas capacidades:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Prototipos clicables de App o Web.&lt;/li&gt;
&lt;li&gt;Diapositivas HTML y exportación a PPTX editable.&lt;/li&gt;
&lt;li&gt;Animaciones de lanzamiento de producto, MP4, GIF y versiones con música.&lt;/li&gt;
&lt;li&gt;Comparación en paralelo de varias direcciones de diseño.&lt;/li&gt;
&lt;li&gt;Infografías, visualización de datos y exportación a PDF, PNG y SVG.&lt;/li&gt;
&lt;li&gt;Revisión experta en 5 dimensiones, incluidas consistencia filosófica, jerarquía visual, calidad de ejecución, funcionalidad e innovación.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La idea central es que el Agent entienda primero la marca y los materiales, y después produzca diseño de alta fidelidad. El proyecto enfatiza el Core Asset Protocol: cuando se trabaja con una marca concreta, primero hay que confirmar logo, imágenes de producto, capturas de UI, paleta de colores, tipografías y guía de marca, en lugar de adivinar de memoria.&lt;/p&gt;
&lt;p&gt;Esto importa. Muchos diseños generados por IA parecen “diseño”, pero no parecen pertenecer a un producto o una marca real. &lt;code&gt;huashu-design&lt;/code&gt; intenta resolver ese problema por adelantado: primero encontrar activos reales, luego diseñar.&lt;/p&gt;
&lt;p&gt;El comando de instalación es:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npx skills add alchaincyf/huashu-design
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Encaja mejor con quienes quieren completar una entrega de diseño más amplia desde la terminal: prototipos de producto, animaciones de lanzamiento, presentaciones, infografías y revisiones de diseño pueden procesarse dentro de un único flujo de trabajo de Agent.&lt;/p&gt;
&lt;h2 id=&#34;la-mayor-diferencia-entre-ambos&#34;&gt;La mayor diferencia entre ambos
&lt;/h2&gt;&lt;p&gt;En pocas palabras, &lt;code&gt;guizang-ppt-skill&lt;/code&gt; es un generador de decks de presentación más estrecho y más estable; &lt;code&gt;huashu-design&lt;/code&gt; es un sistema de diseño HTML-native más amplio y completo.&lt;/p&gt;
&lt;p&gt;Si miramos solo PPT:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;guizang-ppt-skill&lt;/code&gt; enfatiza más la sensación de revista, el ritmo, la maquetación y la presentación de archivo único en navegador.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;huashu-design&lt;/code&gt; enfatiza más la capacidad de diseño general, PPTX editable, activos de marca, rutas de exportación y flujo de revisión.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si miramos la capacidad de diseño general:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;guizang-ppt-skill&lt;/code&gt; tiene límites más claros y sirve para crear rápido una presentación horizontal con estilo.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;huashu-design&lt;/code&gt; es más integral y sirve para descomponer una tarea de diseño de producto o marca en prototipos, animaciones, diapositivas e infografías.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estos dos proyectos también representan dos formas distintas de escribir Skills. El primero se parece a un conjunto muy concentrado de plantillas y restricciones estéticas; el segundo se parece al manual de trabajo de un pequeño equipo de diseño.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-este-tipo-de-skill-importa&#34;&gt;Por qué este tipo de Skill importa
&lt;/h2&gt;&lt;p&gt;Un problema común de los Agents es que “pueden hacerlo, pero no de forma estable”. La misma petición a veces produce una salida muy buena, y otras veces se desliza hacia gradientes morados, tarjetas redondeadas, iconos falsos y un montón de frases vacías que suenan sofisticadas.&lt;/p&gt;
&lt;p&gt;El sentido de una Skill es añadir estabilidad. Fija cosas como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Plantillas reutilizables.&lt;/li&gt;
&lt;li&gt;Listas de comprobación ejecutables.&lt;/li&gt;
&lt;li&gt;Preferencias estéticas claras.&lt;/li&gt;
&lt;li&gt;Reglas para evitar errores comunes.&lt;/li&gt;
&lt;li&gt;Formatos de salida y flujos de validación.&lt;/li&gt;
&lt;li&gt;Cuándo hacer preguntas y cuándo empezar directamente.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto es mucho más fiable que escribir simplemente “hazlo más premium”.&lt;/p&gt;
&lt;p&gt;Esto es especialmente cierto en tareas de diseño. La estética no se puede reproducir de forma estable con una sola frase de prompt. Lo que realmente ayuda es el proceso: confirmar materiales, definir una dirección, montar la estructura, trabajar la parte visual y revisar la salida. Cuando ese proceso se escribe como Skill, el Agent se parece más a un ejecutor colaborativo que a un generador de imágenes de una sola vez.&lt;/p&gt;
&lt;h2 id=&#34;recomendaciones-de-uso&#34;&gt;Recomendaciones de uso
&lt;/h2&gt;&lt;p&gt;Si solo quieres convertir un tema en una charla presencial o un deck para compartir, prueba primero &lt;code&gt;guizang-ppt-skill&lt;/code&gt;. Su frontera de salida es estrecha, y el HTML de archivo único facilita distribuirlo y previsualizarlo.&lt;/p&gt;
&lt;p&gt;Si quieres que un Agent asuma una tarea de diseño más completa, como prototipos de App, animaciones de lanzamiento, diapositivas con marca, PPTX exportable o infografías, mira primero &lt;code&gt;huashu-design&lt;/code&gt;. Su flujo es más largo y encaja con tareas que necesitan varias rondas de iteración y exportación de entregables.&lt;/p&gt;
&lt;p&gt;Si ya estás escribiendo tu propia Skill para Codex o Claude Code, ambos proyectos merecen estudio:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Para aprender “cómo estabilizar un escenario estrecho”, mira &lt;code&gt;guizang-ppt-skill&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Para aprender “cómo dividir un flujo complejo en protocolos ejecutables”, mira &lt;code&gt;huashu-design&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Lo que tienen en común los proyectos de Guizang y Huashu es que ambos convierten la “capacidad de diseño” de un prompt único en un proceso repetible.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;guizang-ppt-skill&lt;/code&gt; se centra en PPT HTML con estilo de revista y encaja con presentaciones muy estilizadas. &lt;code&gt;huashu-design&lt;/code&gt; se centra en un sistema de diseño HTML-native que cubre prototipos, animaciones, diapositivas, infografías y revisión. El problema que resuelven no es “si la IA puede generar diseño”, sino “si la IA puede generar diseño entregable siguiendo un método estable”.&lt;/p&gt;
&lt;p&gt;Esto podría convertirse en una categoría importante de proyectos open source dentro del ecosistema de herramientas Agent: no solo plantillas de código, sino experiencia humana, estética y métodos de trabajo empaquetados como Skills.&lt;/p&gt;
&lt;p&gt;Enlaces de referencia:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/op7418/guizang-ppt-skill&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;op7418/guizang-ppt-skill&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/alchaincyf/huashu-design&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;alchaincyf/huashu-design&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Cómo detectar texto generado por Claude 4: herramientas y métodos de detección de AI</title>
        <link>https://knightli.com/es/2026/05/08/detect-claude-4-ai-generated-text-tools/</link>
        <pubDate>Fri, 08 May 2026 22:55:16 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/08/detect-claude-4-ai-generated-text-tools/</guid>
        <description>&lt;p&gt;Si quieres saber si un texto fue generado por Claude 4, la premisa más importante es esta: ninguna herramienta puede dar una respuesta 100% segura. La detección de texto con AI es probabilística. Puede sugerir que un pasaje se parece más a escritura de AI, pero no puede demostrar que el autor haya usado Claude 4.&lt;/p&gt;
&lt;p&gt;Esto importa aún más en 2026. Claude 4, GPT-5, Gemini 2.5, DeepSeek y otros modelos escriben de forma cada vez más humana. Además, muchos textos ya no son puramente AI ni puramente humanos: pueden haber sido redactados por AI, editados por personas, pulidos por herramientas gramaticales, traducidos, reescritos y combinados. Los detectores dan pistas, pero un juicio fiable debe considerar también el proceso de escritura, el historial de versiones, las fuentes citadas y la revisión humana.&lt;/p&gt;
&lt;h2 id=&#34;resumen-rápido-no-confíes-en-una-sola-puntuación&#34;&gt;Resumen rápido: no confíes en una sola puntuación
&lt;/h2&gt;&lt;p&gt;Para una revisión rápida, usa dos o tres detectores, por ejemplo GPTZero, Copyleaks, Originality.ai, Sapling y Winston AI. En contextos académicos, Turnitin es común. Sus modelos, datos de entrenamiento y umbrales son distintos, así que el mismo texto puede recibir resultados diferentes.&lt;/p&gt;
&lt;p&gt;Un proceso más sólido sería:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Probar el mismo texto en al menos dos herramientas.&lt;/li&gt;
&lt;li&gt;Revisar los resaltados por frase, no solo la puntuación total.&lt;/li&gt;
&lt;li&gt;Comprobar errores de cita, alucinaciones factuales y transiciones demasiado suaves.&lt;/li&gt;
&lt;li&gt;Revisar evidencias del proceso de escritura, como borradores, historial de edición y commit history.&lt;/li&gt;
&lt;li&gt;Tratar las puntuaciones bajas de AI con cautela y no usar el detector como única evidencia.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;En escuelas, contratación, publicación y cumplimiento normativo, la detección de AI debe ser una señal de riesgo, no el veredicto final.&lt;/p&gt;
&lt;h2 id=&#34;herramientas-comunes&#34;&gt;Herramientas comunes
&lt;/h2&gt;&lt;h3 id=&#34;gptzero&#34;&gt;GPTZero
&lt;/h3&gt;&lt;p&gt;GPTZero se usa mucho en educación y publicación. Al principio se hizo conocido por ideas estadísticas como perplexity y burstiness, y luego evolucionó hacia un sistema de detección de varias etapas que se actualiza para familias de modelos más recientes.&lt;/p&gt;
&lt;p&gt;Funciona bien como filtro inicial para ensayos largos en inglés, borradores académicos y artículos. Sus puntos fuertes son una interfaz clara y explicaciones por frase. Sus límites aparecen en textos cortos, textos muy editados por humanos y contenido multilingüe mezclado.&lt;/p&gt;
&lt;h3 id=&#34;copyleaks-ai-detector&#34;&gt;Copyleaks AI Detector
&lt;/h3&gt;&lt;p&gt;Copyleaks destaca en detección multilingüe, API, extensiones de navegador e integración con LMS. Sus páginas oficiales afirman soporte para Claude, Gemini, GPT-5, DeepSeek, Llama y otras familias de modelos, y resaltan la detección de escritura mixta humana y AI.&lt;/p&gt;
&lt;p&gt;Es útil para equipos de contenido, instituciones educativas y empresas que necesitan flujos por lotes. Aun así, las cifras de precisión de un proveedor suelen medirse en conjuntos de prueba específicos. En uso real hay que considerar longitud, idioma, reescritura y coste de falsos positivos.&lt;/p&gt;
&lt;h3 id=&#34;turnitin-ai-writing-report&#34;&gt;Turnitin AI Writing Report
&lt;/h3&gt;&lt;p&gt;Turnitin se usa sobre todo en flujos de integridad académica. Ofrece un AI writing indicator, fragmentos resaltados y soporte para detectar tanto texto generado como texto procesado por herramientas de paráfrasis con AI.&lt;/p&gt;
&lt;p&gt;Pero la propia documentación de Turnitin advierte que los modelos pueden clasificar mal texto humano, texto de AI o texto parafraseado con AI, y que no deben usarse como única base para tomar medidas adversas contra un estudiante. También trata con cuidado porcentajes bajos de AI para reducir malinterpretaciones y falsos positivos.&lt;/p&gt;
&lt;h3 id=&#34;originalityai-sapling-y-winston-ai&#34;&gt;Originality.ai, Sapling y Winston AI
&lt;/h3&gt;&lt;p&gt;Estas herramientas aparecen a menudo en marketing de contenidos, SEO, publicación y flujos editoriales. Suelen ofrecer detección por lotes, funciones de equipo, API o análisis por frase. Sirven para control de calidad, pero un único resultado no debe tratarse como prueba.&lt;/p&gt;
&lt;h3 id=&#34;zerogpt-monica-phrasly-y-herramientas-gratuitas&#34;&gt;ZeroGPT, Monica, Phrasly y herramientas gratuitas
&lt;/h3&gt;&lt;p&gt;Las herramientas gratuitas sirven para una comprobación rápida, pero no se recomiendan para decisiones de alto riesgo. Sus umbrales, datos de entrenamiento, tasas de falsos positivos y frecuencia de actualización pueden no ser transparentes. Las afirmaciones de “99%+ de precisión” deben leerse con cautela.&lt;/p&gt;
&lt;h2 id=&#34;qué-miran-los-algoritmos-de-detección&#34;&gt;Qué miran los algoritmos de detección
&lt;/h2&gt;&lt;p&gt;La detección tradicional de texto con AI suele mencionar dos métricas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Perplexity&lt;/code&gt;: mide de forma aproximada qué tan predecible es un texto para un modelo de lenguaje. Un texto demasiado fluido y con siguientes palabras muy previsibles puede parecer más generado por AI.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Burstiness&lt;/code&gt;: mide la variación en longitud, estructura y ritmo de las frases. La escritura humana suele tener más variación irregular, mientras que la salida de modelos tiende a ser más uniforme.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pero los detectores modernos van más allá de esas dos métricas. Combinan muchas señales:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Frecuencia de palabras y patrones de frases.&lt;/li&gt;
&lt;li&gt;Estructura sintáctica y distribución de partes del discurso.&lt;/li&gt;
&lt;li&gt;Puntuación, conectores y organización de párrafos.&lt;/li&gt;
&lt;li&gt;Plantillas repetidas de frases.&lt;/li&gt;
&lt;li&gt;Coherencia semántica y referencias factuales sospechosas.&lt;/li&gt;
&lt;li&gt;Huellas lingüísticas específicas de modelos.&lt;/li&gt;
&lt;li&gt;Límites entre pasajes escritos por humanos y por AI.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En otras palabras, cuando una herramienta detecta escritura parecida a Claude 4, normalmente no está identificando una marca de agua de Claude 4. Está juzgando si el pasaje encaja con patrones estadísticos asociados a texto generado por LLM.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-claude-4-es-más-difícil-de-detectar&#34;&gt;Por qué Claude 4 es más difícil de detectar
&lt;/h2&gt;&lt;p&gt;Los modelos Claude tienden a producir prosa natural, con transiciones estables entre párrafos largos. Con buenos prompts, Claude 4 puede imitar un estilo personal, reducir el tono de plantilla y conservar pequeñas irregularidades conversacionales. Tras edición humana o traducción, la detección se vuelve aún más difícil.&lt;/p&gt;
&lt;p&gt;Esto crea dos problemas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Una salida pura de Claude 4 puede detectarse como AI, pero la confianza depende del tema, idioma y longitud.&lt;/li&gt;
&lt;li&gt;Un texto redactado por Claude 4 y editado por humanos puede escapar a la detección, o seguir recibiendo una puntuación alta de AI.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por eso, lo más valioso de un informe no es “87% AI”. Lo importante es qué frases fueron resaltadas, por qué parecen sospechosas y si esas señales coinciden con evidencias del proceso de escritura.&lt;/p&gt;
&lt;h2 id=&#34;flujo-recomendado&#34;&gt;Flujo recomendado
&lt;/h2&gt;&lt;p&gt;Si necesitas juzgar si un artículo pudo haber sido generado por Claude 4, sigue este flujo:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Conserva el texto original y no lo reescribas antes.&lt;/li&gt;
&lt;li&gt;Analízalo con herramientas como GPTZero, Copyleaks o Turnitin.&lt;/li&gt;
&lt;li&gt;Registra puntuación total, frases resaltadas y versión de la herramienta.&lt;/li&gt;
&lt;li&gt;Revisa manualmente las frases marcadas para detectar transiciones formulaicas, lenguaje genérico y afirmaciones sin fuente.&lt;/li&gt;
&lt;li&gt;Verifica citas, datos, enlaces y nombres propios.&lt;/li&gt;
&lt;li&gt;Pide material del proceso de escritura, como esquemas, borradores e historial de revisión.&lt;/li&gt;
&lt;li&gt;Usa el resultado solo como evidencia de apoyo.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si quieres reducir el riesgo de que tu propio texto sea mal clasificado, la solución correcta no es “evadir detectores”. Conserva registros de escritura, añade experiencia real, verifica fuentes, elimina relleno vago y haz que el texto refleje juicio humano y fuentes comprobables.&lt;/p&gt;
&lt;h2 id=&#34;casos-comunes-de-falso-positivo&#34;&gt;Casos comunes de falso positivo
&lt;/h2&gt;&lt;p&gt;Estos textos son especialmente fáciles de clasificar mal:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Inglés formal escrito por hablantes no nativos.&lt;/li&gt;
&lt;li&gt;Resúmenes académicos, correos de negocio y notas de política muy plantillados.&lt;/li&gt;
&lt;li&gt;Texto pulido por herramientas como Grammarly, DeepL Write o Notion AI.&lt;/li&gt;
&lt;li&gt;Textos cortos, títulos, resúmenes y descripciones de productos.&lt;/li&gt;
&lt;li&gt;Chino o inglés con tono de traducción.&lt;/li&gt;
&lt;li&gt;Borradores de varios autores normalizados a un solo estilo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cuanto más importantes sean disciplina, contratación, calificaciones, copyright o cumplimiento, menos aceptable es decidir con una sola puntuación de AI.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;La forma más fiable de detectar texto generado por Claude 4 no es confiar ciegamente en una herramienta de “último algoritmo”. Trata los detectores como señales probabilísticas: cruza varias herramientas, revisa resaltados por frase y combina el resultado con verificación de citas y evidencias del proceso de escritura.&lt;/p&gt;
&lt;p&gt;GPTZero, Copyleaks, Turnitin, Originality.ai, Sapling y Winston AI pueden formar parte de la caja de herramientas. Aumentan la probabilidad de encontrar texto generado por AI, pero no sustituyen el juicio humano. Una conclusión defendible debe combinar resultados de detección, calidad factual, registros de proceso y reglas del contexto específico.&lt;/p&gt;
&lt;p&gt;Referencias:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://guides.turnitin.com/hc/en-us/articles/22774058814093-Using-the-AI-Writing-Report&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Turnitin: Using the AI Writing Report&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.turnitin.com/blog/understanding-the-false-positive-rate-for-sentences-of-our-ai-writing-detection-capability&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Turnitin: Understanding false positive rates&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://copyleaks.com/ai-content-detector&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Copyleaks AI Detector&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://gptzero.me/news/gptzero-ai-detection-benchmarking-the-industry-standard-in-accuracy-transparency-and-fairness/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;GPTZero AI Detection Benchmarking&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://arxiv.org/abs/2602.13042&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;arXiv: GPTZero: Robust Detection of LLM-Generated Texts&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Codex vs Claude Code: cómo elegir entre dos diseños de Subagent</title>
        <link>https://knightli.com/es/2026/05/08/codex-vs-claude-code-subagent-design/</link>
        <pubDate>Fri, 08 May 2026 14:14:01 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/08/codex-vs-claude-code-subagent-design/</guid>
        <description>&lt;p&gt;Las herramientas de programación con IA están prestando cada vez más atención a los subagentes. No es simple moda: un solo agente acaba encontrando límites cuando debe manejar tareas reales de ingeniería.&lt;/p&gt;
&lt;p&gt;Si un agente lee código, revisa logs, modifica implementación, ejecuta pruebas, analiza errores y resume resultados a la vez, el contexto principal se ensucia rápido. Resultados de búsqueda, salidas de comandos, logs de pruebas y razonamientos intermedios se mezclan. Las decisiones posteriores se vuelven menos fiables. Además, explorar, implementar, verificar y revisar en un único hilo dificulta el paralelismo.&lt;/p&gt;
&lt;p&gt;El objetivo de los subagentes es reducir esa presión. La sesión principal deja de hacerlo todo de principio a fin y pasa a coordinar: define objetivos, asigna trabajo, recibe resultados y los integra. Un subagente se ocupa de una parte local, como exploración, implementación, verificación o revisión, y devuelve una conclusión comprimida.&lt;/p&gt;
&lt;p&gt;Un subagente no es “otra copia de mí”. Es una forma de dividir trabajo de ingeniería confuso en roles más claros.&lt;/p&gt;
&lt;h2 id=&#34;fundamentos-compartidos&#34;&gt;Fundamentos compartidos
&lt;/h2&gt;&lt;p&gt;Un sistema maduro de subagentes suele necesitar cuatro bases:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Aislamiento de contexto.&lt;/li&gt;
&lt;li&gt;Especialización de roles.&lt;/li&gt;
&lt;li&gt;Configuración a nivel de proyecto y usuario.&lt;/li&gt;
&lt;li&gt;Límites de herramientas y permisos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El aislamiento de contexto es esencial. En un repositorio real hay mucho material intermedio: búsquedas, logs de pruebas, salidas de comandos. Si todo entra en la sesión principal, el hilo principal se vuelve ruidoso. Un subagente puede digerir ese proceso local y devolver solo las señales útiles.&lt;/p&gt;
&lt;p&gt;La especialización de roles también importa. Multi-agent no significa abrir varias copias del mismo modelo. Un rol de exploración debe buscar, leer y resumir. Un rol de implementación debe centrarse en cambios locales. Un rol de verificación debe ejecutar checks, identificar riesgos e informar con claridad.&lt;/p&gt;
&lt;p&gt;Los límites de herramientas y permisos determinan si el sistema es seguro. Un subagente no debería heredar automáticamente todas las capacidades de la sesión principal. Un explorer de solo lectura no necesita escribir archivos. Un verifier no siempre necesita modificar implementación.&lt;/p&gt;
&lt;p&gt;Codex y Claude Code comparten estas preocupaciones, pero toman caminos distintos.&lt;/p&gt;
&lt;h2 id=&#34;codex-delegación-explícita&#34;&gt;Codex: delegación explícita
&lt;/h2&gt;&lt;p&gt;El diseño de Codex es más contenido.&lt;/p&gt;
&lt;p&gt;Ofrece un mecanismo de delegación controlado y ligero alrededor de la sesión principal actual. Cuándo delegar, a quién delegar y cuándo recoger resultados son decisiones explícitas. El flujo de control permanece en la tarea actual.&lt;/p&gt;
&lt;p&gt;Sus rasgos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La sesión principal delega explícitamente.&lt;/li&gt;
&lt;li&gt;El conjunto de roles se mantiene pequeño.&lt;/li&gt;
&lt;li&gt;La sesión principal sabe qué agente hace qué.&lt;/li&gt;
&lt;li&gt;Los resultados vuelven a la línea principal.&lt;/li&gt;
&lt;li&gt;Los límites de colaboración son transparentes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto encaja con equipos que valoran orquestación manual, previsibilidad y determinismo. Puedes pedir a un explorer que inspeccione una cadena de llamadas, a un worker que haga un cambio acotado y a la sesión principal que integre el resultado.&lt;/p&gt;
&lt;p&gt;La contrapartida es que la presión de orquestación sigue en la sesión principal. Debe decidir cuándo dividir, cómo dividir, a quién asignar y cómo fusionar resultados. Para colaboración ligera es cómodo; para flujos largos puede cansar.&lt;/p&gt;
&lt;h2 id=&#34;claude-code-agentes-como-puestos-de-trabajo&#34;&gt;Claude Code: agentes como puestos de trabajo
&lt;/h2&gt;&lt;p&gt;Claude Code toma una ruta más de plataforma.&lt;/p&gt;
&lt;p&gt;Trata los agentes como objetos describibles, seleccionables, configurables, con memoria, aislables y capaces de ejecutarse en segundo plano. Un subagente no es solo una ayuda temporal en una conversación; se parece más a un puesto de trabajo dentro de un sistema de ingeniería.&lt;/p&gt;
&lt;p&gt;El sistema puede exponer listas de agentes, casos de uso, descripciones y límites de herramientas al modelo, permitiendo que el modelo decida qué rol usar en cada turno. Eso hace la delegación más automática.&lt;/p&gt;
&lt;p&gt;Varios elementos definen este enfoque.&lt;/p&gt;
&lt;p&gt;Primero, un sistema de roles. Explorer, planner, general-purpose y verifier pueden tener descripción de uso, restricciones de herramientas, modelos por defecto y condiciones de ejecución. Un explorer de solo lectura no edita archivos; un planner diseña; un verifier comprueba.&lt;/p&gt;
&lt;p&gt;Segundo, herencia y override. Un subagente no es completamente libre. Hereda los límites grandes de la sesión principal, pero puede ajustar comportamiento local dentro de reglas permitidas.&lt;/p&gt;
&lt;p&gt;Tercero, memoria. La memoria no es solo recordar algo. Puede tener alcance: memoria de usuario para preferencias largas, memoria de proyecto para contexto del repositorio y memoria local para estado del entorno.&lt;/p&gt;
&lt;p&gt;Cuarto, background y worktree isolation. Algunas verificaciones pueden seguir en segundo plano mientras el hilo principal avanza. Si hace falta aislamiento fuerte, el agente puede trabajar en un worktree separado.&lt;/p&gt;
&lt;p&gt;Quinto, ecosistema de plugins. Si los agentes son objetos de primera clase, hay que pensar en distribución, instalación, prioridades, overrides y seguridad. Los plugin agents pueden entrar al sistema, pero campos de alto riesgo como permission mode, hooks o MCP servers deben estar controlados.&lt;/p&gt;
&lt;p&gt;Esto hace que Claude Code se parezca más a un runtime de agentes que a una herramienta de colaboración de una sola sesión.&lt;/p&gt;
&lt;h2 id=&#34;diferencia-principal&#34;&gt;Diferencia principal
&lt;/h2&gt;&lt;p&gt;Codex se parece a una herramienta de delegación controlada:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Delegación explícita.&lt;/li&gt;
&lt;li&gt;Roles ligeros.&lt;/li&gt;
&lt;li&gt;Flujo de control claro.&lt;/li&gt;
&lt;li&gt;Subtareas centradas en la sesión actual.&lt;/li&gt;
&lt;li&gt;Adecuado para trabajo humano-orquestado y determinista.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Claude Code se parece a un sistema de puestos de ingeniería:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Los agentes están modelados formalmente.&lt;/li&gt;
&lt;li&gt;Los roles son más sistemáticos.&lt;/li&gt;
&lt;li&gt;Memoria, background, aislamiento y plugins forman parte del runtime.&lt;/li&gt;
&lt;li&gt;El modelo puede ayudar a elegir roles.&lt;/li&gt;
&lt;li&gt;Adecuado para proyectos largos y workflows de plataforma.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La pregunta no es cuál tiene más funciones. Es si quieres que un subagente sea “un ayudante al que llamo explícitamente” o “un puesto permanente dentro del sistema”.&lt;/p&gt;
&lt;h2 id=&#34;cómo-elegir&#34;&gt;Cómo elegir
&lt;/h2&gt;&lt;p&gt;Elige el estilo Codex si valoras control explícito, delegación ligera y paralelismo seguro dentro de la sesión actual. Encaja con revisiones, cambios pequeños, tareas claras y flujos donde la persona quiere mantener el ritmo.&lt;/p&gt;
&lt;p&gt;Elige el estilo Claude Code si necesitas roles sistemáticos, memoria a largo plazo, ejecución en segundo plano, aislamiento por worktree, plugins y un runtime más completo.&lt;/p&gt;
&lt;p&gt;Hazte dos preguntas:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;¿Aceptas que el modelo decida quién debe hacer el trabajo?&lt;/li&gt;
&lt;li&gt;¿Necesitas un runtime de agentes más completo?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si la primera te incomoda, la delegación explícita es mejor. Si la segunda es sí, un sistema tipo plataforma encaja mejor.&lt;/p&gt;
&lt;h2 id=&#34;consejos-prácticos&#34;&gt;Consejos prácticos
&lt;/h2&gt;&lt;p&gt;No trates los subagentes como “más modelos igual a más potencia”.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Define límites de tarea para cada rol.&lt;/li&gt;
&lt;li&gt;Limita las herramientas de cada rol.&lt;/li&gt;
&lt;li&gt;Pide conclusiones, no logs crudos.&lt;/li&gt;
&lt;li&gt;Mantén la decisión final en la sesión principal.&lt;/li&gt;
&lt;li&gt;Haz visibles tareas en background y worktrees.&lt;/li&gt;
&lt;li&gt;Define límites de seguridad para plugins.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El valor de los subagentes no está en la cantidad, sino en la calidad de la división del trabajo.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Codex y Claude Code resuelven el mismo problema: un solo agente no puede cargar cómodamente con todo el trabajo real de ingeniería. Ambos reconocen la importancia de aislar contexto, especializar roles, definir permisos y resumir localmente.&lt;/p&gt;
&lt;p&gt;Codex es más contenido y prioriza delegación explícita y control de la sesión principal. Claude Code es más sistemático y trata los agentes como puestos configurables, con memoria, aislamiento, background y ecosistema de plugins.&lt;/p&gt;
&lt;p&gt;La elección no depende de qué marca gana, sino de si tu flujo necesita una herramienta de colaboración controlada o un runtime completo de agentes.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>9Router: conecta Claude Code, Codex y Cursor a un mismo router de IA</title>
        <link>https://knightli.com/es/2026/05/08/9router-ai-coding-router-token-saver/</link>
        <pubDate>Fri, 08 May 2026 13:41:15 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/08/9router-ai-coding-router-token-saver/</guid>
        <description>&lt;p&gt;9Router es un router local para herramientas de programación con IA. Permite conectar Claude Code, Codex, Cursor, Cline, Copilot, OpenCode, OpenClaw y herramientas similares a un único endpoint compatible con OpenAI, y desde ahí enrutar las solicitudes a distintos modelos y proveedores.&lt;/p&gt;
&lt;p&gt;No pretende ser otro cliente de chat. Se coloca entre tus herramientas de programación y los proveedores de modelos para resolver problemas prácticos: formatos de API incompatibles, cambios manuales entre proveedores, consumo rápido de tokens por salidas de herramientas, cortes por cuotas agotadas y configuración complicada de varias cuentas.&lt;/p&gt;
&lt;p&gt;Según el README, 9Router admite más de 40 proveedores y más de 100 modelos. Incluye RTK Token Saver, fallback automático, seguimiento de cuotas, rotación multi-cuenta, traducción de formatos y registros de solicitudes. Está escrito en JavaScript, usa Node.js, Next.js, React, Tailwind CSS y LowDB, y tiene licencia MIT.&lt;/p&gt;
&lt;h2 id=&#34;para-qué-sirve&#34;&gt;Para qué sirve
&lt;/h2&gt;&lt;p&gt;9Router tiene más sentido cuando usas varias herramientas de programación con IA y varias fuentes de modelos al mismo tiempo.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Claude Code usa una cuenta de suscripción.&lt;/li&gt;
&lt;li&gt;Codex o Cursor necesitan un endpoint OpenAI personalizado.&lt;/li&gt;
&lt;li&gt;Cline, Continue o RooCode necesitan una API compatible con OpenAI.&lt;/li&gt;
&lt;li&gt;Los proveedores gratuitos sirven para pruebas.&lt;/li&gt;
&lt;li&gt;GLM, MiniMax o Kimi funcionan como respaldo barato.&lt;/li&gt;
&lt;li&gt;Los modelos de mayor calidad se reservan para tareas difíciles.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Sin 9Router, cada herramienta necesita su propio endpoint, API key, nombre de modelo y estrategia de fallback. 9Router centraliza todo eso en una capa local.&lt;/p&gt;
&lt;p&gt;API local:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://localhost:20128/v1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Dashboard:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://localhost:20128/dashboard
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;instalación-rápida&#34;&gt;Instalación rápida
&lt;/h2&gt;&lt;p&gt;Para uso local:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -g 9router
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;9router
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Desde el código fuente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/decolua/9router.git
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; 9router
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cp .env.example .env
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;PORT&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;20128&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;NEXT_PUBLIC_BASE_URL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;http://localhost:20128 npm run dev
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Modo producción:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm run build
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;PORT&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;20128&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;HOSTNAME&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;0.0.0.0 &lt;span class=&#34;nv&#34;&gt;NEXT_PUBLIC_BASE_URL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;http://localhost:20128 npm run start
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El paquete npm requiere Node.js &lt;code&gt;&amp;gt;=18.0.0&lt;/code&gt;. En VPS o Docker, configura &lt;code&gt;JWT_SECRET&lt;/code&gt;, &lt;code&gt;INITIAL_PASSWORD&lt;/code&gt;, &lt;code&gt;DATA_DIR&lt;/code&gt; y &lt;code&gt;API_KEY_SECRET&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;conectar-herramientas-de-programación&#34;&gt;Conectar herramientas de programación
&lt;/h2&gt;&lt;p&gt;Configuración típica:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Base URL: http://localhost:20128/v1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;API Key: copiada desde el dashboard de 9Router
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Model: nombre de modelo o combo configurado en 9Router
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Para Codex CLI:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;OPENAI_BASE_URL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;http://localhost:20128&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;OPENAI_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;your-9router-api-key&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;codex &lt;span class=&#34;s2&#34;&gt;&amp;#34;your prompt&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Para Cline, Continue o RooCode, elige &lt;code&gt;OpenAI Compatible&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Base URL: http://localhost:20128/v1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;API Key: your-9router-api-key
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Model: cc/claude-opus-4-7
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Los nombres dependen de los proveedores conectados, por ejemplo &lt;code&gt;cc/&lt;/code&gt;, &lt;code&gt;cx/&lt;/code&gt;, &lt;code&gt;gh/&lt;/code&gt;, &lt;code&gt;glm/&lt;/code&gt;, &lt;code&gt;minimax/&lt;/code&gt;, &lt;code&gt;kr/&lt;/code&gt; y &lt;code&gt;vertex/&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;rtk-token-saver&#34;&gt;RTK Token Saver
&lt;/h2&gt;&lt;p&gt;En programación con IA, muchas veces lo que más tokens consume son salidas de herramientas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git diff&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git status&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;grep&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;find&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ls&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tree&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;logs&lt;/li&gt;
&lt;li&gt;listas largas de archivos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;RTK Token Saver comprime esas salidas antes de enviarlas al modelo. El proyecto afirma que puede ahorrar 20%-40% de tokens de entrada en muchas solicitudes.&lt;/p&gt;
&lt;p&gt;La ventaja es que no tienes que cambiar de herramienta ni de modelo. Aun así, para logs críticos o contenido completo de archivos, conviene probar primero que la calidad de respuesta no baje.&lt;/p&gt;
&lt;h2 id=&#34;fallback-automático&#34;&gt;Fallback automático
&lt;/h2&gt;&lt;p&gt;Puedes ordenar modelos por prioridad:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;1. Modelo de suscripción
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;2. API barata
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;3. Proveedor gratuito
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;1. cc/claude-opus-4-7
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;2. glm/glm-5.1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;3. kr/claude-sonnet-4.5
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El fallback reduce interrupciones, pero cambia la consistencia de salida. Para refactors grandes, migraciones o tareas sensibles, es mejor fijar un modelo principal.&lt;/p&gt;
&lt;h2 id=&#34;cuidado-con-proveedores-gratuitos&#34;&gt;Cuidado con proveedores gratuitos
&lt;/h2&gt;&lt;p&gt;Kiro, OpenCode Free y Vertex pueden ser útiles, pero sus reglas cambian. Verifica siempre si el uso es gratuito, si hay límites regionales, si se permite usar herramientas de terceros, si puede haber rate limits o bloqueos, y cuándo caduca la cuota.&lt;/p&gt;
&lt;p&gt;9Router enruta solicitudes; no cambia las condiciones del proveedor.&lt;/p&gt;
&lt;h2 id=&#34;despliegue-local&#34;&gt;Despliegue local
&lt;/h2&gt;&lt;p&gt;Para uso personal, basta con escuchar en &lt;code&gt;localhost&lt;/code&gt;. Si lo llevas a un VPS o LAN, cambia la contraseña por defecto, configura &lt;code&gt;JWT_SECRET&lt;/code&gt; y &lt;code&gt;API_KEY_SECRET&lt;/code&gt;, no expongas el dashboard directamente, y exige Bearer API key en &lt;code&gt;/v1/*&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -d &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --name 9router &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -p 20128:20128 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --env-file ./.env &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -v 9router-data:/app/data &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -v 9router-usage:/root/.9router &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  9router
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;9Router es una puerta de enlace local para herramientas de programación con IA. Unifica Claude Code, Codex, Cursor y Cline en &lt;code&gt;http://localhost:20128/v1&lt;/code&gt;, y gestiona selección de modelo, traducción de formatos, compresión de tokens, cuotas y fallback.&lt;/p&gt;
&lt;p&gt;Es más útil para usuarios intensivos que ya alternan entre varios proveedores. Empieza con una herramienta y un proveedor, y añade combos poco a poco.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/decolua/9router&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Repositorio de 9Router en GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://9router.com&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Sitio web de 9Router&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.npmjs.com/package/9router&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Paquete npm de 9Router&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>DeepSeek-TUI: ejecuta un agente de programación DeepSeek en la terminal</title>
        <link>https://knightli.com/es/2026/05/08/deepseek-tui-terminal-coding-agent/</link>
        <pubDate>Fri, 08 May 2026 13:41:15 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/08/deepseek-tui-terminal-coding-agent/</guid>
        <description>&lt;p&gt;DeepSeek-TUI es un agente de programación con IA que corre en la terminal. Está diseñado alrededor de modelos DeepSeek V4 y se inicia con el comando &lt;code&gt;deepseek&lt;/code&gt;. Dentro de una TUI puede leer y editar archivos, ejecutar comandos shell, buscar en la web, gestionar git, conectar servidores MCP y coordinar subagentes.&lt;/p&gt;
&lt;p&gt;Es más un espacio de trabajo de terminal que un chat CLI simple. Combina lectura de código, edición de archivos, comandos, diagnósticos, recuperación de sesión y rollback del workspace.&lt;/p&gt;
&lt;p&gt;El repositorio está escrito principalmente en Rust y usa licencia MIT.&lt;/p&gt;
&lt;h2 id=&#34;para-quién-es&#34;&gt;Para quién es
&lt;/h2&gt;&lt;p&gt;Sirve para desarrolladores que prefieren trabajar en terminal y quieren usar modelos DeepSeek en tareas locales reales.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cambios de código y análisis de proyectos.&lt;/li&gt;
&lt;li&gt;Trabajo sin abrir un IDE completo.&lt;/li&gt;
&lt;li&gt;Lectura y modificación de un workspace local.&lt;/li&gt;
&lt;li&gt;Modos Plan, Agent y YOLO.&lt;/li&gt;
&lt;li&gt;Guardar y reanudar sesiones largas.&lt;/li&gt;
&lt;li&gt;Revertir cambios del workspace.&lt;/li&gt;
&lt;li&gt;Integrar MCP, diagnósticos LSP, HTTP/SSE runtime API y skills.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para preguntas simples, un cliente web o CLI ligero basta. DeepSeek-TUI tiene más sentido cuando el modelo debe formar parte del flujo de desarrollo local.&lt;/p&gt;
&lt;h2 id=&#34;instalación&#34;&gt;Instalación
&lt;/h2&gt;&lt;p&gt;Con npm:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -g deepseek-tui
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek --version
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek --model auto
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El paquete npm es un instalador/wrapper que descarga binarios Rust precompilados. Requiere Node.js &lt;code&gt;&amp;gt;=18&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Con Cargo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cargo install deepseek-tui-cli --locked
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cargo install deepseek-tui --locked
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Con Homebrew:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;brew tap Hmbown/deepseek-tui
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;brew install deepseek-tui
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;También hay binarios en GitHub Releases para Linux x64/ARM64, macOS x64/ARM64 y Windows x64.&lt;/p&gt;
&lt;p&gt;Docker:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run --rm -it &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -e DEEPSEEK_API_KEY &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -v &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$PWD&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;:/workspace&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ghcr.io/hmbown/deepseek-tui:latest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;configurar-la-api-key&#34;&gt;Configurar la API Key
&lt;/h2&gt;&lt;p&gt;En el primer inicio, DeepSeek-TUI pide la API key y la guarda en:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;~/.deepseek/config.toml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;También puedes configurarla así:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek auth &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; --provider deepseek
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek auth status
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;O usar variable de entorno:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;DEEPSEEK_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;YOUR_KEY&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Comprueba la instalación:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek doctor
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Para borrar la clave guardada:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek auth clear --provider deepseek
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;auto-mode&#34;&gt;Auto mode
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek --model auto
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;En la TUI:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/model auto
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Auto mode decide dos cosas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Modelo: &lt;code&gt;deepseek-v4-flash&lt;/code&gt; o &lt;code&gt;deepseek-v4-pro&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Thinking: &lt;code&gt;off&lt;/code&gt;, &lt;code&gt;high&lt;/code&gt; o &lt;code&gt;max&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Antes del turno real, hace una llamada pequeña de enrutamiento para analizar la petición y el contexto. Las tareas simples pueden usar Flash con thinking desactivado; tareas complejas pueden subir a Pro o mayor thinking.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;auto&lt;/code&gt; es local a DeepSeek-TUI. La API upstream recibe el modelo concreto elegido.&lt;/p&gt;
&lt;h2 id=&#34;modos&#34;&gt;Modos
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Modo&lt;/th&gt;
          &lt;th&gt;Uso&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Plan&lt;/td&gt;
          &lt;td&gt;Exploración y planificación de solo lectura&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Agent&lt;/td&gt;
          &lt;td&gt;Modo interactivo con aprobaciones&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;YOLO&lt;/td&gt;
          &lt;td&gt;Autoaprobación en workspaces confiables&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;YOLO es rápido pero riesgoso. Úsalo solo en ramas temporales o directorios de prueba.&lt;/p&gt;
&lt;h2 id=&#34;herramientas&#34;&gt;Herramientas
&lt;/h2&gt;&lt;p&gt;Incluye lectura/escritura de archivos, apply patch, shell, git, web search/browse, subagentes, MCP, diagnósticos LSP, guardado/reanudación de sesiones, rollback del workspace, cola de tareas durable, HTTP/SSE runtime API y sistema de skills.&lt;/p&gt;
&lt;p&gt;Los diagnósticos LSP ayudan a devolver errores de rust-analyzer, pyright, typescript-language-server, gopls o clangd al modelo después de editar. El rollback usa snapshots side-git y comandos como &lt;code&gt;/restore&lt;/code&gt; y &lt;code&gt;revert_turn&lt;/code&gt;, pero los commits normales de git siguen siendo importantes.&lt;/p&gt;
&lt;h2 id=&#34;comandos-comunes&#34;&gt;Comandos comunes
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek &lt;span class=&#34;s2&#34;&gt;&amp;#34;explain this function&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek --model deepseek-v4-flash &lt;span class=&#34;s2&#34;&gt;&amp;#34;summarize&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek --model auto &lt;span class=&#34;s2&#34;&gt;&amp;#34;fix this bug&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek --yolo
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek auth &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; --provider deepseek
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek doctor
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek doctor --json
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek models
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek sessions
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek resume --last
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek resume &amp;lt;SESSION_ID&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek fork &amp;lt;SESSION_ID&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek serve --http
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek serve --acp
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek pr &amp;lt;N&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek mcp list
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek mcp validate
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek update
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;zed-y-acp&#34;&gt;Zed y ACP
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;agent_servers&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;DeepSeek&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nt&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;custom&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;deepseek&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nt&#34;&gt;&amp;#34;args&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;serve&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;--acp&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nt&#34;&gt;&amp;#34;env&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El README indica que ACP permite nuevas sesiones y respuestas a prompts, pero la edición con herramientas y la repetición de checkpoints aún no están expuestas.&lt;/p&gt;
&lt;h2 id=&#34;configuración-y-proveedores&#34;&gt;Configuración y proveedores
&lt;/h2&gt;&lt;p&gt;Configuración de usuario:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;~/.deepseek/config.toml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Overlay de proyecto:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;workspace&amp;gt;/.deepseek/config.toml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Campos como &lt;code&gt;api_key&lt;/code&gt;, &lt;code&gt;base_url&lt;/code&gt;, &lt;code&gt;provider&lt;/code&gt; y &lt;code&gt;mcp_config_path&lt;/code&gt; no se permiten en el overlay del proyecto.&lt;/p&gt;
&lt;p&gt;Endpoint compatible con OpenAI:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek auth &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; --provider openai --api-key &lt;span class=&#34;s2&#34;&gt;&amp;#34;YOUR_OPENAI_COMPATIBLE_API_KEY&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;OPENAI_BASE_URL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;https://openai-compatible.example/v4&amp;#34;&lt;/span&gt; deepseek --provider openai --model glm-5
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Ollama:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama pull deepseek-coder:1.3b
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek --provider ollama --model deepseek-coder:1.3b
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;DeepSeek-TUI reúne DeepSeek V4, TUI, llamadas a herramientas, diagnósticos LSP, recuperación de sesiones, rollback, MCP y skills en un flujo Rust de terminal. No es el cliente más ligero, pero su valor está en pasar del chat al desarrollo local ejecutable.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Hmbown/DeepSeek-TUI&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Repositorio de DeepSeek-TUI en GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://deepseek-tui.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Sitio de DeepSeek-TUI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.npmjs.com/package/deepseek-tui&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Paquete npm de DeepSeek-TUI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://platform.deepseek.com/api_keys&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DeepSeek API Keys&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>goose: un agente de IA open source con escritorio, CLI y API</title>
        <link>https://knightli.com/es/2026/05/08/goose-open-source-ai-agent-desktop-cli-api/</link>
        <pubDate>Fri, 08 May 2026 13:41:15 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/08/goose-open-source-ai-agent-desktop-cli-api/</guid>
        <description>&lt;p&gt;goose es un agente de IA open source que corre en tu propia máquina. No se limita a completar código; busca cubrir código, investigación, escritura, automatización, análisis de datos y otros trabajos. El README lo presenta como aplicación de escritorio, CLI y API para usuarios normales y flujos personalizados.&lt;/p&gt;
&lt;p&gt;El proyecto pasó de &lt;code&gt;block/goose&lt;/code&gt; a la Agentic AI Foundation (AAIF), dentro de Linux Foundation. El repositorio actual es:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;https://github.com/aaif-goose/goose
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;goose está escrito principalmente en Rust y TypeScript, con licencia Apache-2.0. Su descripción en GitHub dice que es un agente de IA extensible que va más allá de sugerencias de código: puede instalar, ejecutar, editar y probar con cualquier LLM.&lt;/p&gt;
&lt;h2 id=&#34;qué-problema-resuelve&#34;&gt;Qué problema resuelve
&lt;/h2&gt;&lt;p&gt;Muchas herramientas de programación con IA se centran en sugerencias o cambios locales. goose apunta a algo más amplio: permitir que un agente de IA complete tareas directamente en tu máquina.&lt;/p&gt;
&lt;p&gt;Puede servir para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cambios de código y pruebas.&lt;/li&gt;
&lt;li&gt;Automatización local.&lt;/li&gt;
&lt;li&gt;Investigación y escritura.&lt;/li&gt;
&lt;li&gt;Análisis de datos.&lt;/li&gt;
&lt;li&gt;Flujos multi-paso.&lt;/li&gt;
&lt;li&gt;Integración mediante API.&lt;/li&gt;
&lt;li&gt;Extensión mediante MCP.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si solo necesitas autocompletado en el IDE, una herramienta tipo Copilot puede bastar. goose es más útil cuando quieres IA dentro de la cadena local de ejecución de tareas.&lt;/p&gt;
&lt;h2 id=&#34;escritorio-cli-y-api&#34;&gt;Escritorio, CLI y API
&lt;/h2&gt;&lt;p&gt;La aplicación de escritorio soporta macOS, Linux y Windows.&lt;/p&gt;
&lt;p&gt;La CLI encaja con flujos de terminal y automatización local.&lt;/p&gt;
&lt;p&gt;La API permite insertar goose como runtime de agente en otros sistemas o herramientas internas.&lt;/p&gt;
&lt;p&gt;Para uso personal, empieza por escritorio o CLI. Para equipos, conviene revisar también la API y las distribuciones personalizadas.&lt;/p&gt;
&lt;h2 id=&#34;instalación&#34;&gt;Instalación
&lt;/h2&gt;&lt;p&gt;Aplicación de escritorio:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;https://goose-docs.ai/docs/getting-started/installation
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;CLI:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -fsSL https://github.com/aaif-goose/goose/releases/download/stable/download_cli.sh &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;GitHub Releases ofrece builds para varias plataformas. La versión latest consultada fue &lt;code&gt;v1.33.1&lt;/code&gt;, publicada el 2026-04-29, con assets para macOS, Linux, Windows, deb, rpm y Flatpak.&lt;/p&gt;
&lt;p&gt;Después de instalar, configura un proveedor siguiendo el Quickstart oficial y prueba primero en un directorio de bajo riesgo.&lt;/p&gt;
&lt;h2 id=&#34;proveedores&#34;&gt;Proveedores
&lt;/h2&gt;&lt;p&gt;goose admite más de 15 proveedores, entre ellos Anthropic, OpenAI, Google, Ollama, OpenRouter, Azure, Bedrock y otros proveedores cloud o compatibles con OpenAI.&lt;/p&gt;
&lt;p&gt;Puede usar API keys y también suscripciones existentes de Claude, ChatGPT o Gemini mediante ACP.&lt;/p&gt;
&lt;p&gt;ACP es relevante porque muchos usuarios ya tienen suscripciones, pero no todas las herramientas las reutilizan bien. goose las integra en un flujo de agente. Aun así, verifica siempre términos del proveedor, cuotas y políticas para código corporativo o datos sensibles.&lt;/p&gt;
&lt;h2 id=&#34;extensiones-mcp&#34;&gt;Extensiones MCP
&lt;/h2&gt;&lt;p&gt;goose soporta extensiones Model Context Protocol. El README menciona más de 70 extensiones.&lt;/p&gt;
&lt;p&gt;MCP permite conectar el agente con documentación, bases de datos, navegadores, sistemas internos, búsqueda, herramientas de diseño o gestión de proyectos mediante interfaces estándar.&lt;/p&gt;
&lt;p&gt;Para equipos, MCP puede ser una capa de integración más segura que exponer todos los sistemas directamente al modelo.&lt;/p&gt;
&lt;h2 id=&#34;diferencia-frente-a-un-asistente-de-código&#34;&gt;Diferencia frente a un asistente de código
&lt;/h2&gt;&lt;p&gt;goose no es solo autocompletado. Es más bien un runtime local de agente.&lt;/p&gt;
&lt;p&gt;Los asistentes comunes se enfocan en completar, explicar, generar funciones y editar en el IDE. goose se centra en ejecución local de tareas, flujos multi-paso, proveedores intercambiables, extensiones, escritorio y CLI, API embebible y tareas que no son solo código.&lt;/p&gt;
&lt;p&gt;Eso también implica más complejidad: configuración de modelos, permisos, extensiones, workspace, logs y credenciales.&lt;/p&gt;
&lt;h2 id=&#34;distribuciones-personalizadas&#34;&gt;Distribuciones personalizadas
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;CUSTOM_DISTROS.md&lt;/code&gt; explica cómo construir una distribución de goose con proveedores, extensiones y branding preconfigurados.&lt;/p&gt;
&lt;p&gt;Un equipo puede predefinir proveedores permitidos, conectar servidores MCP internos, configurar seguridad y logs, bloquear servicios externos y aplicar onboarding propio.&lt;/p&gt;
&lt;h2 id=&#34;recomendaciones&#34;&gt;Recomendaciones
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;Instala la app de escritorio o CLI.&lt;/li&gt;
&lt;li&gt;Configura un proveedor conocido.&lt;/li&gt;
&lt;li&gt;Ejecuta tareas simples en un directorio de prueba.&lt;/li&gt;
&lt;li&gt;Observa qué archivos lee y qué acciones ejecuta.&lt;/li&gt;
&lt;li&gt;Añade extensiones MCP.&lt;/li&gt;
&lt;li&gt;Prueba repositorios complejos después.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Haz commit antes de cambios importantes, no guardes API keys en archivos del proyecto, limita los modos de alto permiso a workspaces confiables y revisa la política de datos antes de usar código de empresa.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;goose es un agente de IA open source bajo AAIF/Linux Foundation. Ofrece escritorio, CLI y API, soporta más de 15 proveedores, acceso a suscripciones vía ACP y más de 70 extensiones MCP.&lt;/p&gt;
&lt;p&gt;Su valor no es solo escribir código, sino unir modelos, herramientas, extensiones y ejecución local dentro de un mismo marco de agente.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/aaif-goose/goose&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Repositorio de goose en GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://goose-docs.ai/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Documentación de goose&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://goose-docs.ai/docs/getting-started/installation&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Guía de instalación de goose&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://aaif.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Agentic AI Foundation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Qué modelos locales de IA puede ejecutar un portátil RTX 4060 8GB</title>
        <link>https://knightli.com/es/2026/05/08/laptop-rtx-4060-8gb-local-ai-models/</link>
        <pubDate>Fri, 08 May 2026 13:41:15 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/08/laptop-rtx-4060-8gb-local-ai-models/</guid>
        <description>&lt;p&gt;Un portátil con RTX 4060 8GB puede ejecutar IA local, pero el límite es claro: lo importante no es si el modelo arranca, sino si cabe en VRAM. La versión móvil también depende de potencia, refrigeración, ancho de banda de memoria y ajustes del fabricante.&lt;/p&gt;
&lt;p&gt;En 2026, 8GB de VRAM siguen siendo la línea de entrada para IA local. Con modelos cuantizados y herramientas adecuadas, puedes ejecutar LLM de 3B-8B, SDXL, SD 1.5, algunos flujos FLUX cuantizados, Whisper y extracción de características de imagen. Si fuerzas LLM de 14B+, modelos grandes sin cuantizar o flujos de imagen pesados, el rendimiento cae cuando se usa memoria del sistema.&lt;/p&gt;
&lt;p&gt;Resumen: no persigas el modelo más grande. Usa modelos pequeños, pesos cuantizados y flujos de baja VRAM.&lt;/p&gt;
&lt;h2 id=&#34;presupuesto-de-vram&#34;&gt;Presupuesto de VRAM
&lt;/h2&gt;&lt;p&gt;Windows 11, navegadores, drivers y procesos de fondo ya consumen memoria de GPU. El presupuesto real suele estar más cerca de 6.5GB-7.2GB que de los 8GB completos.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;LLM: 3B-8B con cuantización 4-bit.&lt;/li&gt;
&lt;li&gt;Imagen: SDXL, SD 1.5 y FLUX GGUF/NF4 low-VRAM.&lt;/li&gt;
&lt;li&gt;Multimodal: modelos ligeros de unos 4B.&lt;/li&gt;
&lt;li&gt;Voz: Whisper large-v3 funciona, pero los lotes largos calientan.&lt;/li&gt;
&lt;li&gt;Indexación: CLIP, ViT y SigLIP encajan muy bien.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un modelo pequeño completo en GPU suele ir mejor que uno grande con mucho offload.&lt;/p&gt;
&lt;h2 id=&#34;llm-modelos-cuantizados-de-3b-8b&#34;&gt;LLM: modelos cuantizados de 3B-8B
&lt;/h2&gt;&lt;p&gt;Para chat y razonamiento local, usa Ollama, LM Studio, koboldcpp, llama.cpp u otro frontend compatible con GGUF. El punto cómodo en 8GB es 3B-8B en 4-bit.&lt;/p&gt;
&lt;h3 id=&#34;ligero-general-gemma-4-e4b&#34;&gt;Ligero general: Gemma 4 E4B
&lt;/h3&gt;&lt;p&gt;Gemma 4 E4B es uno de los modelos pequeños de la familia Gemma 4 de Google lanzada en 2026. Es adecuado para uso local y edge: preguntas, resúmenes, organización ligera, tareas multimodales simples e inferencia barata.&lt;/p&gt;
&lt;p&gt;En una RTX 4060 de portátil, empieza por una versión cuantizada oficial o comunitaria. No comiences con los pesos de mayor precisión.&lt;/p&gt;
&lt;h3 id=&#34;razonamiento-deepseek-r1-distill-7b8b-qwen-3-8b&#34;&gt;Razonamiento: DeepSeek R1 Distill 7B/8B, Qwen 3 8B
&lt;/h3&gt;&lt;p&gt;Para lógica, matemáticas, análisis complejo y texto largo, prueba DeepSeek R1 distill 7B/8B o Qwen 3 8B cuantizado.&lt;/p&gt;
&lt;p&gt;Con &lt;code&gt;Q4_K_M&lt;/code&gt;, los modelos de 8B suelen entrar en el presupuesto de una GPU de 8GB. La velocidad depende del contexto, backend, driver y modo de energía.&lt;/p&gt;
&lt;p&gt;No empieces con 14B, 32B o más. Aunque arranquen con CPU offload, la experiencia suele ser peor que con un modelo menor completamente en GPU.&lt;/p&gt;
&lt;h3 id=&#34;código-qwen-25-coder-3b7b&#34;&gt;Código: Qwen 2.5 Coder 3B/7B
&lt;/h3&gt;&lt;p&gt;Qwen 2.5 Coder 3B es rápido y útil para autocompletado, explicación y generación pequeña. El 7B entiende mejor, pero consume más VRAM y tarda más.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Autocompletado: 3B.&lt;/li&gt;
&lt;li&gt;Q&amp;amp;A y explicación: 3B o 7B.&lt;/li&gt;
&lt;li&gt;Refactors pequeños: 7B cuantizado.&lt;/li&gt;
&lt;li&gt;Arquitectura grande: no esperes meter todo el proyecto en 8GB.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;imagen-sdxl-estable-flux-cuantizado&#34;&gt;Imagen: SDXL estable, FLUX cuantizado
&lt;/h2&gt;&lt;p&gt;SD 1.5 es muy amigable con 8GB, rápido y maduro. SDXL consume más pero sigue siendo viable.&lt;/p&gt;
&lt;p&gt;Herramientas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ComfyUI&lt;/li&gt;
&lt;li&gt;Stable Diffusion WebUI Forge&lt;/li&gt;
&lt;li&gt;Fooocus&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;FLUX ofrece mejor calidad y comprensión de prompt, pero los modelos originales son pesados. En 8GB usa GGUF, NF4, FP8 u otras rutas low-VRAM con ComfyUI-GGUF.&lt;/p&gt;
&lt;p&gt;Consejos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Usa FLUX.1 schnell GGUF Q4/Q5.&lt;/li&gt;
&lt;li&gt;Reduce resolución o batch size.&lt;/li&gt;
&lt;li&gt;Usa &lt;code&gt;--lowvram&lt;/code&gt; en ComfyUI.&lt;/li&gt;
&lt;li&gt;No combines demasiados LoRA, ControlNet y hi-res fix.&lt;/li&gt;
&lt;li&gt;Vigila si la VRAM se libera al cambiar de workflow.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Puedes probar 1024px, pero no copies flujos pensados para GPUs de 16GB/24GB.&lt;/p&gt;
&lt;h2 id=&#34;multimodal-y-utilidades&#34;&gt;Multimodal y utilidades
&lt;/h2&gt;&lt;p&gt;Whisper large-v3 sirve para transcripción de audio. Para lotes largos, activa modo rendimiento y cuida la temperatura.&lt;/p&gt;
&lt;p&gt;Para un sistema de búsqueda de fotos, la RTX 4060 8GB es muy adecuada. CLIP, ViT y SigLIP no consumen VRAM extrema y procesan miles de imágenes con rapidez.&lt;/p&gt;
&lt;p&gt;Flujo típico:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Extraer embeddings con CLIP/ViT/SigLIP.&lt;/li&gt;
&lt;li&gt;Guardarlos en SQLite o una base vectorial.&lt;/li&gt;
&lt;li&gt;Buscar por texto o imagen similar.&lt;/li&gt;
&lt;li&gt;Usar un LLM pequeño para etiquetas, descripciones o resúmenes.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;combos-recomendados&#34;&gt;Combos recomendados
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Ollama / LM Studio
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+ Gemma 4 E4B cuantizado
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+ DeepSeek R1 Distill 7B/8B Q4
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+ Qwen 3 8B Q4
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Qwen 2.5 Coder 3B
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+ Qwen 2.5 Coder 7B Q4
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+ Continue / Cline / servidor local OpenAI-compatible
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ComfyUI / Forge
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+ SDXL
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+ SD 1.5
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+ FLUX.1 schnell GGUF Q4/Q5
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;CLIP / SigLIP / ViT
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+ SQLite / FAISS / LanceDB
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+ Gemma 4 E4B o Phi-4 Mini para organizar texto
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;errores-comunes&#34;&gt;Errores comunes
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Escenario&lt;/th&gt;
          &lt;th&gt;Consejo&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Modelos grandes&lt;/td&gt;
          &lt;td&gt;Evita 14B+ salvo que aceptes lentitud&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Cuantización&lt;/td&gt;
          &lt;td&gt;Empieza con &lt;code&gt;Q4_K_M&lt;/code&gt;; prueba Q5 si necesitas calidad&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;VRAM&lt;/td&gt;
          &lt;td&gt;Monitoriza con Task Manager o &lt;code&gt;nvidia-smi&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Temperatura&lt;/td&gt;
          &lt;td&gt;Usa modo rendimiento para imagen y lotes&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Resolución&lt;/td&gt;
          &lt;td&gt;Empieza con 768px o una imagen 1024px&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Navegador&lt;/td&gt;
          &lt;td&gt;Cierra pestañas pesadas en GPU&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Driver&lt;/td&gt;
          &lt;td&gt;Mantén NVIDIA actualizado&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Workflows&lt;/td&gt;
          &lt;td&gt;No copies flujos ComfyUI de 16GB/24GB directamente&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;mi-recomendación&#34;&gt;Mi recomendación
&lt;/h2&gt;&lt;p&gt;Un portátil RTX 4060 8GB es una plataforma local de entrada con buena relación coste/rendimiento. Encaja con LLM 3B-8B, modelos pequeños de código, SDXL, SD 1.5, FLUX cuantizado, Whisper, búsqueda vectorial de imágenes y gestión local de fotos.&lt;/p&gt;
&lt;p&gt;No encaja bien con uso prolongado de 14B/32B, modelos grandes sin cuantizar, FLUX por lotes de alta resolución, generación de video grande o muchos modelos residentes a la vez.&lt;/p&gt;
&lt;p&gt;Para búsqueda de fotos, usa la GPU para extracción CLIP/SigLIP y etiquetado con modelos pequeños, y guarda vectores en SQLite, FAISS o LanceDB.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://deepmind.google/models/gemma/gemma-4/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Google DeepMind: Gemma 4&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/google/gemma-4-E4B&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;google/gemma-4-E4B&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://arxiv.org/abs/2501.12948&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Paper de DeepSeek-R1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://comfyui-wiki.com/en/tutorial/advanced/image/flux/flux-1-dev-t2i&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Guía ComfyUI FLUX.1 GGUF&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/vava22684/FLUX.1-schnell-gguf&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;FLUX.1 schnell GGUF&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>24 consejos de Claude Code: modo plan, rewind, CLAUDE.md, Skills, Agents y plugins</title>
        <link>https://knightli.com/es/2026/05/08/claude-code-24-tips-plan-rewind-skills-agents/</link>
        <pubDate>Fri, 08 May 2026 08:54:14 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/08/claude-code-24-tips-plan-rewind-skills-agents/</guid>
        <description>&lt;p&gt;Claude Code no es solo una caja de chat. Se parece más a un Agent de programación que puede entrar en un directorio de proyecto, leer y escribir archivos, ejecutar comandos y mantener contexto.&lt;/p&gt;
&lt;p&gt;Si solo le das un requisito y esperas código, pronto aparecen problemas: el plan no queda claro, los permisos se repiten, el contexto crece, el resultado no convence, no sabes cómo volver atrás y no hay un lugar estable para reglas del proyecto.&lt;/p&gt;
&lt;p&gt;Estos son consejos prácticos para quienes empiezan con Claude Code.&lt;/p&gt;
&lt;h2 id=&#34;empieza-dentro-del-directorio-del-proyecto&#34;&gt;Empieza dentro del directorio del proyecto
&lt;/h2&gt;&lt;p&gt;Claude Code funciona mejor cuando se inicia dentro del directorio del proyecto, no desde una terminal cualquiera.&lt;/p&gt;
&lt;p&gt;Crea una carpeta de proyecto, entra en ella, abre la línea de comandos e inicia Claude Code:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si al entrar por primera vez pregunta si confías en la carpeta actual, confirma antes de seguir. Así podrá leer archivos, crear archivos y ejecutar operaciones alrededor del proyecto.&lt;/p&gt;
&lt;p&gt;Una práctica sencilla es pedirle que cree una web personal de fotógrafo. Es una tarea visual, permite inspeccionar el resultado y sirve para practicar generación de archivos, comandos, rewind y refactorización.&lt;/p&gt;
&lt;h2 id=&#34;usa-modo-plan-para-aclarar-la-dirección&#34;&gt;Usa modo plan para aclarar la dirección
&lt;/h2&gt;&lt;p&gt;Ante tareas complejas, Claude Code puede entrar en modo plan. Su función es discutir requisitos, dividir pasos y pedir aprobación antes de ejecutar.&lt;/p&gt;
&lt;p&gt;Tras escribir un plan, suelen aparecer opciones como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Aprobar el plan y permitir automáticamente herramientas de edición posteriores.&lt;/li&gt;
&lt;li&gt;Aprobar el plan, pero pedir confirmación manual para futuras ediciones.&lt;/li&gt;
&lt;li&gt;Pausar y seguir discutiendo el plan con Claude Code.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si la tarea está clara, aprueba y continúa. Si no, pídele que complete el plan: estilo de página, stack técnico, estructura de carpetas, interacciones y criterios de aceptación.&lt;/p&gt;
&lt;p&gt;El modo plan reduce retrabajo. Si el Agent empieza directamente, puede crear muchos archivos rápido; si la dirección era incorrecta, luego todo se vuelve más difícil de corregir.&lt;/p&gt;
&lt;h2 id=&#34;cambia-de-modo-con-shift--tab&#34;&gt;Cambia de modo con Shift + Tab
&lt;/h2&gt;&lt;p&gt;En Claude Code, &lt;code&gt;Shift + Tab&lt;/code&gt; permite cambiar entre modos de trabajo. Se usa a menudo para entrar en modo plan o para cambiar a un modo de aprobación automática de edición.&lt;/p&gt;
&lt;p&gt;Hábitos recomendados:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Proyecto nuevo, función nueva o cambio grande: primero modo plan.&lt;/li&gt;
&lt;li&gt;Cambio pequeño o arreglo claro: ejecutar directamente.&lt;/li&gt;
&lt;li&gt;Borrado, reemplazos masivos o instalación de dependencias: mantener confirmación humana.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En modo plan, Claude Code puede preguntar detalles del proyecto. Usa flechas para elegir opciones y Enter para confirmar. Después de enviar feedback, actualizará el plan.&lt;/p&gt;
&lt;h2 id=&#34;no-abras-todos-los-permisos&#34;&gt;No abras todos los permisos
&lt;/h2&gt;&lt;p&gt;Cuando Claude Code ejecuta comandos, edita archivos o inicia programas, puede pedir permisos.&lt;/p&gt;
&lt;p&gt;Opciones comunes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Permitir solo esta vez.&lt;/li&gt;
&lt;li&gt;Permitir el mismo tipo de comando en esta sesión.&lt;/li&gt;
&lt;li&gt;Rechazar o pausar.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para abrir una página local, iniciar un servidor de desarrollo o revisar archivos, aprueba según necesidad. Pero no uses durante mucho tiempo un modo de &amp;ldquo;permitir todo&amp;rdquo; solo por comodidad.&lt;/p&gt;
&lt;p&gt;La aprobación total automática solo tiene sentido en tareas de bajo riesgo, muy claras y con respaldo Git. En el uso diario, conserva confirmación humana para borrar, sobrescribir carpetas, instalar dependencias, usar red, hacer commits o ejecutar scripts.&lt;/p&gt;
&lt;h2 id=&#34;ejecuta-comandos-locales-en-modo-terminal&#34;&gt;Ejecuta comandos locales en modo terminal
&lt;/h2&gt;&lt;p&gt;Claude Code puede entrar en modo de comandos de terminal y ejecutar comandos locales.&lt;/p&gt;
&lt;p&gt;Por ejemplo, después de generar una página, puedes abrir un archivo HTML con:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;start index.html
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;start&lt;/code&gt; es un comando de Windows para abrir archivos. Es más rápido que buscar el archivo manualmente.&lt;/p&gt;
&lt;p&gt;El modo terminal sirve para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Abrir páginas generadas.&lt;/li&gt;
&lt;li&gt;Ver contenido de directorios.&lt;/li&gt;
&lt;li&gt;Iniciar servidores locales.&lt;/li&gt;
&lt;li&gt;Ejecutar pruebas o builds.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pero los comandos de alto riesgo siguen requiriendo cuidado: borrado recursivo, mover directorios, sobrescrituras masivas y cambios de entorno.&lt;/p&gt;
&lt;h2 id=&#34;usa-rewind-cuando-el-resultado-se-desvía&#34;&gt;Usa rewind cuando el resultado se desvía
&lt;/h2&gt;&lt;p&gt;Si la página o el código que hizo Claude Code no es lo que quieres y cada corrección lo empeora, usa rewind temprano.&lt;/p&gt;
&lt;p&gt;Rewind puede devolver conversación o código a un punto anterior. Opciones comunes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Revertir código y conversación.&lt;/li&gt;
&lt;li&gt;Revertir solo conversación.&lt;/li&gt;
&lt;li&gt;Revertir solo código.&lt;/li&gt;
&lt;li&gt;Comprimir contenido anterior como resumen.&lt;/li&gt;
&lt;li&gt;Cancelar.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cuando la dirección se desvió claramente, conviene volver código y conversación juntos. Así contexto y archivos regresan a un estado más limpio.&lt;/p&gt;
&lt;p&gt;Ten en cuenta que el rewind de Claude Code normalmente cubre archivos creados o modificados con herramientas internas. Archivos creados por comandos externos quizá no se reviertan por completo. Para proyectos importantes, usa Git.&lt;/p&gt;
&lt;h2 id=&#34;escribe-prompts-largos-en-un-editor&#34;&gt;Escribe prompts largos en un editor
&lt;/h2&gt;&lt;p&gt;No metas requisitos complejos en una sola línea.&lt;/p&gt;
&lt;p&gt;Si el sistema permite editar un prompt largo en un editor, úsalo, guarda y luego envíalo a Claude Code.&lt;/p&gt;
&lt;p&gt;Un prompt largo debería aclarar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Objetivo.&lt;/li&gt;
&lt;li&gt;Stack técnico.&lt;/li&gt;
&lt;li&gt;Qué no debe hacerse.&lt;/li&gt;
&lt;li&gt;Qué archivos deben conservarse.&lt;/li&gt;
&lt;li&gt;Cómo verificar el resultado.&lt;/li&gt;
&lt;li&gt;Criterios de aceptación.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por ejemplo, si quieres refactorizar una página HTML a un stack más moderno, no escribas solo &amp;ldquo;refactoriza&amp;rdquo;. Explica estructura por componentes, preservación visual, diseño responsive y pide ejecutar una comprobación de build.&lt;/p&gt;
&lt;h2 id=&#34;recupera-sesiones-después-de-salir&#34;&gt;Recupera sesiones después de salir
&lt;/h2&gt;&lt;p&gt;Si necesitas salir de Claude Code, hazlo normalmente. Luego vuelve al mismo directorio y arranca otra vez:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si el historial anterior no aparece, usa comandos de historial para ver sesiones recientes y cargar la sesión anterior.&lt;/p&gt;
&lt;p&gt;Esto sirve para continuar trabajo interrumpido. Pero no uses el historial como única memoria. Reglas del proyecto, stack, comandos comunes y notas deben estar en archivos del proyecto.&lt;/p&gt;
&lt;h2 id=&#34;guarda-reglas-del-proyecto-en-claudemd&#34;&gt;Guarda reglas del proyecto en CLAUDE.md
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; es un archivo de memoria importante para Claude Code. Normalmente está en la raíz del proyecto y registra reglas, stack, estructura de carpetas y restricciones de colaboración.&lt;/p&gt;
&lt;p&gt;Puedes inicializarlo con:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/init
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; sirve para registrar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Objetivos del proyecto.&lt;/li&gt;
&lt;li&gt;Stack técnico.&lt;/li&gt;
&lt;li&gt;Comandos de inicio, prueba y build.&lt;/li&gt;
&lt;li&gt;Estructura de directorios.&lt;/li&gt;
&lt;li&gt;Estilo de código.&lt;/li&gt;
&lt;li&gt;Acciones prohibidas.&lt;/li&gt;
&lt;li&gt;Reglas de commit y despliegue.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En cada conversación, Claude Code puede usar estas reglas como parte del contexto. Piensa en él como un manual del proyecto.&lt;/p&gt;
&lt;p&gt;Una prueba sencilla es añadir una regla evidente en &lt;code&gt;CLAUDE.md&lt;/code&gt; y luego preguntar algo. Si la respuesta sigue la regla, leyó la memoria del proyecto.&lt;/p&gt;
&lt;h2 id=&#34;usa--para-referenciar-archivos&#34;&gt;Usa @ para referenciar archivos
&lt;/h2&gt;&lt;p&gt;En el cuadro de entrada, &lt;code&gt;@&lt;/code&gt; permite seleccionar archivos o Agents y añadirlos al contexto actual.&lt;/p&gt;
&lt;p&gt;Sirve para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Hacer que Claude Code lea un archivo de configuración.&lt;/li&gt;
&lt;li&gt;Pedir cambios en una página concreta.&lt;/li&gt;
&lt;li&gt;Continuar según &lt;code&gt;CLAUDE.md&lt;/code&gt; u otro documento.&lt;/li&gt;
&lt;li&gt;Decir explícitamente &amp;ldquo;mira solo este archivo, no adivines la estructura&amp;rdquo;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Comparado con pegar el contenido del archivo, &lt;code&gt;@&lt;/code&gt; es más claro y menos propenso a omisiones.&lt;/p&gt;
&lt;h2 id=&#34;revisa-y-comprime-contexto&#34;&gt;Revisa y comprime contexto
&lt;/h2&gt;&lt;p&gt;Tras una conversación larga, el contexto crece. Si se vuelve demasiado largo, el modelo puede ralentizarse o ignorar detalles antiguos.&lt;/p&gt;
&lt;p&gt;Usa:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/context
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si el contexto ya es largo, comprime el historial:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/compact
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si aun así el efecto es malo, limpia el contexto actual:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/clear
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Después de limpiar, Claude Code todavía puede entender parte del proyecto mediante archivos, &lt;code&gt;CLAUDE.md&lt;/code&gt; y el directorio actual, pero no conserva todo el historial de conversación.&lt;/p&gt;
&lt;p&gt;Una regla útil: abre una conversación nueva al terminar una tarea, escribe reglas del proyecto en &lt;code&gt;CLAUDE.md&lt;/code&gt;, y no acumules discusión temporal para siempre en un solo chat.&lt;/p&gt;
&lt;h2 id=&#34;skills-convierte-flujos-fijos-en-instrucciones&#34;&gt;Skills: convierte flujos fijos en instrucciones
&lt;/h2&gt;&lt;p&gt;Skills son instrucciones reutilizables para Claude Code. No son prompts de una sola vez, sino flujos de tarea empaquetados.&lt;/p&gt;
&lt;p&gt;Por ejemplo, si generas informes semanales a menudo, crea una Skill de informe semanal con:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Información de entrada necesaria.&lt;/li&gt;
&lt;li&gt;Formato de salida.&lt;/li&gt;
&lt;li&gt;Tono y estructura.&lt;/li&gt;
&lt;li&gt;Qué debe conservarse.&lt;/li&gt;
&lt;li&gt;Qué no debe inventarse.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Las Skills suelen contener &lt;code&gt;name&lt;/code&gt;, &lt;code&gt;description&lt;/code&gt; e instrucciones detalladas. Al instalarlas en el directorio global de Skills, Claude Code puede reconocerlas y cargarlas cuando la tarea encaja.&lt;/p&gt;
&lt;p&gt;Candidatos adecuados:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Informes semanales.&lt;/li&gt;
&lt;li&gt;Plantillas de revisión de código.&lt;/li&gt;
&lt;li&gt;Organización de documentos.&lt;/li&gt;
&lt;li&gt;Procesamiento de imágenes por lotes.&lt;/li&gt;
&lt;li&gt;Artículos con formato fijo.&lt;/li&gt;
&lt;li&gt;Flujos de inicialización de proyectos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si copias el mismo prompt muchas veces, conviértelo en Skill.&lt;/p&gt;
&lt;h2 id=&#34;agents-delega-subtareas-a-asistentes-independientes&#34;&gt;Agents: delega subtareas a asistentes independientes
&lt;/h2&gt;&lt;p&gt;Agents no son lo mismo que Skills.&lt;/p&gt;
&lt;p&gt;Una Skill es un manual de instrucciones. Un Agent se parece más a un asistente independiente que trabaja fuera de la conversación principal y devuelve resultados.&lt;/p&gt;
&lt;p&gt;Su valor está en aislar contexto. Para una revisión de código, puedes crear un Agent de solo lectura que lea el proyecto y entregue un informe sin modificar archivos. Así no contamina la conversación principal y reduce riesgos.&lt;/p&gt;
&lt;p&gt;Al crear un Agent, considera:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si será de proyecto o de usuario.&lt;/li&gt;
&lt;li&gt;Si Claude Code debe generar la configuración.&lt;/li&gt;
&lt;li&gt;Qué herramientas puede usar.&lt;/li&gt;
&lt;li&gt;Qué modelo usará.&lt;/li&gt;
&lt;li&gt;Si guardará memoria.&lt;/li&gt;
&lt;li&gt;Si el prompt del Agent es claro.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para Agents de auditoría de código, da solo permisos de lectura. Primero que entregue un informe; luego la conversación principal decide si cambia código.&lt;/p&gt;
&lt;h2 id=&#34;plugins-empaqueta-skills-agents-mcp-y-hooks&#34;&gt;Plugins: empaqueta Skills, Agents, MCP y Hooks
&lt;/h2&gt;&lt;p&gt;Los plugins son paquetes de capacidad más completos. Pueden incluir:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Skills&lt;/li&gt;
&lt;li&gt;Agents&lt;/li&gt;
&lt;li&gt;MCP&lt;/li&gt;
&lt;li&gt;Hooks&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Frente a una Skill aislada, un plugin sirve mejor para capacidades de conjunto. Un plugin de diseño frontend puede empaquetar estética de página, reglas de layout, hábitos de componentes y Agents relacionados.&lt;/p&gt;
&lt;p&gt;Al instalar plugins, suele haber opciones:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Directorio de usuario, efectivo para todos los proyectos.&lt;/li&gt;
&lt;li&gt;Directorio de proyecto, compartido con el proyecto.&lt;/li&gt;
&lt;li&gt;Directorio local del proyecto, solo efectivo en tu ordenador.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para capacidades personales frecuentes, usa el directorio de usuario. Para acuerdos de equipo, usa el proyecto. Para pruebas temporales, usa instalación local.&lt;/p&gt;
&lt;h2 id=&#34;los-plugins-mejoran-tareas-concretas&#34;&gt;Los plugins mejoran tareas concretas
&lt;/h2&gt;&lt;p&gt;En generación de páginas frontend, un plugin suele ser más estable que un prompt desnudo.&lt;/p&gt;
&lt;p&gt;Por ejemplo, para &amp;ldquo;crear una web personal de fotógrafo&amp;rdquo;, un prompt normal puede crear una página aceptable. Si usas explícitamente un plugin de diseño frontend, la estructura, jerarquía visual, espaciado, color y acabado suelen mejorar.&lt;/p&gt;
&lt;p&gt;Esto no reemplaza el criterio humano. Lo razonable es dejar que el plugin genere un primer borrador mejor y luego ajustar detalles manualmente.&lt;/p&gt;
&lt;h2 id=&#34;un-flujo-de-trabajo-más-estable&#34;&gt;Un flujo de trabajo más estable
&lt;/h2&gt;&lt;p&gt;Combinando todo lo anterior, queda un flujo más estable:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Inicia &lt;code&gt;claude&lt;/code&gt; dentro del directorio del proyecto.&lt;/li&gt;
&lt;li&gt;Discute requisitos primero en modo plan.&lt;/li&gt;
&lt;li&gt;Confirma stack y criterios de aceptación antes de aprobar.&lt;/li&gt;
&lt;li&gt;Mantén confirmación manual para acciones de alto riesgo.&lt;/li&gt;
&lt;li&gt;Usa modo terminal para previsualización y pruebas.&lt;/li&gt;
&lt;li&gt;Usa rewind cuando el resultado se desvíe.&lt;/li&gt;
&lt;li&gt;Escribe reglas en &lt;code&gt;CLAUDE.md&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Revisa y comprime contexto en conversaciones largas.&lt;/li&gt;
&lt;li&gt;Convierte flujos repetidos en Skills.&lt;/li&gt;
&lt;li&gt;Delega inspección, investigación y análisis a Agents de solo lectura.&lt;/li&gt;
&lt;li&gt;Usa plugins para tareas de dominio específico.&lt;/li&gt;
&lt;li&gt;Mantén puntos de commit Git en proyectos importantes.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Así Claude Code será mucho más estable que enviar una frase y esperar generación.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;La eficiencia de Claude Code no viene solo del modelo, sino también del control del flujo.&lt;/p&gt;
&lt;p&gt;El modo plan define la dirección, los permisos controlan el riesgo, rewind reduce retrabajo, &lt;code&gt;CLAUDE.md&lt;/code&gt; guarda reglas del proyecto, &lt;code&gt;/context&lt;/code&gt;, &lt;code&gt;/compact&lt;/code&gt; y &lt;code&gt;/clear&lt;/code&gt; gestionan contexto, Skills reutilizan flujos, Agents aíslan subtareas y plugins empaquetan capacidades completas.&lt;/p&gt;
&lt;p&gt;La mejor forma de usar Claude Code es dejar que avance dentro de límites claros, no entregarle todo el proyecto de una vez.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Claude Opus 4.7, Sonnet 4.6 y Haiku 4.5: diferencias y guía para elegir modelo</title>
        <link>https://knightli.com/es/2026/05/08/anthropic-claude-model-lineup/</link>
        <pubDate>Fri, 08 May 2026 08:19:03 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/08/anthropic-claude-model-lineup/</guid>
        <description>&lt;p&gt;Los modelos grandes principales de Anthropic evolucionan sobre todo a través de la serie &lt;code&gt;Claude&lt;/code&gt;. A mayo de 2026, la línea principal de Claude ya está en la etapa 4.x, pero mantiene una estructura de tres niveles: &lt;code&gt;Opus&lt;/code&gt; se centra en la máxima capacidad, &lt;code&gt;Sonnet&lt;/code&gt; equilibra rendimiento y costo, y &lt;code&gt;Haiku&lt;/code&gt; prioriza velocidad y relación costo-beneficio.&lt;/p&gt;
&lt;p&gt;Si solo quieres una regla rápida para elegir, recuerda esto:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Para el razonamiento más complejo y pesado, y para agentic coding: mira primero &lt;code&gt;Claude Opus 4.7&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Para la mayoría de escenarios de desarrollo, escritura, análisis y API empresariales: empieza por &lt;code&gt;Claude Sonnet 4.6&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Para tareas de alta concurrencia, baja latencia y sensibilidad al costo: considera &lt;code&gt;Claude Haiku 4.5&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;modelos-principales-actuales&#34;&gt;Modelos principales actuales
&lt;/h2&gt;&lt;p&gt;Según la documentación oficial de modelos de Anthropic, los modelos principales actuales de Claude pueden entenderse así.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Modelo&lt;/th&gt;
          &lt;th&gt;Posicionamiento&lt;/th&gt;
          &lt;th&gt;Escenarios adecuados&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Claude Opus 4.7&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;El modelo general disponible más potente actualmente, orientado a razonamiento complejo y agentic coding&lt;/td&gt;
          &lt;td&gt;Refactorización de grandes bases de código, tareas de varios pasos, análisis estratégico complejo, trabajos que requieren mayor consistencia&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Claude Sonnet 4.6&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;El punto de equilibrio entre velocidad, capacidad y costo, con una ventana de contexto de 1 millón de token&lt;/td&gt;
          &lt;td&gt;Generación de código, análisis de documentos largos, trabajo de conocimiento empresarial, desarrollo de Agent, tareas diarias de producción de alta calidad&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Claude Haiku 4.5&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;El nivel de modelo pequeño más rápido y de menor costo, pero aún con capacidades cercanas a modelos de frontera&lt;/td&gt;
          &lt;td&gt;Conversación en tiempo real, soporte al cliente, clasificación por lotes, colaboración simple con código, llamadas API de alta concurrencia&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Aquí conviene prestar atención a dos detalles de nombres.&lt;/p&gt;
&lt;p&gt;Primero, el nombre oficial es &lt;code&gt;Claude Haiku 4.5&lt;/code&gt;, no &lt;code&gt;Claude 4.5 Haiku&lt;/code&gt;. Segundo, &lt;code&gt;Claude Mythos Preview&lt;/code&gt; no es un modelo principal disponible para usuarios comunes o desarrolladores. Es una vista previa de investigación controlada relacionada con Project Glasswing, orientada principalmente a flujos defensivos de ciberseguridad, y no debería mezclarse con la selección habitual de modelos Claude.&lt;/p&gt;
&lt;h2 id=&#34;opus-para-los-problemas-más-difíciles&#34;&gt;Opus: para los problemas más difíciles
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Opus&lt;/code&gt; es el nivel que Anthropic usa para sus modelos más potentes. El punto de &lt;code&gt;Claude Opus 4.7&lt;/code&gt; no es ser barato ni ser el más rápido, sino ser más adecuado para tareas complejas, de varios pasos, que requieren verificación repetida.&lt;/p&gt;
&lt;p&gt;Encaja mejor en estas situaciones:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cambios grandes de código en muchos archivos.&lt;/li&gt;
&lt;li&gt;Refactorización de sistemas complejos y razonamiento arquitectónico.&lt;/li&gt;
&lt;li&gt;Tareas Agent de cadena larga.&lt;/li&gt;
&lt;li&gt;Trabajo que requiere mayor comprensión visual, comprensión documental y planificación de varias rondas.&lt;/li&gt;
&lt;li&gt;Tareas de análisis empresarial donde el costo del error es alto.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si el costo de que una tarea falle una vez es alto, o si quieres que el modelo dedique más tiempo a entender el contexto antes de actuar, normalmente vale más la pena probar &lt;code&gt;Opus&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;sonnet-el-punto-de-partida-predeterminado-para-la-mayoría&#34;&gt;Sonnet: el punto de partida predeterminado para la mayoría
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Claude Sonnet 4.6&lt;/code&gt; es un modelo más adecuado como entrada predeterminada. Su posicionamiento no es ser un &amp;ldquo;Opus de gama baja&amp;rdquo;, sino poner razonamiento, programación, comprensión visual, contexto largo y agent planning suficientemente fuertes dentro de un perfil de costo y velocidad más controlable.&lt;/p&gt;
&lt;p&gt;Para desarrolladores, el valor de &lt;code&gt;Sonnet 4.6&lt;/code&gt; está principalmente en tres puntos:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Puede manejar contextos muy largos, por lo que sirve para bases de código, contratos, informes o varios documentos.&lt;/li&gt;
&lt;li&gt;Es más fácil usarlo como modelo habitual en Claude Code, API y escenarios empresariales.&lt;/li&gt;
&lt;li&gt;Cuesta menos que Opus, así que encaja mejor con el uso frecuente.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si no sabes con qué modelo Claude empezar, normalmente puedes empezar por &lt;code&gt;Claude Sonnet 4.6&lt;/code&gt;. Solo cuando la tarea necesite claramente más capacidad conviene cambiar a &lt;code&gt;Opus&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;haiku-cuando-importan-más-la-velocidad-y-el-costo&#34;&gt;Haiku: cuando importan más la velocidad y el costo
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Claude Haiku 4.5&lt;/code&gt; es el nivel de modelo pequeño, pero no debe entenderse simplemente como un &amp;ldquo;modelo débil&amp;rdquo;. Anthropic lo posiciona como rápido y de bajo costo, manteniendo al mismo tiempo capacidades cercanas a modelos de frontera.&lt;/p&gt;
&lt;p&gt;Es adecuado para estos escenarios:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Chat en tiempo real y bots de soporte al cliente.&lt;/li&gt;
&lt;li&gt;Clasificación masiva de textos cortos.&lt;/li&gt;
&lt;li&gt;Llamadas API de baja latencia.&lt;/li&gt;
&lt;li&gt;Cambios simples de código y prototipos rápidos.&lt;/li&gt;
&lt;li&gt;Ejecución de subtareas en flujos con múltiples Agent.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si la tarea es clara, el contexto no es complejo y el rendimiento por volumen importa, &lt;code&gt;Haiku&lt;/code&gt; suele ser más razonable que usar a ciegas un modelo más grande.&lt;/p&gt;
&lt;h2 id=&#34;capacidades-de-herramientas-de-claude&#34;&gt;Capacidades de herramientas de Claude
&lt;/h2&gt;&lt;p&gt;La serie Claude no es solo un conjunto de modelos de chat. Anthropic ahora integra sus capacidades de modelo en varios productos y herramientas para desarrolladores.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Claude Code&lt;/code&gt; es una herramienta de programación de línea de comandos para desarrolladores. Puede leer bases de código, editar archivos, ejecutar comandos y correr pruebas, por lo que sirve para avanzar de forma continua en tareas de ingeniería. Su experiencia depende mucho de la comprensión de código del modelo, la gestión de contexto y la estabilidad en llamadas a herramientas.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Computer Use&lt;/code&gt; permite que el modelo opere un entorno de escritorio mediante capturas de pantalla, mouse y teclado. Todavía debe usarse con cautela, y la documentación oficial también enfatiza ejecutarlo en un entorno aislado para evitar errores de operación o riesgos de seguridad.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Artifacts&lt;/code&gt; está más orientado a la experiencia dentro de la aplicación Claude. Puede colocar código, prototipos de páginas, gráficos o documentos en la interfaz para previsualizarlos e iterarlos. No es un modelo independiente, sino una parte de la forma de producto de Claude.&lt;/p&gt;
&lt;p&gt;En cuanto a expresiones como &amp;ldquo;Managed Agents&amp;rdquo; o &amp;ldquo;Agent autoevolutivos&amp;rdquo;, conviene ser prudente al escribir. Anthropic sí está reforzando Agent SDK, Claude Code, contexto largo, llamadas a herramientas y flujos empresariales, pero no hay que describirlo como si ya tuviera capacidades de autoevolución no controlada.&lt;/p&gt;
&lt;h2 id=&#34;formas-de-acceso&#34;&gt;Formas de acceso
&lt;/h2&gt;&lt;p&gt;Los usuarios comunes pueden usar Claude desde la web de &lt;code&gt;Claude.ai&lt;/code&gt; o desde aplicaciones móviles. Los distintos planes afectan los modelos disponibles, las cuotas y las funciones.&lt;/p&gt;
&lt;p&gt;Los desarrolladores suelen tener varias formas de integración:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Anthropic Console y Claude API.&lt;/li&gt;
&lt;li&gt;Amazon Bedrock.&lt;/li&gt;
&lt;li&gt;Google Cloud Vertex AI.&lt;/li&gt;
&lt;li&gt;Microsoft Foundry.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Los modelos disponibles, la ventana de contexto, los precios y el soporte regional pueden cambiar. Antes de desarrollar, conviene basarse en la documentación oficial de modelos de Anthropic y en las páginas de la plataforma en la nube correspondiente.&lt;/p&gt;
&lt;h2 id=&#34;cómo-elegir&#34;&gt;Cómo elegir
&lt;/h2&gt;&lt;p&gt;En el uso real, no hace falta perseguir el modelo más potente desde el principio. Una mejor forma es dividir la elección según el costo de la tarea.&lt;/p&gt;
&lt;p&gt;Para escritura diaria, generación de código, análisis de documentos largos, organización de conocimiento y la mayoría de prototipos Agent, empieza con &lt;code&gt;Claude Sonnet 4.6&lt;/code&gt;. Normalmente es el mejor punto de partida por relación costo-beneficio y capacidad general.&lt;/p&gt;
&lt;p&gt;Si la tarea necesita razonamiento complejo más fuerte, cambios de ingeniería entre archivos, planificación de cadena larga o mayor confiabilidad, cambia a &lt;code&gt;Claude Opus 4.7&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Si la tarea es simple, de gran volumen y sensible a la latencia, como clasificación, resumen, atención al cliente o procesamiento por lotes, incluye &lt;code&gt;Claude Haiku 4.5&lt;/code&gt; entre los candidatos.&lt;/p&gt;
&lt;p&gt;La línea de modelos Claude no es simplemente una historia de &amp;ldquo;una nueva versión reemplaza a la anterior&amp;rdquo;. Es una caja de herramientas organizada por dificultad de la tarea, velocidad y costo. Elegir el modelo correcto importa más que usar a ciegas el modelo más caro.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Anthropic Models Overview: &lt;a class=&#34;link&#34; href=&#34;https://platform.claude.com/docs/en/about-claude/models/overview&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://platform.claude.com/docs/en/about-claude/models/overview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Introducing Claude Opus 4.7: &lt;a class=&#34;link&#34; href=&#34;https://www.anthropic.com/news/claude-opus-4-7&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.anthropic.com/news/claude-opus-4-7&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Introducing Claude Sonnet 4.6: &lt;a class=&#34;link&#34; href=&#34;https://www.anthropic.com/news/claude-sonnet-4-6&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.anthropic.com/news/claude-sonnet-4-6&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Introducing Claude Haiku 4.5: &lt;a class=&#34;link&#34; href=&#34;https://www.anthropic.com/news/claude-haiku-4-5&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.anthropic.com/news/claude-haiku-4-5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Anthropic Computer Use Tool: &lt;a class=&#34;link&#34; href=&#34;https://docs.anthropic.com/en/docs/build-with-claude/computer-use&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://docs.anthropic.com/en/docs/build-with-claude/computer-use&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Diferencias entre GPT-5.5, GPT-5.5 Instant, GPT-5.5 Thinking y GPT-5.5 Pro</title>
        <link>https://knightli.com/es/2026/05/07/gpt-5-5-instant-thinking-pro-differences/</link>
        <pubDate>Thu, 07 May 2026 21:59:33 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/07/gpt-5-5-instant-thinking-pro-differences/</guid>
        <description>&lt;p&gt;OpenAI ahora divide GPT-5.5 en niveles de uso más claros: &lt;code&gt;Instant&lt;/code&gt;, &lt;code&gt;Thinking&lt;/code&gt; y &lt;code&gt;Pro&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Muchas personas mezclan &lt;code&gt;GPT-5.5&lt;/code&gt;, &lt;code&gt;GPT-5.5 Instant&lt;/code&gt;, &lt;code&gt;GPT-5.5 Thinking&lt;/code&gt; y &lt;code&gt;GPT-5.5 Pro&lt;/code&gt;. La explicación corta es esta: &lt;code&gt;GPT-5.5&lt;/code&gt; es el nombre general de esta generación de capacidades del modelo. &lt;code&gt;Instant&lt;/code&gt; es el modelo rápido para el día a día, &lt;code&gt;Thinking&lt;/code&gt; es el modo de razonamiento profundo y &lt;code&gt;Pro&lt;/code&gt; es un modo más pesado orientado a investigación.&lt;/p&gt;
&lt;h2 id=&#34;comparación-rápida&#34;&gt;Comparación rápida
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Nombre&lt;/th&gt;
          &lt;th&gt;Qué es&lt;/th&gt;
          &lt;th&gt;Casos adecuados&lt;/th&gt;
          &lt;th&gt;Velocidad/coste&lt;/th&gt;
          &lt;th&gt;Disponibilidad&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.5&lt;/td&gt;
          &lt;td&gt;Nombre del modelo/familia principal GPT-5.5; en ChatGPT suele corresponder a la orientación de capacidades de GPT-5.5 Thinking&lt;/td&gt;
          &lt;td&gt;Trabajo complejo, código, investigación, análisis, uso de herramientas&lt;/td&gt;
          &lt;td&gt;Más pesado que Instant, pero más capaz&lt;/td&gt;
          &lt;td&gt;Plus, Pro, Business, Enterprise&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.5 Instant&lt;/td&gt;
          &lt;td&gt;Modelo rápido predeterminado que reemplaza a GPT-5.3 Instant&lt;/td&gt;
          &lt;td&gt;Preguntas diarias, escritura, resúmenes, código ligero, consultas rápidas&lt;/td&gt;
          &lt;td&gt;El más rápido y eficiente en cuota&lt;/td&gt;
          &lt;td&gt;Despliegue gradual para todos los usuarios de ChatGPT&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.5 Thinking&lt;/td&gt;
          &lt;td&gt;Modo de razonamiento profundo&lt;/td&gt;
          &lt;td&gt;Problemas difíciles, análisis de contexto largo, código complejo, investigación, tareas con muchos documentos&lt;/td&gt;
          &lt;td&gt;Más lento, pero con razonamiento más estable&lt;/td&gt;
          &lt;td&gt;Los usuarios de pago pueden seleccionarlo manualmente&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.5 Pro&lt;/td&gt;
          &lt;td&gt;Modo de investigación de mayor intensidad&lt;/td&gt;
          &lt;td&gt;Tareas de alto riesgo o alta precisión: derecho, negocios, educación, ciencia de datos, análisis científico&lt;/td&gt;
          &lt;td&gt;El más lento y pesado, orientado a calidad&lt;/td&gt;
          &lt;td&gt;Pro, Business, Enterprise, Edu&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Si solo quieres recordar una regla:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tareas rápidas del día a día&lt;/strong&gt;: usa &lt;code&gt;GPT-5.5 Instant&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Razonamiento complejo y análisis de código&lt;/strong&gt;: usa &lt;code&gt;GPT-5.5 Thinking&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Trabajo especialmente difícil, importante o que requiere más rigor&lt;/strong&gt;: usa &lt;code&gt;GPT-5.5 Pro&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;qué-es-gpt-55&#34;&gt;Qué es GPT-5.5
&lt;/h2&gt;&lt;p&gt;Cuando se dice &lt;code&gt;GPT-5.5&lt;/code&gt; sin más, normalmente se habla de las capacidades generales de la generación GPT-5.5, no de un botón fijo.&lt;/p&gt;
&lt;p&gt;OpenAI posiciona GPT-5.5 como un modelo más fuerte para trabajo real. Sus mejoras se centran en:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;agentic coding;&lt;/li&gt;
&lt;li&gt;depuración de código complejo;&lt;/li&gt;
&lt;li&gt;investigación y síntesis de materiales;&lt;/li&gt;
&lt;li&gt;generación de documentos, hojas de cálculo y presentaciones;&lt;/li&gt;
&lt;li&gt;uso de computadora y trabajo entre herramientas;&lt;/li&gt;
&lt;li&gt;razonamiento sostenido y autocomprobación en tareas largas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En ChatGPT, el usuario no suele ver un botón genérico &lt;code&gt;GPT-5.5&lt;/code&gt;, sino opciones más concretas: &lt;code&gt;Instant&lt;/code&gt;, &lt;code&gt;Thinking&lt;/code&gt; y &lt;code&gt;Pro&lt;/code&gt;. Por eso, si alguien dice &amp;ldquo;estoy usando GPT-5.5&amp;rdquo;, conviene preguntar: ¿Instant, Thinking o Pro?&lt;/p&gt;
&lt;h2 id=&#34;gpt-55-instant-predeterminado-rápido-y-diario&#34;&gt;GPT-5.5 Instant: predeterminado, rápido y diario
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;GPT-5.5 Instant&lt;/code&gt; es el nuevo modelo rápido predeterminado. En la comunicación oficial de OpenAI, empieza a reemplazar a &lt;code&gt;GPT-5.3 Instant&lt;/code&gt;, se convierte en el modelo predeterminado de ChatGPT y se ofrece en la API como &lt;code&gt;chat-latest&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Es adecuado para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;conversaciones diarias;&lt;/li&gt;
&lt;li&gt;preguntas rápidas;&lt;/li&gt;
&lt;li&gt;escritura normal;&lt;/li&gt;
&lt;li&gt;resumir artículos;&lt;/li&gt;
&lt;li&gt;reescribir correos;&lt;/li&gt;
&lt;li&gt;explicar código ligero;&lt;/li&gt;
&lt;li&gt;tablas y listas sencillas;&lt;/li&gt;
&lt;li&gt;tareas que no requieren razonamiento prolongado.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La ventaja principal de Instant es la velocidad y su disponibilidad predeterminada. No necesitas seleccionar manualmente un modo de razonamiento cada vez, ni pagar más latencia por preguntas normales.&lt;/p&gt;
&lt;p&gt;También cambia el estilo predeterminado: OpenAI destaca que GPT-5.5 Instant responde de forma más clara y concisa, con mayor personalización. Para usuarios normales, eso lo hace más adecuado como modelo abierto todo el día.&lt;/p&gt;
&lt;p&gt;La advertencia es que Instant no es el modo más potente. Para matemáticas complejas, código largo, diseño de arquitectura, análisis de múltiples archivos o investigación seria, puede cambiar automáticamente a Thinking, o quizá tengas que seleccionar Thinking manualmente.&lt;/p&gt;
&lt;h2 id=&#34;gpt-55-thinking-el-modo-principal-para-tareas-complejas&#34;&gt;GPT-5.5 Thinking: el modo principal para tareas complejas
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;GPT-5.5 Thinking&lt;/code&gt; es el modo de razonamiento más adecuado para tareas complejas.&lt;/p&gt;
&lt;p&gt;Encaja con:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;depuración de código;&lt;/li&gt;
&lt;li&gt;diseño de arquitectura;&lt;/li&gt;
&lt;li&gt;razonamiento de varios pasos;&lt;/li&gt;
&lt;li&gt;análisis de documentos largos;&lt;/li&gt;
&lt;li&gt;organización de materiales académicos;&lt;/li&gt;
&lt;li&gt;simulación de escenarios de negocio;&lt;/li&gt;
&lt;li&gt;explicación de análisis de datos;&lt;/li&gt;
&lt;li&gt;tareas que requieren comparación, ponderación y verificación.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thinking dedica más tiempo al razonamiento. El Help Center de OpenAI indica que, cuando GPT-5.5 Thinking o GPT-5.5 Pro empiezan a razonar, pueden mostrar primero un breve preamble explicando lo que planean hacer. El usuario también puede añadir instrucciones mientras el modelo sigue thinking para ajustar la dirección antes.&lt;/p&gt;
&lt;p&gt;En ChatGPT, al elegir Thinking manualmente, también se puede ajustar el thinking time. Según la explicación oficial, los usuarios Plus y Business pueden usar &lt;code&gt;Standard&lt;/code&gt; y &lt;code&gt;Extended&lt;/code&gt;; los usuarios Pro tienen además opciones como &lt;code&gt;Light&lt;/code&gt; y &lt;code&gt;Heavy&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Mi interpretación: Thinking es la opción predeterminada para trabajar en serio. Si la tarea implica varios pasos, contexto largo o mayores requisitos de precisión, es más adecuado que Instant.&lt;/p&gt;
&lt;h2 id=&#34;gpt-55-pro-nivel-de-investigación-más-pesado-y-más-riguroso&#34;&gt;GPT-5.5 Pro: nivel de investigación, más pesado y más riguroso
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;GPT-5.5 Pro&lt;/code&gt; es el modo para problemas más difíciles y trabajos de mayor precisión.&lt;/p&gt;
&lt;p&gt;Es adecuado para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;análisis de materiales legales;&lt;/li&gt;
&lt;li&gt;investigación de negocio;&lt;/li&gt;
&lt;li&gt;educación y diseño curricular;&lt;/li&gt;
&lt;li&gt;ciencia de datos;&lt;/li&gt;
&lt;li&gt;síntesis de literatura científica;&lt;/li&gt;
&lt;li&gt;revisión profunda antes de decisiones de alto riesgo;&lt;/li&gt;
&lt;li&gt;tareas con múltiples documentos, múltiples restricciones y múltiples rondas de verificación.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En el anuncio de GPT-5.5, OpenAI señala que los primeros evaluadores consideraron que GPT-5.5 Pro mejoraba frente a GPT-5.4 Pro en completitud, estructura, precisión, relevancia y utilidad, especialmente en negocios, derecho, educación y ciencia de datos.&lt;/p&gt;
&lt;p&gt;La desventaja también es clara: Pro es más lento y pesado, y no está pensado para cada pregunta pequeña. Se parece más a un revisor experto o socio de investigación que a una entrada diaria de chat.&lt;/p&gt;
&lt;p&gt;Además, Pro tiene limitaciones específicas de herramientas. El Help Center de OpenAI indica que Apps, Memory, Canvas y generación de imágenes no están disponibles en Pro. Si tu tarea necesita esas funciones de ChatGPT, quizá sea mejor usar Instant o Thinking.&lt;/p&gt;
&lt;h2 id=&#34;diferencias-de-soporte-de-herramientas&#34;&gt;Diferencias de soporte de herramientas
&lt;/h2&gt;&lt;p&gt;Según el Help Center de OpenAI, &lt;code&gt;GPT-5.5 Instant&lt;/code&gt; y &lt;code&gt;GPT-5.5 Thinking&lt;/code&gt; admiten herramientas comunes de ChatGPT, entre ellas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Web search;&lt;/li&gt;
&lt;li&gt;Data analysis;&lt;/li&gt;
&lt;li&gt;Image analysis;&lt;/li&gt;
&lt;li&gt;File analysis;&lt;/li&gt;
&lt;li&gt;Canvas;&lt;/li&gt;
&lt;li&gt;Image generation;&lt;/li&gt;
&lt;li&gt;Memory;&lt;/li&gt;
&lt;li&gt;Custom Instructions.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;GPT-5.5 Pro&lt;/code&gt; se orienta más al razonamiento de investigación, pero no todas las herramientas de ChatGPT están disponibles. Presta especial atención:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Apps no está disponible;&lt;/li&gt;
&lt;li&gt;Memory no está disponible;&lt;/li&gt;
&lt;li&gt;Canvas no está disponible;&lt;/li&gt;
&lt;li&gt;la generación de imágenes no está disponible.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por eso, al elegir modelo, no basta con preguntar &amp;ldquo;cuál es más inteligente&amp;rdquo;; también hay que mirar qué herramientas necesitas.&lt;/p&gt;
&lt;h2 id=&#34;diferencias-de-ventana-de-contexto&#34;&gt;Diferencias de ventana de contexto
&lt;/h2&gt;&lt;p&gt;El Help Center de OpenAI describe aproximadamente así las ventanas de contexto en ChatGPT:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Modo&lt;/th&gt;
          &lt;th&gt;Ventana de contexto&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.5 Instant&lt;/td&gt;
          &lt;td&gt;Free: 16K; Plus/Business: 32K; Pro/Enterprise: 128K&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.5 Thinking&lt;/td&gt;
          &lt;td&gt;Normalmente 256K al seleccionarlo manualmente en planes de pago; hasta 400K en Pro&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Esto significa:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;para conversaciones normales y documentos cortos, Instant basta;&lt;/li&gt;
&lt;li&gt;para trabajo con múltiples archivos, investigación de varias rondas y análisis de bases de código largas, Thinking es más adecuado;&lt;/li&gt;
&lt;li&gt;para tareas especialmente largas, complejas y de alta precisión, los usuarios Pro pueden aprovechar más contexto y razonamiento más pesado.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;cómo-elegir&#34;&gt;Cómo elegir
&lt;/h2&gt;&lt;h3 id=&#34;preguntas-diarias&#34;&gt;Preguntas diarias
&lt;/h3&gt;&lt;p&gt;Usa &lt;code&gt;GPT-5.5 Instant&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Es rápido, suficientemente inteligente y adecuado para preguntar, escribir y editar de forma rápida.&lt;/p&gt;
&lt;h3 id=&#34;escribir-resumir-y-editar-correos&#34;&gt;Escribir, resumir y editar correos
&lt;/h3&gt;&lt;p&gt;Empieza con &lt;code&gt;GPT-5.5 Instant&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Si el artículo es largo, necesita reestructuración o requiere varias rondas de revisión, cambia a &lt;code&gt;GPT-5.5 Thinking&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;programación-y-depuración&#34;&gt;Programación y depuración
&lt;/h3&gt;&lt;p&gt;Para explicaciones simples de código, usa &lt;code&gt;Instant&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Para depurar múltiples archivos, diseñar arquitectura o analizar errores complejos, usa &lt;code&gt;Thinking&lt;/code&gt;. Para problemas de ingeniería muy difíciles y prolongados, considera &lt;code&gt;Pro&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;investigación-y-análisis-de-materiales&#34;&gt;Investigación y análisis de materiales
&lt;/h3&gt;&lt;p&gt;Para organizar materiales normales, usa &lt;code&gt;Thinking&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Para derecho, negocios, investigación científica y ciencia de datos, donde se necesita mayor precisión, &lt;code&gt;Pro&lt;/code&gt; es más adecuado.&lt;/p&gt;
&lt;h3 id=&#34;tareas-que-necesitan-generación-de-imágenes-canvas-o-memory&#34;&gt;Tareas que necesitan generación de imágenes, Canvas o Memory
&lt;/h3&gt;&lt;p&gt;Prioriza &lt;code&gt;Instant&lt;/code&gt; o &lt;code&gt;Thinking&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;No elijas &lt;code&gt;Pro&lt;/code&gt; por defecto, porque Pro no admite algunas herramientas de ChatGPT.&lt;/p&gt;
&lt;h2 id=&#34;conclusión-breve&#34;&gt;Conclusión breve
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;GPT-5.5 Instant&lt;/code&gt; es el modelo predeterminado diario: rápido, claro, eficiente en cuota y adecuado para la mayoría de tareas comunes.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.5 Thinking&lt;/code&gt; es el modo principal para tareas complejas: código, investigación, documentos largos, análisis y razonamiento de varios pasos.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.5 Pro&lt;/code&gt; es el modo de investigación de alta precisión: adecuado para tareas más difíciles, importantes y rigurosas, pero con más limitaciones de velocidad y herramientas.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT-5.5&lt;/code&gt; en sí es más bien el nombre general de esta generación. En la práctica, la elección real es si en ChatGPT seleccionas &lt;code&gt;Instant&lt;/code&gt;, &lt;code&gt;Thinking&lt;/code&gt; o &lt;code&gt;Pro&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;enlaces-relacionados&#34;&gt;Enlaces relacionados
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Anuncio de GPT-5.5 Instant: &lt;a class=&#34;link&#34; href=&#34;https://openai.com/index/gpt-5-5-instant/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://openai.com/index/gpt-5-5-instant/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Anuncio de GPT-5.5: &lt;a class=&#34;link&#34; href=&#34;https://openai.com/index/introducing-gpt-5-5/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://openai.com/index/introducing-gpt-5-5/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;GPT-5.5 in ChatGPT Help Center: &lt;a class=&#34;link&#34; href=&#34;https://help.openai.com/en/articles/11909943-gpt-53-and-gpt-55-in-chatgpt&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://help.openai.com/en/articles/11909943-gpt-53-and-gpt-55-in-chatgpt&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Pixelle-Video: un motor open source de IA para generar videos cortos a partir de un tema</title>
        <link>https://knightli.com/es/2026/05/07/pixelle-video-ai-short-video-engine/</link>
        <pubDate>Thu, 07 May 2026 20:25:17 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/07/pixelle-video-ai-short-video-engine/</guid>
        <description>&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/AIDC-AI/Pixelle-Video&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Pixelle-Video&lt;/a&gt; es un motor open source totalmente automatizado para generar videos cortos, creado por AIDC-AI. Su objetivo es directo: el usuario introduce un tema, y el sistema escribe automaticamente el guion, genera imagenes o videos con IA, crea narracion de voz, anade musica de fondo y renderiza el video final.&lt;/p&gt;
&lt;p&gt;Este tipo de herramienta es util para creacion masiva de videos cortos, explicadores de conocimiento, contenido talking-head, resumenes de novelas, videos de historia y cultura, y experimentos de self-media. No es un unico modelo text-to-video. Es una linea de produccion que conecta varias capacidades de IA.&lt;/p&gt;
&lt;h2 id=&#34;que-automatiza&#34;&gt;Que automatiza
&lt;/h2&gt;&lt;p&gt;El flujo por defecto de Pixelle-Video puede resumirse asi:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;introducir un tema o un guion fijo;&lt;/li&gt;
&lt;li&gt;usar un LLM para generar la narracion;&lt;/li&gt;
&lt;li&gt;planificar escenas y generar imagenes o clips de video;&lt;/li&gt;
&lt;li&gt;usar TTS para crear la narracion de voz;&lt;/li&gt;
&lt;li&gt;anadir musica de fondo;&lt;/li&gt;
&lt;li&gt;aplicar una plantilla de video y renderizar el resultado final.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;El README describe el flujo como &amp;ldquo;generacion de guion -&amp;gt; planificacion de imagenes -&amp;gt; procesamiento fotograma a fotograma -&amp;gt; composicion de video&amp;rdquo;. El diseno modular es claro: cada paso puede reemplazarse, ajustarse o conectarse a un flujo personalizado.&lt;/p&gt;
&lt;h2 id=&#34;funciones-principales&#34;&gt;Funciones principales
&lt;/h2&gt;&lt;p&gt;El proyecto cubre un conjunto bastante completo de capacidades:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;escritura de guion con IA: genera automaticamente narracion a partir de un tema;&lt;/li&gt;
&lt;li&gt;generacion de imagenes con IA: crea ilustraciones para cada linea o escena;&lt;/li&gt;
&lt;li&gt;generacion de video con IA: conecta con modelos de generacion de video como WAN 2.1;&lt;/li&gt;
&lt;li&gt;voz TTS: soporta Edge-TTS, Index-TTS y otras opciones;&lt;/li&gt;
&lt;li&gt;musica de fondo: usa BGM integrada o musica personalizada;&lt;/li&gt;
&lt;li&gt;multiples relaciones de aspecto: soporta formatos verticales, horizontales y otros tamanos de video;&lt;/li&gt;
&lt;li&gt;multiples modelos: conecta con GPT, Qwen, DeepSeek, Ollama y mas;&lt;/li&gt;
&lt;li&gt;flujos ComfyUI: usa workflows integrados o reemplaza pasos de imagen, TTS y generacion de video.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Las actualizaciones recientes tambien mencionan motion transfer, videos talking-head con humano digital, pipelines image-to-video, voces TTS multilingues, soporte RunningHub y un paquete todo-en-uno para Windows. El proyecto claramente esta avanzando mas alla de un simple script hacia una herramienta de creacion mas completa.&lt;/p&gt;
&lt;h2 id=&#34;instalacion-y-arranque&#34;&gt;Instalacion y arranque
&lt;/h2&gt;&lt;p&gt;Los usuarios de Windows pueden mirar primero el paquete oficial todo-en-uno. Esta disenado para reducir friccion de configuracion: no hace falta instalar manualmente Python, uv ni ffmpeg. Despues de extraer el paquete, ejecuta &lt;code&gt;start.bat&lt;/code&gt;, abre la interfaz web y configura las APIs necesarias y el servicio de generacion de imagenes.&lt;/p&gt;
&lt;p&gt;Para instalar desde codigo fuente, el README da este flujo basico:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/AIDC-AI/Pixelle-Video.git
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; Pixelle-Video
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;uv run streamlit run web/app.py
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;La ruta desde codigo fuente es adecuada para usuarios de macOS y Linux, y para cualquiera que quiera modificar plantillas, workflows o configuracion de servicios. Los requisitos principales son &lt;code&gt;uv&lt;/code&gt; y &lt;code&gt;ffmpeg&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;prioridades-de-configuracion&#34;&gt;Prioridades de configuracion
&lt;/h2&gt;&lt;p&gt;En el primer uso, lo importante no es pulsar &amp;ldquo;generate&amp;rdquo; inmediatamente. Lo importante es conectar bien las capacidades externas.&lt;/p&gt;
&lt;p&gt;La configuracion del LLM determina la calidad del guion. Puedes elegir modelos como Qwen, GPT, DeepSeek u Ollama, y luego rellenar API Key, Base URL y nombre del modelo. Si quieres minimizar costes, Ollama local es una opcion. Si quieres resultados mas estables, un modelo cloud suele ser mas sencillo.&lt;/p&gt;
&lt;p&gt;La configuracion de generacion de imagen y video determina la calidad visual. El proyecto soporta ComfyUI local y RunningHub. Los usuarios que entienden ComfyUI pueden colocar sus propios workflows bajo &lt;code&gt;workflows/&lt;/code&gt; para reemplazar el pipeline por defecto de imagen, video o TTS.&lt;/p&gt;
&lt;p&gt;La configuracion de plantillas determina la forma visual final. El proyecto organiza plantillas de video bajo &lt;code&gt;templates/&lt;/code&gt;, con reglas de nombres para plantillas estaticas, plantillas de imagen y plantillas de video. Para creadores, esto es mas practico que generar solo assets crudos, porque la salida es un video que puede previsualizarse y descargarse directamente.&lt;/p&gt;
&lt;h2 id=&#34;para-quien-es&#34;&gt;Para quien es
&lt;/h2&gt;&lt;p&gt;Pixelle-Video es especialmente adecuado para tres grupos:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Creadores de videos cortos&lt;/strong&gt; que quieren convertir ideas en borradores de video rapidamente.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Usuarios de herramientas AIGC&lt;/strong&gt; que quieren conectar LLMs, ComfyUI, TTS y composicion de video.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Desarrolladores y usuarios de automatizacion&lt;/strong&gt; que quieren modificar plantillas, workflows o integrar sus propios materiales y modelos.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si solo quieres hacer un unico video premium muy pulido, puede que no reemplace la edicion manual. Pero si quieres generar muchos explicadores, videos talking-head o videos de ciencia y educacion con una estructura consistente, su enfoque de pipeline tiene valor.&lt;/p&gt;
&lt;h2 id=&#34;puntos-a-tener-en-cuenta&#34;&gt;Puntos a tener en cuenta
&lt;/h2&gt;&lt;p&gt;El techo de este tipo de herramienta lo determinan varios eslabones de la cadena. Un modelo de guion debil produce contenido vacio; un modelo de imagen debil da visuales dispersos; un TTS poco natural hace que el video se sienta tosco; y una plantilla pobre debilita el resultado final.&lt;/p&gt;
&lt;p&gt;Por eso conviene empezar con un escenario fijo, por ejemplo un &amp;ldquo;explicador cientifico vertical de 60 segundos&amp;rdquo;. Fija primero el LLM, el estilo visual, la voz TTS, el BGM y la plantilla, y despues amplia a mas temas.&lt;/p&gt;
&lt;p&gt;El proyecto soporta una configuracion local gratuita, pero los setups locales suelen requerir GPU, configuracion de ComfyUI y archivos de modelos. Los usuarios sin entorno local de inferencia pueden reducir la dificultad usando un LLM cloud mas RunningHub, sin perder de vista el coste de uso.&lt;/p&gt;
&lt;h2 id=&#34;lectura-breve&#34;&gt;Lectura breve
&lt;/h2&gt;&lt;p&gt;Pixelle-Video es interesante no solo porque pueda &amp;ldquo;generar un video desde una frase&amp;rdquo;. Su valor real es que divide la produccion de videos cortos en modulos reemplazables: guion, visuales, voz, musica, plantillas y render. Para usuarios comunes, es una herramienta de video con IA de baja barrera. Para desarrolladores, se acerca mas a un framework hackeable de automatizacion de videos cortos.&lt;/p&gt;
&lt;p&gt;Si estas estudiando pipelines de videos cortos con IA, o quieres conectar ComfyUI, TTS, LLMs y renderizado con plantillas en un producto usable, Pixelle-Video merece probarse y diseccionarse.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>En qué se diferencian los mecanismos de memoria de ChatGPT, Claude Code y Gemini</title>
        <link>https://knightli.com/es/2026/05/07/chatgpt-claude-code-gemini-memory-comparison/</link>
        <pubDate>Thu, 07 May 2026 14:47:17 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/07/chatgpt-claude-code-gemini-memory-comparison/</guid>
        <description>&lt;p&gt;La &amp;ldquo;memoria&amp;rdquo; se está volviendo cada vez más importante en los productos de IA. Marca el paso de conversaciones puntuales a colaboración de largo plazo: ya no necesitas volver a explicar tu contexto, repetir tus preferencias ni pedir al modelo que entienda el mismo proyecto una y otra vez.&lt;/p&gt;
&lt;p&gt;Pero memoria no significa lo mismo en todos los productos. &lt;code&gt;ChatGPT&lt;/code&gt;, &lt;code&gt;Claude Code&lt;/code&gt; y &lt;code&gt;Gemini&lt;/code&gt; intentan ayudar a la IA a recordar más tiempo, pero sus objetivos, lugares de almacenamiento, transparencia y casos de uso son muy distintos.&lt;/p&gt;
&lt;p&gt;Al 7 de mayo de 2026, se pueden entender aproximadamente como tres tipos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ChatGPT se parece más a memoria de asistente personal.&lt;/li&gt;
&lt;li&gt;Claude Code se parece más a memoria de proyecto de ingeniería.&lt;/li&gt;
&lt;li&gt;Gemini se parece más a contexto del ecosistema Google.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;chatgpt-preferencias-de-largo-plazo-alrededor-de-la-persona&#34;&gt;ChatGPT: preferencias de largo plazo alrededor de la persona
&lt;/h2&gt;&lt;p&gt;La memoria de ChatGPT está diseñada principalmente para colaboración personal. Le importa quién eres, qué prefieres y en qué trabajas a lo largo del tiempo.&lt;/p&gt;
&lt;p&gt;OpenAI separa actualmente la memoria de ChatGPT en &lt;code&gt;saved memories&lt;/code&gt; y &lt;code&gt;chat history&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;saved memories&lt;/code&gt; son piezas importantes de información que ChatGPT guarda, como tu nombre, preferencias, objetivos, stack tecnológico habitual y hábitos de escritura. Puedes pedirle explícitamente que recuerde algo, y también puede guardar información de una conversación cuando cree que será útil más adelante.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;chat history&lt;/code&gt; permite a ChatGPT consultar conversaciones anteriores al responder. No significa que cada chat se convierta en una memoria permanente. Más bien, ChatGPT puede buscar en conversaciones pasadas contexto relevante cuando lo necesita.&lt;/p&gt;
&lt;p&gt;La lógica central de ChatGPT es: entender al mismo usuario entre sesiones.&lt;/p&gt;
&lt;p&gt;Ejemplos típicos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;Mantén mis ejemplos de código concisos.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&amp;ldquo;Uso principalmente Python y TypeScript.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&amp;ldquo;Estoy escribiendo un blog Hugo sobre herramientas de IA.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&amp;ldquo;Prefiero conclusiones primero y detalles después.&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas memorias no están ligadas a un solo proyecto. Siguen a la cuenta y a los hábitos de trabajo del usuario.&lt;/p&gt;
&lt;h2 id=&#34;memory-sources-hacer-más-visible-la-personalización&#34;&gt;Memory Sources: hacer más visible la personalización
&lt;/h2&gt;&lt;p&gt;OpenAI destacó &lt;code&gt;Memory sources&lt;/code&gt; en su actualización de mayo de 2026.&lt;/p&gt;
&lt;p&gt;El objetivo no es añadir otro tipo de memoria, sino mostrar al usuario qué fuentes consultó ChatGPT al personalizar una respuesta. Según los documentos de ayuda de OpenAI, Memory Sources puede mostrar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Chats anteriores.&lt;/li&gt;
&lt;li&gt;Memorias guardadas.&lt;/li&gt;
&lt;li&gt;Instrucciones personalizadas.&lt;/li&gt;
&lt;li&gt;Archivos de la biblioteca de archivos.&lt;/li&gt;
&lt;li&gt;Correos de Gmail conectado.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La visibilidad de archivos y Gmail depende del plan, la región y el estado de conexión. OpenAI también dice que Memory sources puede no mostrar todos los factores que influyeron en una respuesta, pero ayuda a entender y gestionar la personalización.&lt;/p&gt;
&lt;p&gt;Esto importa. Cuanto más puede la IA &amp;ldquo;recordarte&amp;rdquo;, más necesitas saber qué usó para responder. De lo contrario, la personalización se vuelve una caja negra: parece conocerte, pero no sabes por qué.&lt;/p&gt;
&lt;p&gt;La ventaja de ChatGPT es su comprensión de preferencias personales entre sesiones y temas. El riesgo es que las memorias se vuelvan obsoletas, o que el usuario olvide que una memoria antigua sigue afectando respuestas. Vale la pena limpiar periódicamente memorias guardadas y chats antiguos.&lt;/p&gt;
&lt;h2 id=&#34;claude-code-alrededor-de-codebases-y-reglas-de-ingeniería&#34;&gt;Claude Code: alrededor de codebases y reglas de ingeniería
&lt;/h2&gt;&lt;p&gt;La memoria de Claude Code está más orientada a ingeniería. Le importan menos las preferencias cotidianas del usuario y más cómo debe modificarse este codebase.&lt;/p&gt;
&lt;p&gt;Claude Code tiene dos mecanismos de memoria que se confunden fácilmente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Memoria explícita del proyecto: &lt;code&gt;CLAUDE.md&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Memoria automática del proyecto: Auto Memory.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; es el archivo de memoria de proyecto más básico y estable. Puede vivir en la raíz del proyecto o dentro de subdirectorios. Claude Code lee estos archivos como instrucciones de proyecto y reglas operativas.&lt;/p&gt;
&lt;p&gt;Buen contenido para &lt;code&gt;CLAUDE.md&lt;/code&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Comandos comunes de build, test y lint.&lt;/li&gt;
&lt;li&gt;Reglas de estilo y nombres.&lt;/li&gt;
&lt;li&gt;Notas de arquitectura del proyecto.&lt;/li&gt;
&lt;li&gt;Límites de módulos y zonas de riesgo.&lt;/li&gt;
&lt;li&gt;Convenciones del equipo y flujo de commits.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si &lt;code&gt;CLAUDE.md&lt;/code&gt; se guarda en el repositorio, puede versionarse con Git y compartirse como guía de agente para el equipo. Esto es completamente distinto de la memoria personal en la nube de ChatGPT.&lt;/p&gt;
&lt;h2 id=&#34;claude-code-auto-memory-acumular-experiencia-de-proyecto&#34;&gt;Claude Code Auto Memory: acumular experiencia de proyecto
&lt;/h2&gt;&lt;p&gt;Claude Code también tiene &lt;code&gt;Auto Memory&lt;/code&gt;. Su objetivo es permitir que Claude acumule conocimiento del proyecto entre sesiones sin obligar al usuario a escribir cada nota manualmente.&lt;/p&gt;
&lt;p&gt;Según la documentación de Claude Code, Auto Memory permite a Claude guardar notas mientras trabaja, como comandos de build, descubrimientos de depuración, notas de arquitectura, preferencias de estilo y hábitos de workflow. No guarda cada sesión, sino que decide qué puede ser útil más adelante.&lt;/p&gt;
&lt;p&gt;Un malentendido común es creer que Auto Memory escribe por defecto en &lt;code&gt;.claude/memory.md&lt;/code&gt; dentro de la raíz del proyecto. La documentación oficial dice que cada proyecto tiene su propio directorio de memoria bajo el home del usuario, con una ruta similar a:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;~/.claude/projects/&amp;lt;project&amp;gt;/memory/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;MEMORY.md&lt;/code&gt; carga las primeras 200 líneas o 25KB al inicio de cada conversación, mientras que el contenido detallado puede dividirse en otros archivos temáticos. Los archivos de Auto Memory son Markdown locales, y el usuario puede verlos, editarlos o borrarlos mediante &lt;code&gt;/memory&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Esto hace que la memoria de Claude Code se parezca más a una base local de conocimiento de proyecto. Está más cerca del codebase que la memoria personal de ChatGPT, y es más dinámica que un simple &lt;code&gt;CLAUDE.md&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Pero Auto Memory es local a la máquina. No sigue naturalmente al repositorio hacia otras máquinas o entornos cloud. Para reglas estables compartidas por el equipo, ponlas en el &lt;code&gt;CLAUDE.md&lt;/code&gt; del repositorio.&lt;/p&gt;
&lt;h2 id=&#34;gemini-alrededor-del-contexto-del-ecosistema-google&#34;&gt;Gemini: alrededor del contexto del ecosistema Google
&lt;/h2&gt;&lt;p&gt;La lógica de memoria de Gemini vuelve a ser distinta.&lt;/p&gt;
&lt;p&gt;Gemini también soporta información guardada y referencias a chats anteriores. Los documentos de ayuda de Google dicen que los usuarios pueden guardar información sobre vida, trabajo o preferencias, y Gemini puede consultar chats pasados antes de responder. Cuando usa esta información, la respuesta puede mostrar fuentes como &lt;code&gt;Your saved info&lt;/code&gt; o &lt;code&gt;Previous chats&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Pero la diferenciación de Gemini no es solo &amp;ldquo;guardar unas preferencias&amp;rdquo;. Es la integración con el ecosistema Google.&lt;/p&gt;
&lt;p&gt;Con autorización del usuario y disponibilidad de funciones, Gemini puede acceder a contexto de apps conectadas de Google como Gmail, Google Drive, Docs y Sheets. Su ventaja no es hacer que el usuario le enseñe cada dato manualmente, sino convertir los datos existentes de la cuenta Google en contexto de trabajo buscable.&lt;/p&gt;
&lt;p&gt;Una diferencia típica:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ChatGPT recuerda: &amp;ldquo;Últimamente he estado reparando una unidad de cinta LTO.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Gemini puede encontrar el correo de confirmación de compra en Gmail o leer notas de reparación desde Drive.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto no significa que Gemini pueda leer todos los datos de Google sin condiciones. Depende del tipo de cuenta, región, permisos, apps conectadas, ajustes de Keep Activity y disponibilidad del producto. Las cuentas empresariales y escolares también pueden estar controladas por administradores de Google Workspace.&lt;/p&gt;
&lt;p&gt;Más exactamente, la memoria de Gemini es una combinación de información guardada, chats anteriores y datos conectados del ecosistema Google.&lt;/p&gt;
&lt;h2 id=&#34;diferencias-centrales&#34;&gt;Diferencias centrales
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Dimensión&lt;/th&gt;
          &lt;th&gt;ChatGPT&lt;/th&gt;
          &lt;th&gt;Claude Code&lt;/th&gt;
          &lt;th&gt;Gemini&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Objeto central&lt;/td&gt;
          &lt;td&gt;Persona y preferencias&lt;/td&gt;
          &lt;td&gt;Proyecto y codebase&lt;/td&gt;
          &lt;td&gt;Cuenta Google y datos del ecosistema&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Memoria típica&lt;/td&gt;
          &lt;td&gt;Preferencias, contexto personal, objetivos de largo plazo&lt;/td&gt;
          &lt;td&gt;Arquitectura, comandos, convenciones, experiencia de depuración&lt;/td&gt;
          &lt;td&gt;Información guardada, chats anteriores, contexto de Gmail/Drive/Docs&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Forma de almacenamiento&lt;/td&gt;
          &lt;td&gt;Memoria y contexto de chat en la cuenta OpenAI&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;, &lt;code&gt;MEMORY.md&lt;/code&gt;, archivos Markdown locales&lt;/td&gt;
          &lt;td&gt;Actividad de cuenta Google, información guardada, datos de apps conectadas&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Transparencia&lt;/td&gt;
          &lt;td&gt;Memory sources muestra parte de la fuente&lt;/td&gt;
          &lt;td&gt;Los archivos Markdown se pueden abrir y editar&lt;/td&gt;
          &lt;td&gt;Se gestiona con indicaciones de fuente, Gemini Apps Activity y ajustes Google&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Capacidad entre proyectos&lt;/td&gt;
          &lt;td&gt;Fuerte, sigue a la cuenta de usuario&lt;/td&gt;
          &lt;td&gt;Débil, principalmente sigue al proyecto o memoria local&lt;/td&gt;
          &lt;td&gt;Fuerte, depende de datos y permisos de Google&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Compartición en equipo&lt;/td&gt;
          &lt;td&gt;No adecuada para compartir directamente&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; puede compartirse por Git&lt;/td&gt;
          &lt;td&gt;Depende sobre todo de Workspace y permisos&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Mejor para&lt;/td&gt;
          &lt;td&gt;Preferencias personales y comportamiento de asistente a largo plazo&lt;/td&gt;
          &lt;td&gt;Proyectos de código largos y colaboración con agentes&lt;/td&gt;
          &lt;td&gt;Recuperación en Google Workspace y trabajo entre herramientas&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;cómo-elegir&#34;&gt;Cómo elegir
&lt;/h2&gt;&lt;p&gt;Si quieres que la IA recuerde quién eres, qué estilo prefieres y cómo sueles trabajar, la memoria de ChatGPT es más adecuada.&lt;/p&gt;
&lt;p&gt;Sirve para guardar preferencias personales como estilo de escritura, stack técnico, formato de respuesta, contexto profesional y dirección de proyectos de largo plazo. Su foco es reducir el coste de presentarte de nuevo para que cada conversación empiece más rápido.&lt;/p&gt;
&lt;p&gt;Si quieres que la IA recuerde cómo debe cambiarse un codebase, qué comandos funcionan y qué trampas evitar, Claude Code es más adecuado.&lt;/p&gt;
&lt;p&gt;Pon reglas estables en &lt;code&gt;CLAUDE.md&lt;/code&gt; para compartirlas con el equipo. Deja que Auto Memory ayude con experiencia dinámica. Las decisiones importantes deberían organizarse aún en documentación o &lt;code&gt;CLAUDE.md&lt;/code&gt;, no quedar solo en memoria automática local.&lt;/p&gt;
&lt;p&gt;Si la mayoría de tus materiales viven en Gmail, Drive, Docs y Sheets, el contexto de ecosistema de Gemini tiene ventaja.&lt;/p&gt;
&lt;p&gt;Es útil para encontrar correos antiguos, organizar documentos de Drive y conectar calendario y materiales de oficina. La clave al usar Gemini no es recordarle todo repetidamente en chat, sino asegurarse de que las conexiones de apps, permisos y ajustes de actividad relevantes estén correctos.&lt;/p&gt;
&lt;h2 id=&#34;una-división-práctica-del-trabajo&#34;&gt;Una división práctica del trabajo
&lt;/h2&gt;&lt;p&gt;Puedes dividirlos así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ChatGPT recuerda preferencias personales generales.&lt;/li&gt;
&lt;li&gt;Claude Code recuerda conocimiento de ingeniería para un repositorio.&lt;/li&gt;
&lt;li&gt;Gemini recupera materiales de tu ecosistema Google.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En otras palabras, ChatGPT es como un secretario personal, Claude Code como un ingeniero senior dentro del proyecto, y Gemini como un indexador de tu cuenta Google.&lt;/p&gt;
&lt;p&gt;No hay ganador absoluto. Tienen objetivos distintos.&lt;/p&gt;
&lt;p&gt;El mayor error es mezclarlos. Las preferencias personales no siempre pertenecen a la memoria de proyecto; la arquitectura del proyecto no siempre pertenece a la memoria personal en la nube; y recuperar datos del ecosistema Google no significa que el modelo te entienda de verdad a largo plazo.&lt;/p&gt;
&lt;h2 id=&#34;lectura-breve&#34;&gt;Lectura breve
&lt;/h2&gt;&lt;p&gt;La siguiente etapa de la memoria en IA no es simplemente &amp;ldquo;recordar más&amp;rdquo;. La memoria necesita capas, visibilidad y control.&lt;/p&gt;
&lt;p&gt;ChatGPT se centra en personalización entre sesiones. Claude Code se centra en continuidad de proyectos de código. Gemini se centra en contexto del ecosistema Google. Una buena colaboración de largo plazo con IA no pone toda la información en una sola caja negra; mantiene cada tipo de memoria en el lugar correcto.&lt;/p&gt;
&lt;p&gt;Pon preferencias personales en memoria personal, reglas de ingeniería en el codebase, y materiales históricos en los sistemas originales de documentos y correo. El trabajo de la IA es llamar el contexto correcto cuando hace falta, no mezclar todo en una sola pila.&lt;/p&gt;
&lt;h2 id=&#34;enlaces&#34;&gt;Enlaces
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;OpenAI Memory FAQ: &lt;a class=&#34;link&#34; href=&#34;https://help.openai.com/en/articles/8590148-memory-faq&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://help.openai.com/en/articles/8590148-memory-faq&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ChatGPT Release Notes: &lt;a class=&#34;link&#34; href=&#34;https://help.openai.com/en/articles/6825453-chatgpt-release-notes&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://help.openai.com/en/articles/6825453-chatgpt-release-notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Claude Code Memory: &lt;a class=&#34;link&#34; href=&#34;https://code.claude.com/docs/en/memory&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://code.claude.com/docs/en/memory&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Gemini Saved info: &lt;a class=&#34;link&#34; href=&#34;https://support.google.com/gemini/answer/15637730&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://support.google.com/gemini/answer/15637730&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Gemini Apps Privacy Hub: &lt;a class=&#34;link&#34; href=&#34;https://support.google.com/gemini/answer/13594961&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://support.google.com/gemini/answer/13594961&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Actualización de ChatGPT Release Notes: fuentes de memoria, GPT-5.5 Instant y complementos para hojas de cálculo</title>
        <link>https://knightli.com/es/2026/05/07/chatgpt-release-notes-memory-gpt-5-5-sheets/</link>
        <pubDate>Thu, 07 May 2026 14:30:15 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/07/chatgpt-release-notes-memory-gpt-5-5-sheets/</guid>
        <description>&lt;p&gt;La página &lt;code&gt;ChatGPT Release Notes&lt;/code&gt; de OpenAI se actualizó a principios de mayo de 2026. El último grupo de cambios se concentra en tres cosas: memory sources y una personalización más fuerte en ChatGPT, &lt;code&gt;GPT-5.5 Instant&lt;/code&gt; como nuevo modelo predeterminado, y el lanzamiento global de ChatGPT para Excel y Google Sheets.&lt;/p&gt;
&lt;p&gt;En conjunto, estas actualizaciones apuntan a una dirección clara: ChatGPT sigue moviéndose desde una entrada de chat hacia un asistente de trabajo más continuo, más personalizado y más nativo de las herramientas de oficina.&lt;/p&gt;
&lt;h2 id=&#34;memory-sources-hacen-más-transparente-la-personalización&#34;&gt;Memory sources hacen más transparente la personalización
&lt;/h2&gt;&lt;p&gt;La actualización más importante es &lt;code&gt;memory sources&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;OpenAI dice que los usuarios de ChatGPT Plus y Pro están empezando a recibir mejoras de memoria más fuertes. ChatGPT puede extraer mejor contexto relevante de chats anteriores, memorias guardadas, archivos disponibles y apps de Gmail conectadas para ofrecer ideas, recomendaciones y próximos pasos más adaptados.&lt;/p&gt;
&lt;p&gt;Esto significa que los usuarios no tienen que explicar una y otra vez el contexto del proyecto, preferencias, hábitos o materiales existentes en cada conversación nueva. Para escritura de largo plazo, planificación de proyectos, organización de investigación, aprendizaje y trabajo en equipo, la continuidad mejora.&lt;/p&gt;
&lt;p&gt;Pero cuanto más fuerte se vuelve la personalización, más importante se vuelve la transparencia. Por eso OpenAI introduce memory sources, para que los usuarios puedan ver qué información ayudó a personalizar una respuesta. Los usuarios pueden hacer clic en el icono Sources bajo una respuesta para ver memorias guardadas relevantes, chats anteriores e instrucciones personalizadas. Los usuarios Plus y Pro también pueden ver archivos de su biblioteca y correos referenciados de Gmail conectado.&lt;/p&gt;
&lt;p&gt;Si alguna información está desactualizada, no es relevante o es incorrecta, los usuarios pueden corregirla, eliminarla o marcarla como no relevante.&lt;/p&gt;
&lt;h2 id=&#34;el-control-de-memoria-sigue-siendo-la-clave&#34;&gt;El control de memoria sigue siendo la clave
&lt;/h2&gt;&lt;p&gt;OpenAI también señala que memory sources puede no mostrar todos los factores que dieron forma a una respuesta, y que seguirá mejorando la vista.&lt;/p&gt;
&lt;p&gt;Eso importa. Memory sources no es un &amp;ldquo;registro completo del pensamiento del modelo&amp;rdquo;. Es una interfaz de producto para entender el contexto personalizado. Mejora la visibilidad, pero no puede exponer por completo cada factor que influyó en una respuesta.&lt;/p&gt;
&lt;p&gt;Para privacidad y control, OpenAI dice que memory sources solo aparece dentro de la experiencia de la propia cuenta del usuario. Si un usuario comparte un chat, las fuentes no aparecen en el chat compartido. Los usuarios también pueden borrar chats, usar chats temporales que no usan ni actualizan memoria y no aparecen en el historial, desactivar la memoria, desconectar apps en cualquier momento y gestionar si su contenido se usa para mejorar modelos.&lt;/p&gt;
&lt;p&gt;Esto muestra que la personalización de ChatGPT sigue un camino más claro: hacer que el asistente conozca mejor al usuario, pero también darle formas de ver y gestionar por qué respondió de cierta manera.&lt;/p&gt;
&lt;h2 id=&#34;gpt-55-instant-se-convierte-en-el-modelo-predeterminado&#34;&gt;GPT-5.5 Instant se convierte en el modelo predeterminado
&lt;/h2&gt;&lt;p&gt;Las release notes también confirman que &lt;code&gt;GPT-5.5 Instant&lt;/code&gt; se está desplegando como nuevo modelo predeterminado de ChatGPT, reemplazando &lt;code&gt;GPT-5.3 Instant&lt;/code&gt; para todos los usuarios.&lt;/p&gt;
&lt;p&gt;La actualización del modelo predeterminado mejora varias áreas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Precisión.&lt;/li&gt;
&lt;li&gt;Claridad y concisión.&lt;/li&gt;
&lt;li&gt;Comprensión de imágenes.&lt;/li&gt;
&lt;li&gt;Respuestas STEM.&lt;/li&gt;
&lt;li&gt;Decidir cuándo usar búsqueda web.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;OpenAI enfatiza que GPT-5.5 Instant es más fiable factual­mente, especialmente para prompts donde la precisión importa. También da respuestas más compactas y directas, reduce preguntas de seguimiento innecesarias y baja el ruido de exceso de formato y contenido decorativo.&lt;/p&gt;
&lt;p&gt;Para los usuarios, esto puede no ser tan visible como un nuevo botón, pero cambia la sensación de abrir ChatGPT cada día: menos desvíos, menos verbosidad y menos formato apilado sobre preguntas simples.&lt;/p&gt;
&lt;h2 id=&#34;la-personalización-y-el-modelo-predeterminado-ahora-trabajan-juntos&#34;&gt;La personalización y el modelo predeterminado ahora trabajan juntos
&lt;/h2&gt;&lt;p&gt;Para usuarios Plus y Pro en la web, GPT-5.5 Instant también puede usar con más eficacia contexto de chats anteriores, archivos y Gmail conectado.&lt;/p&gt;
&lt;p&gt;Esto forma parte de la misma dirección de producto que memory sources. El modelo no solo es &amp;ldquo;más inteligente&amp;rdquo;. También debería saber, cuando corresponde, en qué trabajaste antes, qué te importa y qué materiales ya proporcionaste. Al continuar un proyecto, escribir un plan, organizar información de correo o hacer sugerencias basadas en preferencias pasadas, ChatGPT puede hacer menos preguntas repetidas.&lt;/p&gt;
&lt;p&gt;Los usuarios de pago pueden seguir usando GPT-5.3 Instant durante tres meses mediante la configuración de modelos antes de que se retire.&lt;/p&gt;
&lt;h2 id=&#34;chatgpt-para-excel-y-google-sheets&#34;&gt;ChatGPT para Excel y Google Sheets
&lt;/h2&gt;&lt;p&gt;Otra actualización importante es el lanzamiento global de ChatGPT para Excel y Google Sheets.&lt;/p&gt;
&lt;p&gt;Lleva ChatGPT a una barra lateral dentro de Microsoft Excel y Google Sheets, para que los usuarios puedan crear, actualizar y entender datos en el lugar. OpenAI menciona casos de uso como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Trackers.&lt;/li&gt;
&lt;li&gt;Presupuestos.&lt;/li&gt;
&lt;li&gt;Fórmulas.&lt;/li&gt;
&lt;li&gt;Archivos con varias pestañas.&lt;/li&gt;
&lt;li&gt;Trabajo de escenarios.&lt;/li&gt;
&lt;li&gt;Limpieza de hojas de cálculo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Donde esté disponible, también soporta Skills y apps.&lt;/p&gt;
&lt;p&gt;El significado es directo: muchos datos de oficina no viven en un sistema BI especializado. Viven en Excel y Google Sheets. Colocar ChatGPT en la barra lateral de la hoja es más natural que pedir a los usuarios copiar y pegar en una ventana de chat, y facilita entrar en flujos de trabajo reales.&lt;/p&gt;
&lt;h2 id=&#34;límites-de-uso-e-instalación&#34;&gt;Límites de uso e instalación
&lt;/h2&gt;&lt;p&gt;Las release notes dicen que los planes Free y Go incluyen uso limitado, mientras que Plus y Pro usan los mismos límites de uso agentic que Codex. Los usuarios pueden comprar créditos adicionales si necesitan superar los límites del plan.&lt;/p&gt;
&lt;p&gt;La instalación también es directa: instalar ChatGPT para Excel desde Microsoft Marketplace o ChatGPT desde Google Workspace Marketplace, y luego iniciar sesión con una cuenta de ChatGPT elegible.&lt;/p&gt;
&lt;p&gt;OpenAI también recuerda a los usuarios que revisen los resultados antes de confiar en fórmulas o análisis. Ese punto es importante. La IA puede acelerar el trabajo con hojas de cálculo, pero fórmulas, presupuestos, trabajo financiero y análisis de negocio aún necesitan revisión humana.&lt;/p&gt;
&lt;h2 id=&#34;patrón-reciente-de-actualizaciones&#34;&gt;Patrón reciente de actualizaciones
&lt;/h2&gt;&lt;p&gt;Mirando las release notes desde finales de abril hasta principios de mayo, la dirección de ChatGPT se vuelve más clara.&lt;/p&gt;
&lt;p&gt;El 30 de abril, OpenAI introdujo Advanced Account Security para cuentas personales de ChatGPT, añadiendo requisitos de inicio de sesión más fuertes y protecciones de cuenta, incluyendo passkeys, llaves de seguridad, claves de recuperación, sesiones más cortas y notificaciones de inicio de sesión.&lt;/p&gt;
&lt;p&gt;El 28 de abril, la selección de modelos se acercó al compositor, facilitando elegir un modelo antes de enviar un mensaje. Los controles de thinking effort para modelos Thinking y Pro también se movieron al selector de modelos.&lt;/p&gt;
&lt;p&gt;El 22 de abril, ChatGPT introdujo Fast answers para consultas comunes de información que no requieren personalización y donde el modelo tiene una respuesta de alta confianza. Fast answers no referencia chats anteriores ni memoria, y los usuarios pueden desactivarlas en la configuración de personalización.&lt;/p&gt;
&lt;p&gt;Todas estas actualizaciones sirven al mismo objetivo: hacer que ChatGPT funcione mejor para el uso frecuente de todos los días. Debe ser rápido cuando importa la velocidad, personalizado cuando importa el contexto, y ofrecer controles de seguridad y visibilidad cuando se necesitan.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;El punto de esta actualización de ChatGPT Release Notes no es una sola función. Es la forma continua que va tomando el producto.&lt;/p&gt;
&lt;p&gt;GPT-5.5 Instant mejora la calidad de la respuesta predeterminada. Memory sources hace más visible la personalización. Los complementos de Excel y Google Sheets colocan ChatGPT dentro de hojas de cálculo de oficina. Advanced Account Security y los cambios del selector de modelos fortalecen la protección de cuenta y el diseño de interacción.&lt;/p&gt;
&lt;p&gt;ChatGPT se está convirtiendo en una capa de trabajo de más largo plazo. Recuerda más contexto, entra en más herramientas y maneja más tareas diarias. Las siguientes preguntas son si la transparencia de personalización es lo bastante clara, si los complementos de oficina se mantienen estables en hojas complejas reales y si los usuarios pueden conservar un equilibrio sano entre comodidad y control.&lt;/p&gt;
&lt;h2 id=&#34;enlaces&#34;&gt;Enlaces
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;ChatGPT Release Notes: &lt;a class=&#34;link&#34; href=&#34;https://help.openai.com/en/articles/6825453-chatgpt-release-notes&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://help.openai.com/en/articles/6825453-chatgpt-release-notes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Grok Imagine Quality Mode API: xAI quiere llevar la generación de imágenes a flujos empresariales</title>
        <link>https://knightli.com/es/2026/05/07/grok-imagine-quality-mode-api/</link>
        <pubDate>Thu, 07 May 2026 14:27:29 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/07/grok-imagine-quality-mode-api/</guid>
        <description>&lt;p&gt;xAI lanzó &lt;code&gt;Grok Imagine Quality Mode API&lt;/code&gt; el 6 de mayo de 2026. Es un modo de calidad para generación y edición de imágenes en Grok Imagine, disponible para desarrolladores y equipos empresariales, con foco en mayor realismo, mejor renderizado de texto y más control creativo.&lt;/p&gt;
&lt;p&gt;El punto de esta actualización no es crear otra entrada genérica de texto a imagen. Es llevar Grok Imagine a flujos de producción de contenido empresarial: imágenes de producto, recursos de marketing, variaciones de anuncios, contenido estilo UGC, visuales de marca y generación de video entran dentro de su rango objetivo.&lt;/p&gt;
&lt;h2 id=&#34;qué-ofrece-quality-mode&#34;&gt;Qué ofrece Quality Mode
&lt;/h2&gt;&lt;p&gt;El posicionamiento de xAI es claro: más realista, mejor con texto y mejor siguiendo prompts.&lt;/p&gt;
&lt;p&gt;Primero, mejora el realismo. Los ejemplos oficiales enfatizan piel natural, detalles de materiales, iluminación, atmósfera de escena y textura fotográfica. Esto importa para imágenes comerciales. Muchos modelos de imagen ya se ven &amp;ldquo;bonitos&amp;rdquo;, pero cuando la imagen se usa en anuncios, páginas de producto o recursos sociales, los problemas con piel, telas, manos, relaciones espaciales e iluminación se vuelven evidentes.&lt;/p&gt;
&lt;p&gt;Segundo, el renderizado de texto es más fuerte. xAI dice específicamente que Quality Mode soporta capacidades más limpias de texto multilingüe. Que un modelo de imagen pueda generar texto de forma fiable es una barrera real para uso empresarial. Menús, pósters, empaques, anuncios, botones, letreros y gráficos sociales son difíciles de usar directamente si una sola palabra sale mal.&lt;/p&gt;
&lt;p&gt;Tercero, el control creativo es mejor. La descripción oficial incluye seguimiento de prompt más ajustado, comprensión más profunda de escenas y mundos, y resultados de marca más consistentes. En otras palabras, Quality Mode intenta resolver no solo &amp;ldquo;generar una imagen bonita&amp;rdquo;, sino &amp;ldquo;generar imágenes controlables, reutilizables e iterables según los requisitos de un equipo&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;pensado-para-empresas-no-solo-para-jugar-con-imágenes&#34;&gt;Pensado para empresas, no solo para jugar con imágenes
&lt;/h2&gt;&lt;p&gt;xAI coloca los casos empresariales cerca del inicio del anuncio.&lt;/p&gt;
&lt;p&gt;El ejemplo más típico es visualización de producto y recursos de marketing. Las empresas pueden usarlo para generar renders fotorrealistas de producto, imágenes hero, recursos sociales, iconos y variaciones de anuncios. Comparadas con un usuario personal generando una imagen casual, las empresas se preocupan por tres cosas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si la imagen es lo bastante realista para acercarse a fotografía comercial o renderizado de alta calidad.&lt;/li&gt;
&lt;li&gt;Si sigue el estilo de marca, incluyendo color, composición, ubicación de texto y tono visual.&lt;/li&gt;
&lt;li&gt;Si puede generar variaciones a escala para pruebas A/B, campañas y distintos canales.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ahí es donde Quality Mode tiene valor. No reemplaza a diseñadores. Comprime la etapa de &amp;ldquo;hacer primero una docena de direcciones&amp;rdquo; en menos tiempo. Los equipos pueden generar candidatos con la API, y luego dejar que diseño, marketing y marca seleccionen, ajusten y publiquen.&lt;/p&gt;
&lt;h2 id=&#34;la-edición-de-imágenes-importa-más-que-text-to-image&#34;&gt;La edición de imágenes importa más que text-to-image
&lt;/h2&gt;&lt;p&gt;El anuncio muestra no solo imágenes generadas desde cero, sino también flujos basados en imágenes de referencia. Los ejemplos incluyen colocar un producto en un folleto, preservar el gráfico de una camiseta y poner a la misma persona en distintas escenas estilo UGC.&lt;/p&gt;
&lt;p&gt;Esto es más útil para empresas. En el trabajo empresarial real, los activos rara vez empiezan desde cero. Los equipos ya tienen fotos de producto, guías de marca, referencias de personajes, diseños de empaque o temas de campaña. Si una herramienta de IA solo puede generar imágenes atractivas al azar, su valor es limitado. Si puede crear variaciones estables alrededor de activos existentes, encaja mucho más fácilmente en un flujo de trabajo.&lt;/p&gt;
&lt;p&gt;Esta también es una dirección de competencia para modelos de imagen: de la &amp;ldquo;lotería de prompts&amp;rdquo; a la edición controlable. Los usuarios no solo quieren sorpresa; quieren cambios predecibles.&lt;/p&gt;
&lt;h2 id=&#34;el-significado-empresarial-del-contenido-estilo-ugc&#34;&gt;El significado empresarial del contenido estilo UGC
&lt;/h2&gt;&lt;p&gt;xAI también muestra contenido estilo UGC, como la misma persona usando una camiseta específica, comiendo pastel de cumpleaños o tomándose una selfie de espejo en un ascensor.&lt;/p&gt;
&lt;p&gt;Esto refleja un cambio en producción publicitaria y social. Muchas marcas ya no necesitan solo tomas pulidas de estudio. También necesitan contenido que parezca más natural y cercano a publicaciones reales de usuarios. Los recursos estilo UGC funcionan bien para portadas de videos cortos, anuncios en feeds, posts sociales y previsualizaciones de colaboraciones con creadores.&lt;/p&gt;
&lt;p&gt;Por supuesto, esto también significa que las empresas necesitan manejar con más claridad derechos de imagen, autorización de marca y etiquetado de contenido. La IA puede reducir costos de producción, pero no hace desaparecer los riesgos de uso. El cumplimiento debe diseñarse por adelantado, especialmente cuando hay parecidos reales, personas similares, marcas de producto y distribución publicitaria.&lt;/p&gt;
&lt;h2 id=&#34;texto-comprensión-del-mundo-y-rango-visual&#34;&gt;Texto, comprensión del mundo y rango visual
&lt;/h2&gt;&lt;p&gt;Quality Mode también enfatiza comprensión del mundo y un rango visual amplio.&lt;/p&gt;
&lt;p&gt;Los ejemplos oficiales incluyen texto en un pastel explicando a Alejandro Magno, escenas cinematográficas de picnic e iconos estilo UI. Estos ejemplos sugieren que xAI quiere que Grok Imagine cubra fotografía realista, anuncios comerciales, renders de producto, iconos, pósters e imágenes de entrada para generación de video, en lugar de una estética fija.&lt;/p&gt;
&lt;p&gt;La parte más interesante es la combinación de texto y comprensión del mundo. Muchas tareas de imagen no consisten solo en dibujar objetos. Requieren que el modelo entienda relaciones, casos de uso, hechos históricos, significado del texto y presentación visual. Cuanto más pueda entender el modelo esas restricciones, más probable será que pase de herramienta de entretenimiento a herramienta de producción.&lt;/p&gt;
&lt;h2 id=&#34;quality-mode-también-mejora-la-generación-de-video&#34;&gt;Quality Mode también mejora la generación de video
&lt;/h2&gt;&lt;p&gt;xAI dice que combinar su modelo de imagen más reciente con sus capacidades de video puede apoyar recursos de video para redes sociales, demostraciones de producto, anuncios y más.&lt;/p&gt;
&lt;p&gt;Esto encaja con la tendencia más amplia en productos multimodales: la generación de imágenes ya no es una capacidad aislada. Se vuelve parte de una canalización para generación de video, creatividad publicitaria, demos de producto y contenido social. Una empresa puede generar primero una imagen de producto de alta calidad y luego extenderla a un video corto, anuncio con movimiento o activo de campaña multiversión.&lt;/p&gt;
&lt;p&gt;Desde esta perspectiva, Quality Mode no trata solo de imágenes más claras. Proporciona un punto de partida visual más estable para video y automatización de marketing.&lt;/p&gt;
&lt;h2 id=&#34;cómo-lo-llaman-los-desarrolladores&#34;&gt;Cómo lo llaman los desarrolladores
&lt;/h2&gt;&lt;p&gt;El ejemplo oficial usa &lt;code&gt;xai_sdk&lt;/code&gt; para llamar al modelo &lt;code&gt;grok-imagine-image-quality&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;xai_sdk&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;client&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;xai_sdk&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Client&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;response&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sample&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;prompt&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;A collage of London landmarks in a stenciled street-art style&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;grok-imagine-image-quality&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;url&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Esto muestra que Quality Mode no es solo una función dentro del frontend de Grok. Está expuesta mediante API para desarrolladores y equipos empresariales. Para empresas, la forma de API importa porque puede conectarse con sistemas internos de activos, plataformas publicitarias, herramientas CMS, flujos de diseño y canalizaciones de automatización.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;La dirección central de Grok Imagine Quality Mode API es empujar la generación de imágenes desde lo &amp;ldquo;divertido&amp;rdquo; hacia lo &amp;ldquo;usable en producción empresarial&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Enfatiza realismo, renderizado de texto, seguimiento de prompts, consistencia de marca, edición de imágenes, estilo UGC y continuidad con generación de video. Todo apunta a un objetivo: ayudar a equipos a producir activos visuales por lotes, con estabilidad y control.&lt;/p&gt;
&lt;p&gt;La prueba real no es solo si una imagen individual se ve impresionante. Es si el renderizado de texto se mantiene estable en escenas complejas, si la edición con imagen de referencia preserva identidad y consistencia de marca, y si la API es rápida, asequible y controlable a escala. Solo si esas partes se sostienen, Grok Imagine podrá entrar de verdad en canalizaciones de producción de contenido empresarial.&lt;/p&gt;
&lt;h2 id=&#34;enlaces&#34;&gt;Enlaces
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Anuncio de xAI: &lt;a class=&#34;link&#34; href=&#34;https://x.ai/news/grok-imagine-quality-mode&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://x.ai/news/grok-imagine-quality-mode&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Documentación de API: &lt;a class=&#34;link&#34; href=&#34;https://docs.x.ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://docs.x.ai&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>DeepSeek V4 Flash para una demo de juego en Godot: ¿hasta dónde llegan unos centavos?</title>
        <link>https://knightli.com/es/2026/05/06/deepseek-v4-flash-godot-game-demo/</link>
        <pubDate>Wed, 06 May 2026 09:22:18 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/06/deepseek-v4-flash-godot-game-demo/</guid>
        <description>&lt;p&gt;¿Puede &lt;code&gt;DeepSeek V4 Flash&lt;/code&gt; encargarse del desarrollo de una demo de juego en Godot?&lt;/p&gt;
&lt;p&gt;El foco es simple: ¿puede crear una pequeña demo de Godot que se ejecute, se observe y tenga efectos físicos?&lt;/p&gt;
&lt;p&gt;La respuesta corta es sí. La calidad no es comercial, pero ya es suficiente para prototipos de gameplay y demos de interacción física. Más importante aún, el costo es muy bajo, lo que lo hace adecuado para validar ideas rápidamente.&lt;/p&gt;
&lt;h2 id=&#34;rendimiento-de-la-demo&#34;&gt;Rendimiento de la demo
&lt;/h2&gt;&lt;p&gt;El foco de esta demo es la interacción física.&lt;/p&gt;
&lt;p&gt;Varios efectos visibles incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La cuerda puede cortarse.&lt;/li&gt;
&lt;li&gt;La caja cae al suelo.&lt;/li&gt;
&lt;li&gt;Después de aumentar la masa, las colisiones de la caja se vuelven más contundentes.&lt;/li&gt;
&lt;li&gt;La cuerda muestra elasticidad evidente.&lt;/li&gt;
&lt;li&gt;Después de ajustar fricción y elasticidad, la caja muestra deslizamiento y rebote claros.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por lo que presenta, esto ya no es solo &amp;ldquo;unos scripts de Godot generados&amp;rdquo;. Es un pequeño prototipo que puede ejecutarse y mostrar comportamiento físico observable.&lt;/p&gt;
&lt;h2 id=&#34;usabilidad&#34;&gt;Usabilidad
&lt;/h2&gt;&lt;p&gt;El valor de esta demo es que puede ejecutarse, verse y modificarse. No es un juego completo ni un proyecto de ingeniería listo para comercialización directa, pero ya demuestra varias cosas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;DeepSeek V4 Flash&lt;/code&gt; puede entender el objetivo básico de una demo de Godot.&lt;/li&gt;
&lt;li&gt;Un AI Agent puede convertir requisitos en un proyecto ejecutable.&lt;/li&gt;
&lt;li&gt;Tareas no web como interacción física en Godot están entrando en una etapa de prototipado de bajo costo.&lt;/li&gt;
&lt;li&gt;Para desarrolladores individuales, puede convertir rápidamente una idea en algo visible.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si el objetivo es construir un juego formal, claramente no basta. Pero si el objetivo es verificar si una idea de gameplay es interesante o si el efecto físico aproximado puede hacerse, esta demo ya es usable.&lt;/p&gt;
&lt;h2 id=&#34;significado-del-costo&#34;&gt;Significado del costo
&lt;/h2&gt;&lt;p&gt;La parte más notable no es lo pulidos que son los visuales, sino el costo.&lt;/p&gt;
&lt;p&gt;Si una demo física de Godot puede producir una versión ejecutable con costos de modelo de unos pocos centavos, su significado no es reemplazar el desarrollo profesional de videojuegos. Es reducir de forma drástica el costo de prueba y error de prototipos.&lt;/p&gt;
&lt;p&gt;Antes, validar una pequeña idea de juego normalmente requería saber Godot, escribir scripts, configurar escenas y ajustar parámetros físicos. Ahora un AI Agent puede generar primero una versión ejecutable, y los humanos pueden juzgar si la dirección tiene sentido.&lt;/p&gt;
&lt;p&gt;Para desarrolladores indie, este tipo de experimentación de bajo costo es útil:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Validar rápidamente conceptos de gameplay.&lt;/li&gt;
&lt;li&gt;Generar demos temporales para que otros las vean.&lt;/li&gt;
&lt;li&gt;Explorar APIs de Godot y el sistema físico.&lt;/li&gt;
&lt;li&gt;Convertir ideas en un primer proyecto ejecutable.&lt;/li&gt;
&lt;li&gt;Reducir el costo de código escrito a mano antes de aclarar la dirección.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;rendimiento-de-deepseek-v4-flash&#34;&gt;Rendimiento de DeepSeek V4 Flash
&lt;/h2&gt;&lt;p&gt;Vale la pena notar que el modelo usado aquí es &lt;code&gt;DeepSeek V4 Flash&lt;/code&gt;, no un modelo insignia más caro y pesado.&lt;/p&gt;
&lt;p&gt;Funciona bien en el rol de modelo de prototipado de bajo costo. No es el más fuerte, estable ni adecuado para entregar ingeniería de producción, pero resulta atractivo en escenarios sensibles al presupuesto donde el objetivo es probar rápidamente una dirección.&lt;/p&gt;
&lt;h2 id=&#34;escenarios-adecuados&#34;&gt;Escenarios adecuados
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;DeepSeek V4 Flash + Agent + Godot&lt;/code&gt; encaja mejor con estas tareas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pequeños prototipos de gameplay.&lt;/li&gt;
&lt;li&gt;Demos de efectos físicos.&lt;/li&gt;
&lt;li&gt;Validación de conceptos de UI o interacción.&lt;/li&gt;
&lt;li&gt;Ejemplos de enseñanza.&lt;/li&gt;
&lt;li&gt;Ayuda para entender la estructura de proyectos Godot.&lt;/li&gt;
&lt;li&gt;Generar un primer proyecto ejecutable.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Es menos adecuado para asumir directamente estas tareas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Arquitectura de juego grande.&lt;/li&gt;
&lt;li&gt;Controladores de personaje complejos.&lt;/li&gt;
&lt;li&gt;Sincronización de red.&lt;/li&gt;
&lt;li&gt;Código central para proyectos comerciales.&lt;/li&gt;
&lt;li&gt;Simulación física de alta precisión.&lt;/li&gt;
&lt;li&gt;Envío automático sin pruebas humanas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En otras palabras, sirve como primer borrador y banco de pruebas, no como responsable de ingeniería de producción.&lt;/p&gt;
&lt;h2 id=&#34;qué-demuestra-esto&#34;&gt;Qué demuestra esto
&lt;/h2&gt;&lt;p&gt;Esto muestra que AI coding sigue expandiéndose desde sitios web, scripts y APIs backend hacia desarrollo de juegos y prototipado interactivo.&lt;/p&gt;
&lt;p&gt;El desarrollo de juegos solía tener una barrera alta de entrada, especialmente cuando motores, scripts, gestión de assets y sistemas físicos se mezclaban. Los principiantes podían atascarse fácilmente. Ahora modelos más herramientas Agent pueden configurar primero el proyecto, permitiendo a los desarrolladores centrarse en juzgar el gameplay y ajustar efectos.&lt;/p&gt;
&lt;p&gt;Esto puede traer tres cambios:&lt;/p&gt;
&lt;p&gt;Primero, los prototipos de juegos se vuelven más baratos. Muchas ideas ya no tienen que esperar a un desarrollo completo para validarse; pueden convertirse primero en demos ejecutables.&lt;/p&gt;
&lt;p&gt;Segundo, los desarrolladores indie pueden estar más dispuestos a experimentar. Personas que no conocen Godot pueden aun así usar IA para tocar la estructura del proyecto y el flujo básico.&lt;/p&gt;
&lt;p&gt;Tercero, la estabilidad del modelo se vuelve más importante. El desarrollo de juegos no consiste solo en que el código corra. El efecto también debe ser razonable, la sensación debe ser normal y los parámetros deben ser controlables. En el futuro, modelos que combinen mejor visuales reales y estado de ejecución serán más adecuados para este tipo de tarea.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;DeepSeek V4 Flash para una demo de Godot se puede resumir en una frase: &lt;strong&gt;no perfecto, pero lo bastante barato, rápido y adecuado para prototipar.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Todavía está lejos de los juegos comerciales, pero si el objetivo es validar una pequeña idea de juego a costo extremadamente bajo, ya tiene valor.&lt;/p&gt;
&lt;p&gt;Para desarrolladores individuales, el uso más realista no es entregar todo el juego a la IA, sino dejar que la IA produzca primero un proyecto ejecutable mientras los humanos hacen juicio, compromisos y pulido. Usados así, modelos de bajo costo como DeepSeek V4 Flash se vuelven realmente atractivos.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>CC Switch: una herramienta de escritorio para gestionar Claude Code, Codex, Gemini CLI y OpenClaw en un solo lugar</title>
        <link>https://knightli.com/es/2026/05/06/cc-switch-ai-cli-manager/</link>
        <pubDate>Wed, 06 May 2026 09:03:08 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/06/cc-switch-ai-cli-manager/</guid>
        <description>&lt;p&gt;&lt;code&gt;CC Switch&lt;/code&gt; es una herramienta de gestión de escritorio para usuarios intensivos de programación con IA. El problema que intenta resolver es directo: muchas personas ahora usan &lt;code&gt;Claude Code&lt;/code&gt;, &lt;code&gt;Codex&lt;/code&gt;, &lt;code&gt;Gemini CLI&lt;/code&gt;, &lt;code&gt;OpenCode&lt;/code&gt; y &lt;code&gt;OpenClaw&lt;/code&gt; al mismo tiempo, pero cada herramienta tiene su propio formato de configuración, sintaxis de Provider, configuración MCP y forma de gestionar Skills.&lt;/p&gt;
&lt;p&gt;Cuando solo usas una herramienta, editar archivos de configuración manualmente todavía es tolerable. Una vez que se mezclan varias herramientas, además de cuentas oficiales, APIs de terceros, servicios relay, modelos locales y configuración compartida de equipo, editar JSON, TOML y archivos &lt;code&gt;.env&lt;/code&gt; a mano se vuelve tedioso rápidamente.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;CC Switch&lt;/code&gt; se posiciona como una forma de reunir estas configuraciones dispersas en una sola app de escritorio multiplataforma.&lt;/p&gt;
&lt;h2 id=&#34;qué-problema-resuelve&#34;&gt;Qué problema resuelve
&lt;/h2&gt;&lt;p&gt;Las herramientas modernas de programación con IA se sienten cada vez más como &amp;ldquo;colegas de desarrollo dentro de la línea de comandos&amp;rdquo;, pero sus ecosistemas aún no están completamente unificados.&lt;/p&gt;
&lt;p&gt;Los puntos de dolor comunes incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Claude Code, Codex, Gemini CLI, OpenCode y OpenClaw usan formatos de configuración distintos.&lt;/li&gt;
&lt;li&gt;Cambiar API Providers requiere editar repetidamente archivos de configuración.&lt;/li&gt;
&lt;li&gt;Los servidores MCP se configuran una y otra vez en distintas herramientas.&lt;/li&gt;
&lt;li&gt;Archivos de prompt como &lt;code&gt;CLAUDE.md&lt;/code&gt;, &lt;code&gt;AGENTS.md&lt;/code&gt; y &lt;code&gt;GEMINI.md&lt;/code&gt; son difíciles de mantener de forma consistente.&lt;/li&gt;
&lt;li&gt;Instalación, sincronización, respaldo y eliminación de Skills carecen de una entrada central.&lt;/li&gt;
&lt;li&gt;Cambiar entre múltiples cuentas, relays y servicios de modelos puede volverse confuso fácilmente.&lt;/li&gt;
&lt;li&gt;Cuando un archivo de configuración editado a mano se rompe, depurarlo cuesta tiempo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La idea detrás de &lt;code&gt;CC Switch&lt;/code&gt; es dejar de obligar a los usuarios a recordar los detalles de configuración de cada herramienta, y usar una interfaz unificada para gestionar Providers, MCP, Prompts, Skills, Sessions y proxies.&lt;/p&gt;
&lt;h2 id=&#34;herramientas-soportadas&#34;&gt;Herramientas soportadas
&lt;/h2&gt;&lt;p&gt;El README enumera cinco objetivos principales soportados:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Claude Code&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Codex&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Gemini CLI&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;OpenCode&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;OpenClaw&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas herramientas son similares en posicionamiento: todas se centran en programación con IA, flujos Agent y colaboración por línea de comandos. Pero sus sistemas de configuración difieren, y el valor de &lt;code&gt;CC Switch&lt;/code&gt; está en envolver esas diferencias.&lt;/p&gt;
&lt;p&gt;Para quienes comparan con frecuencia distintas herramientas de programación con IA, esto es mucho más fácil que abrir manualmente archivos de configuración cada vez.&lt;/p&gt;
&lt;h2 id=&#34;gestión-de-providers&#34;&gt;Gestión de Providers
&lt;/h2&gt;&lt;p&gt;La primera capa de &lt;code&gt;CC Switch&lt;/code&gt; es la gestión de Providers.&lt;/p&gt;
&lt;p&gt;Incluye más de 50 presets de Provider. El README menciona direcciones como AWS Bedrock, NVIDIA NIM y varios relays comunitarios. Los usuarios pueden copiar una API key, importarla con un clic y luego cambiar desde la interfaz.&lt;/p&gt;
&lt;p&gt;Los puntos prácticos incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Añadir Providers con un clic.&lt;/li&gt;
&lt;li&gt;Reordenar Providers arrastrando.&lt;/li&gt;
&lt;li&gt;Cambiar rápidamente desde la bandeja del sistema.&lt;/li&gt;
&lt;li&gt;Importar y exportar Providers.&lt;/li&gt;
&lt;li&gt;Sincronizar algunos Providers comunes entre varias apps.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para muchas personas, esta función por sí sola ya es atractiva. En el trabajo diario de programación con IA, el problema muchas veces no es &amp;ldquo;no sé usar el modelo&amp;rdquo;, sino &amp;ldquo;qué herramienta, endpoint y cuenta debería usar hoy esta key&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;proxy-local-y-failover&#34;&gt;Proxy local y failover
&lt;/h2&gt;&lt;p&gt;Además de escribir archivos de configuración, &lt;code&gt;CC Switch&lt;/code&gt; también proporciona un modo de proxy local.&lt;/p&gt;
&lt;p&gt;El foco de esta capacidad es:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cambio en caliente de Providers.&lt;/li&gt;
&lt;li&gt;Conversión de formatos.&lt;/li&gt;
&lt;li&gt;Failover automático.&lt;/li&gt;
&lt;li&gt;Circuit breakers.&lt;/li&gt;
&lt;li&gt;Health checks de Providers.&lt;/li&gt;
&lt;li&gt;Corrección de solicitudes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En términos simples, no solo escribe configuración en herramientas objetivo. También puede añadir una capa de proxy local en el medio, para que distintas herramientas accedan a servicios de modelos mediante el proxy.&lt;/p&gt;
&lt;p&gt;Esto es útil para usuarios con múltiples Providers: si un servicio cae, cambiar a otro; si un modelo es caro, pasar a uno más barato; si el formato de solicitud es incompatible, adaptarlo mediante la capa de proxy.&lt;/p&gt;
&lt;h2 id=&#34;mcp-prompts-y-skills&#34;&gt;MCP, Prompts y Skills
&lt;/h2&gt;&lt;p&gt;La segunda capa importante de &lt;code&gt;CC Switch&lt;/code&gt; es la gestión unificada de MCP, Prompts y Skills.&lt;/p&gt;
&lt;h3 id=&#34;mcp&#34;&gt;MCP
&lt;/h3&gt;&lt;p&gt;Proporciona un panel MCP unificado para gestionar servidores MCP entre varias apps, con soporte para sincronización bidireccional e importación mediante Deep Link.&lt;/p&gt;
&lt;p&gt;Esto es práctico para usuarios que ya trabajan con MCP. Cuando hay muchos servidores MCP, la configuración se dispersa fácilmente entre distintos clientes. Un panel unificado reduce la configuración duplicada y facilita la migración.&lt;/p&gt;
&lt;h3 id=&#34;prompts&#34;&gt;Prompts
&lt;/h3&gt;&lt;p&gt;La sección Prompts soporta edición Markdown y puede sincronizar archivos correspondientes entre distintas herramientas, como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AGENTS.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GEMINI.md&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estos archivos son esencialmente manuales de proyecto para Agents. La gestión unificada facilita mantener reglas de equipo, convenciones de proyecto y prompts globales.&lt;/p&gt;
&lt;h3 id=&#34;skills&#34;&gt;Skills
&lt;/h3&gt;&lt;p&gt;Las Skills pueden instalarse con un clic desde repositorios GitHub o archivos ZIP. También se soportan gestión de repositorios personalizados, enlaces simbólicos y copia de archivos.&lt;/p&gt;
&lt;p&gt;Si usas herramientas como Claude Code, Codex y OpenClaw al mismo tiempo, las Skills pueden convertirse fácilmente en archivos dispersos por distintos directorios. &lt;code&gt;CC Switch&lt;/code&gt; las centraliza y reduce el costo de mantenimiento.&lt;/p&gt;
&lt;h2 id=&#34;sesiones-y-workspace&#34;&gt;Sesiones y workspace
&lt;/h2&gt;&lt;p&gt;El README también menciona funciones de Session Manager y Workspace.&lt;/p&gt;
&lt;p&gt;Puede explorar, buscar y restaurar historial de sesiones de varias apps. Para personas que usan herramientas de programación con IA durante mucho tiempo, la gestión de sesiones es realmente importante: muchos contextos valiosos, rastros de depuración y comparaciones de soluciones quedan enterrados en conversaciones antiguas.&lt;/p&gt;
&lt;p&gt;También proporciona un editor de Workspace para OpenClaw, permitiendo editar archivos de agente como &lt;code&gt;AGENTS.md&lt;/code&gt; y &lt;code&gt;SOUL.md&lt;/code&gt; con vista previa Markdown.&lt;/p&gt;
&lt;p&gt;Esto muestra que &lt;code&gt;CC Switch&lt;/code&gt; no es solo una pequeña utilidad para &amp;ldquo;cambiar keys&amp;rdquo;. Se está expandiendo hacia una estación de trabajo para AI Agent.&lt;/p&gt;
&lt;h2 id=&#34;sincronización-en-la-nube-y-almacenamiento-de-datos&#34;&gt;Sincronización en la nube y almacenamiento de datos
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;CC Switch&lt;/code&gt; soporta sincronizar datos de Providers mediante Dropbox, OneDrive, iCloud, NAS o WebDAV.&lt;/p&gt;
&lt;p&gt;El almacenamiento local de datos también está claramente definido:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Base de datos: &lt;code&gt;~/.cc-switch/cc-switch.db&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Configuración local: &lt;code&gt;~/.cc-switch/settings.json&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Copias automáticas: &lt;code&gt;~/.cc-switch/backups/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Skills: &lt;code&gt;~/.cc-switch/skills/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Copias de Skills: &lt;code&gt;~/.cc-switch/skill-backups/&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Usa SQLite como fuente principal de datos y enfatiza escrituras atómicas y copias automáticas, con el objetivo de evitar corrupción de archivos de configuración durante cambios o escrituras.&lt;/p&gt;
&lt;p&gt;Este diseño importa para usuarios intensivos. Si la herramienta de gestión de configuración escribe una mala configuración, todas las herramientas de programación con IA pueden verse afectadas.&lt;/p&gt;
&lt;h2 id=&#34;instalación&#34;&gt;Instalación
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;CC Switch&lt;/code&gt; es una app de escritorio multiplataforma construida sobre Tauri 2.&lt;/p&gt;
&lt;p&gt;Los requisitos aproximados del sistema son:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Windows: Windows 10 o posterior&lt;/li&gt;
&lt;li&gt;macOS: macOS 12 Monterey o posterior&lt;/li&gt;
&lt;li&gt;Linux: Ubuntu 22.04+, Debian 11+, Fedora 34+ y otras distribuciones principales&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Los usuarios de Windows pueden descargar el instalador &lt;code&gt;.msi&lt;/code&gt; o un paquete comprimido portable.&lt;/p&gt;
&lt;p&gt;Los usuarios de macOS pueden instalarlo con Homebrew:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;brew tap farion1231/ccswitch
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;brew install --cask cc-switch
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Para actualizar:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;brew upgrade --cask cc-switch
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Los usuarios de Linux pueden elegir &lt;code&gt;.deb&lt;/code&gt;, &lt;code&gt;.rpm&lt;/code&gt; o AppImage. Los usuarios de Arch Linux también pueden instalarlo con &lt;code&gt;paru -S cc-switch-bin&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Al 6 de mayo de 2026, la página del repositorio muestra la última release como &lt;code&gt;CC Switch v3.14.1&lt;/code&gt;, publicada el 23 de abril de 2026.&lt;/p&gt;
&lt;h2 id=&#34;stack-técnico&#34;&gt;Stack técnico
&lt;/h2&gt;&lt;p&gt;Por la estructura del repositorio, &lt;code&gt;CC Switch&lt;/code&gt; es una app de escritorio Tauri típica:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Frontend: React 18, TypeScript, Vite, TailwindCSS, TanStack Query, shadcn/ui&lt;/li&gt;
&lt;li&gt;Backend: Tauri 2, Rust, SQLite, Tokio&lt;/li&gt;
&lt;li&gt;Testing: Vitest, MSW, Testing Library&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Los patrones de diseño principales incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SQLite como Single Source of Truth.&lt;/li&gt;
&lt;li&gt;JSON para configuración local a nivel de dispositivo.&lt;/li&gt;
&lt;li&gt;Escritura en la configuración viva de herramientas objetivo durante el cambio.&lt;/li&gt;
&lt;li&gt;Rellenar ediciones del Provider actual desde la configuración viva.&lt;/li&gt;
&lt;li&gt;Escrituras atómicas usando archivos temporales más rename.&lt;/li&gt;
&lt;li&gt;Conexiones de base de datos bloqueadas para evitar problemas de escritura concurrente.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esta arquitectura sugiere que el proyecto no es un script simple, sino una herramienta de escritorio diseñada para uso de largo plazo.&lt;/p&gt;
&lt;h2 id=&#34;para-quién-es&#34;&gt;Para quién es
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;CC Switch&lt;/code&gt; encaja con estos usuarios:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Personas que usan Claude Code, Codex, Gemini CLI, OpenCode y OpenClaw juntas.&lt;/li&gt;
&lt;li&gt;Personas que cambian con frecuencia entre cuentas oficiales, relays de terceros, modelos locales o Providers de equipo.&lt;/li&gt;
&lt;li&gt;Usuarios que ya usan MCP intensivamente.&lt;/li&gt;
&lt;li&gt;Equipos que quieren mantener &lt;code&gt;CLAUDE.md&lt;/code&gt;, &lt;code&gt;AGENTS.md&lt;/code&gt; y &lt;code&gt;GEMINI.md&lt;/code&gt; en un solo lugar.&lt;/li&gt;
&lt;li&gt;Usuarios que instalan, prueban y migran Skills con frecuencia.&lt;/li&gt;
&lt;li&gt;Personas que quieren ver historial de sesiones y uso entre distintas herramientas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si solo usas una herramienta de programación con IA, dependes del login oficial y rara vez tocas Providers, MCP o Skills, su valor puede no ser evidente.&lt;/p&gt;
&lt;p&gt;Pero si ya entraste en un estado de &amp;ldquo;muchas herramientas, muchas cuentas, muchos Providers, muchos proyectos&amp;rdquo;, puede eliminar mucho trabajo repetitivo de configuración.&lt;/p&gt;
&lt;h2 id=&#34;qué-vigilar&#34;&gt;Qué vigilar
&lt;/h2&gt;&lt;p&gt;Herramientas como esta son cómodas, pero también necesitan límites claros.&lt;/p&gt;
&lt;p&gt;Primero, gestiona configuración para múltiples AI CLIs, así que los usuarios deben asegurarse de confiar en la herramienta y su lógica de escritura.&lt;/p&gt;
&lt;p&gt;Segundo, API keys, endpoints relay y servidores MCP son configuración sensible. Antes de activar sincronización en la nube, asegúrate de que la carpeta de sincronización y el servicio WebDAV sean seguros y confiables.&lt;/p&gt;
&lt;p&gt;Tercero, después de cambiar Providers, la mayoría de herramientas todavía necesitan reiniciar la terminal o CLI para que los cambios surtan efecto. El README menciona que Claude Code soporta cambio en caliente de datos de Provider, pero otras herramientas normalmente aún requieren reinicio.&lt;/p&gt;
&lt;p&gt;Cuarto, al volver al login oficial, es mejor añadir el provider oficial según las instrucciones del proyecto y luego volver a ejecutar el flujo de login de la herramienta correspondiente.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;El valor de &lt;code&gt;CC Switch&lt;/code&gt; no está en crear otra herramienta de programación con IA. Su valor está en reconocer una realidad: el ecosistema de AI coding entró en una etapa donde coexisten múltiples herramientas.&lt;/p&gt;
&lt;p&gt;Claude Code, Codex, Gemini CLI, OpenCode y OpenClaw tienen cada una sus propios sistemas de configuración, mientras MCP, Skills, Prompts y Providers se expanden rápidamente. Seguir editando archivos de configuración a mano terminará convirtiéndose en una carga.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;CC Switch&lt;/code&gt; reúne estas piezas en una app de escritorio, facilitando cambiar Providers, sincronizar MCP, gestionar Skills, mantener archivos de prompt y ver sesiones. Para usuarios intensivos de programación con IA, herramientas como esta pueden pasar de &amp;ldquo;utilidad opcional&amp;rdquo; a &amp;ldquo;infraestructura diaria&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/farion1231/cc-switch&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;farion1231/cc-switch&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Guía inicial de Codex App: instalación, sandbox, tareas paralelas, Skills y MCP</title>
        <link>https://knightli.com/es/2026/05/06/codex-app-complete-guide-skills-mcp/</link>
        <pubDate>Wed, 06 May 2026 08:41:17 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/06/codex-app-complete-guide-skills-mcp/</guid>
        <description>&lt;p&gt;Codex App puede entenderse como un espacio de trabajo de tareas para programación con IA. No es un IDE tradicional ni solo una ventana de chat. Reúne multitarea, gestión de proyectos, permisos de sandbox, Git, ejecución en la nube, plugins, Skills, MCP y automatización en una sola interfaz.&lt;/p&gt;
&lt;p&gt;Si ya usas Codex CLI, Claude Code, Cursor u otros coding agents, la parte más interesante de Codex App es que convierte &amp;ldquo;ejecutar varios agentes en paralelo&amp;rdquo; en un flujo de escritorio más claro.&lt;/p&gt;
&lt;h2 id=&#34;para-qué-sirve-codex-app&#34;&gt;Para qué sirve Codex App
&lt;/h2&gt;&lt;p&gt;El valor central de Codex App no es responder preguntas, sino permitir que la IA ejecute tareas de forma continua dentro de un directorio de proyecto:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Editar código, ejecutar comandos e iniciar servidores de desarrollo.&lt;/li&gt;
&lt;li&gt;Gestionar múltiples proyectos y múltiples tareas.&lt;/li&gt;
&lt;li&gt;Ejecutar tareas largas localmente o en la nube.&lt;/li&gt;
&lt;li&gt;Llamar plugins, Skills y MCP para ampliar capacidades.&lt;/li&gt;
&lt;li&gt;Gestionar cambios mediante Git, worktree y flujos PR.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;OpenAI también posiciona Codex App como una interfaz para gestionar múltiples coding agents. Es adecuada para personas que necesitan avanzar varias tareas de programación a la vez, especialmente páginas frontend, scripts, apps pequeñas, documentación y flujos de automatización.&lt;/p&gt;
&lt;h2 id=&#34;preparación-antes-de-instalar&#34;&gt;Preparación antes de instalar
&lt;/h2&gt;&lt;p&gt;Antes de usar Codex App, conviene preparar tres herramientas básicas:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;Git&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Node.js&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;VS Code&lt;/code&gt; o tu IDE preferido&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Codex App soporta macOS y Windows. Después de instalar, inicia sesión con tu cuenta de ChatGPT. En el primer lanzamiento, puedes elegir tu escenario principal de uso, como programación o trabajo diario. Codex precargará algunos plugins y Skills según tus elecciones, y luego puedes ajustarlos en configuración y en el marketplace de plugins.&lt;/p&gt;
&lt;p&gt;Las funciones principales en Windows y macOS son bastante parecidas, pero algunas capacidades de automatización del ordenador pueden depender de la plataforma y del soporte de plugins. Usa lo que tu versión actual muestre realmente.&lt;/p&gt;
&lt;h2 id=&#34;estructura-de-interfaz-proyectos-tareas-y-chats&#34;&gt;Estructura de interfaz: proyectos, tareas y chats
&lt;/h2&gt;&lt;p&gt;Codex App usa un diseño clásico de tres columnas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Izquierda: proyectos, tareas, historial de chats, plugins y entradas de automatización.&lt;/li&gt;
&lt;li&gt;Centro: ventana de chat actual.&lt;/li&gt;
&lt;li&gt;Derecha: archivos, navegador, terminal, resultados de ejecución y otros paneles.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un proyecto normalmente corresponde a una carpeta local. Puedes abrir varios chats dentro del mismo proyecto, o abrir varios proyectos a la vez para que distintos agentes trabajen en paralelo.&lt;/p&gt;
&lt;p&gt;La lista de tareas muestra distintos estados:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Running: el agente sigue ejecutando.&lt;/li&gt;
&lt;li&gt;Waiting for approval: debes confirmar permisos, red, instalación de dependencias o una acción de alto riesgo.&lt;/li&gt;
&lt;li&gt;Completed: la tarea terminó, y puedes inspeccionar el resultado o seguir preguntando.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto es más intuitivo que cambiar entre varias ventanas de terminal, y se adapta mejor a gestionar varias tareas de IA a la vez.&lt;/p&gt;
&lt;h2 id=&#34;sandbox-y-control-de-permisos&#34;&gt;Sandbox y control de permisos
&lt;/h2&gt;&lt;p&gt;El sistema de permisos de Codex App se construye alrededor del sandbox. Por defecto, la carpeta actual del proyecto se convierte en el workspace principal del agente.&lt;/p&gt;
&lt;p&gt;Los límites de permisos comunes incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Puede leer y modificar archivos dentro del directorio del proyecto.&lt;/li&gt;
&lt;li&gt;Por defecto no puede modificar libremente archivos fuera del proyecto.&lt;/li&gt;
&lt;li&gt;La red o comandos de alto riesgo están restringidos por defecto.&lt;/li&gt;
&lt;li&gt;Cuando necesita acceso elevado, pide aprobación al usuario.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un modo práctico es &amp;ldquo;auto review&amp;rdquo;: las acciones de bajo riesgo se permiten automáticamente, mientras que las acciones de alto riesgo siguen siendo confirmadas por el usuario. Esto reduce ventanas emergentes frecuentes y evita que operaciones peligrosas ocurran en silencio.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Full access&amp;rdquo; debe habilitarse con cautela. Es adecuado cuando sabes exactamente qué necesita hacer el agente, el proyecto ya tiene respaldos Git y los archivos importantes tienen copias separadas. No se recomienda como valor diario permanente.&lt;/p&gt;
&lt;h2 id=&#34;contexto-modelos-y-cuotas&#34;&gt;Contexto, modelos y cuotas
&lt;/h2&gt;&lt;p&gt;Codex App muestra el uso de contexto del chat actual. Cuanto más larga es la conversación y más historial contiene, más contexto necesita procesar el modelo.&lt;/p&gt;
&lt;p&gt;Hábitos útiles:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Empezar un chat nuevo después de terminar una tarea.&lt;/li&gt;
&lt;li&gt;Los chats largos pueden comprimirse manualmente, pero no trates la compresión como memoria perfecta.&lt;/li&gt;
&lt;li&gt;Para tareas complejas, declara claramente objetivos, límites y criterios de aceptación.&lt;/li&gt;
&lt;li&gt;No pegues de golpe logs, errores o archivos grandes e irrelevantes en un chat.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para selección de modelos, ajusta la fuerza de razonamiento según la complejidad de la tarea. Ediciones simples, escritura y tareas repetitivas no siempre necesitan el modelo más fuerte. Migraciones de arquitectura, bugs difíciles y refactors entre archivos encajan mejor con modelos más potentes.&lt;/p&gt;
&lt;p&gt;Si la interfaz tiene un modo rápido, recuerda que normalmente consume más cuota. Úsalo cuando la velocidad importe, pero no como valor diario predeterminado.&lt;/p&gt;
&lt;h2 id=&#34;generación-de-imágenes-y-entradas-multimodales&#34;&gt;Generación de imágenes y entradas multimodales
&lt;/h2&gt;&lt;p&gt;Codex App puede aceptar imágenes y archivos como contexto, y puede llamar generación de imágenes en escenarios adecuados.&lt;/p&gt;
&lt;p&gt;Esto es útil para proyectos frontend y de contenido. Por ejemplo, puedes pedir a Codex:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Corregir estilos de página según capturas.&lt;/li&gt;
&lt;li&gt;Reemplazar imágenes inadecuadas en una web.&lt;/li&gt;
&lt;li&gt;Generar imágenes de producto, imágenes de carrusel o assets de página.&lt;/li&gt;
&lt;li&gt;Señalar qué debe cambiarse a partir de una captura de UI.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un enfoque más eficiente no es decir solo &amp;ldquo;hazlo más bonito&amp;rdquo;, sino usar capturas y señalar problemas concretos, como &amp;ldquo;el espacio en esta tarjeta es demasiado grande&amp;rdquo;, &amp;ldquo;esta imagen no coincide con la escena del servicio&amp;rdquo; o &amp;ldquo;haz más clara el área del mapa&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;steer-corregir-dirección-durante-la-ejecución&#34;&gt;Steer: corregir dirección durante la ejecución
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Steer&lt;/code&gt; puede entenderse como tomar control de la dirección durante la ejecución. Si el agente ya empezó pero notas que entendió mal, no siempre conviene esperar a que termine para corregirlo.&lt;/p&gt;
&lt;p&gt;Puedes usar steering para insertar una nueva instrucción en el flujo de ejecución actual y hacer que Codex corrija el rumbo.&lt;/p&gt;
&lt;p&gt;Buenos casos de uso para Steer incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El agente entendió mal el requisito.&lt;/li&gt;
&lt;li&gt;El estilo de página generado es claramente incorrecto.&lt;/li&gt;
&lt;li&gt;El plan actual es demasiado costoso o pesado.&lt;/li&gt;
&lt;li&gt;Necesitas añadir una restricción clave temporalmente.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En general, mantén el comportamiento predeterminado en cola y usa Steer manualmente solo cuando se necesite intervención. Esto evita interrumpir tareas normales y aun así permite recuperar la dirección en momentos clave.&lt;/p&gt;
&lt;h2 id=&#34;modo-plan-y-navegador-integrado&#34;&gt;Modo plan y navegador integrado
&lt;/h2&gt;&lt;p&gt;Para tareas complejas, empieza con modo plan. En modo plan, Codex no modifica código de inmediato. Primero produce un plan y puede hacer preguntas clave con tarjetas.&lt;/p&gt;
&lt;p&gt;Tareas adecuadas para modo plan incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Migración de frameworks, como pasar un proyecto React a Next.js.&lt;/li&gt;
&lt;li&gt;Refactors grandes.&lt;/li&gt;
&lt;li&gt;Funciones que involucran bases de datos, autenticación o despliegue.&lt;/li&gt;
&lt;li&gt;Requisitos donde aún no has decidido la ruta técnica.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El panel derecho de Codex App puede abrir un navegador integrado para previsualizar el servidor local de desarrollo. Puedes anotar la página y dejar que Codex modifique una ubicación específica de UI. Este flujo de &amp;ldquo;mirar la página, hacer clic en la posición y pedir a la IA que la cambie&amp;rdquo; suele ser mejor para depuración frontend que descripciones puramente textuales.&lt;/p&gt;
&lt;h2 id=&#34;git-ide-y-rollback-de-código&#34;&gt;Git, IDE y rollback de código
&lt;/h2&gt;&lt;p&gt;Codex App no es un IDE completo. Puede ver código y añadir anotaciones, pero la edición manual sigue siendo mejor en VS Code, Cursor, Windsurf u otro IDE.&lt;/p&gt;
&lt;p&gt;Todo proyecto de Codex debería inicializar Git temprano:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Pedir a Codex que cree o revise &lt;code&gt;.gitignore&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Hacer un commit al llegar a un estado usable.&lt;/li&gt;
&lt;li&gt;Asegurar un punto de commit limpio antes de cada cambio grande.&lt;/li&gt;
&lt;li&gt;Volver atrás con Git si no estás satisfecho.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si haces rollback solo del historial de chat, el código no vuelve automáticamente. Un enfoque más seguro es devolver el chat al punto correcto y luego usar un hash de commit Git para devolver el código al estado correspondiente.&lt;/p&gt;
&lt;h2 id=&#34;worktree-desarrollo-paralelo-en-varias-direcciones&#34;&gt;Worktree: desarrollo paralelo en varias direcciones
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;git worktree&lt;/code&gt; es especialmente adecuado para agentes paralelos en Codex App.&lt;/p&gt;
&lt;p&gt;Crea varios directorios de trabajo independientes desde el mismo repositorio, cada uno correspondiente a una rama distinta. Esto permite que diferentes agentes trabajen en distintas carpetas al mismo tiempo sin sobrescribirse.&lt;/p&gt;
&lt;p&gt;Uso típico:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Un worktree optimiza el componente de reseñas de clientes.&lt;/li&gt;
&lt;li&gt;Un worktree ajusta información de tienda y diseño del mapa.&lt;/li&gt;
&lt;li&gt;Fusionar ambas tareas de vuelta a main tras completarlas.&lt;/li&gt;
&lt;li&gt;Eliminar worktrees temporales después de fusionar.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto es mucho más seguro que dejar que varios agentes modifiquen código en el mismo directorio. Si hay conflictos, revísalos y fusiónalos con flujos Git normales.&lt;/p&gt;
&lt;h2 id=&#34;entorno-de-ejecución-en-la-nube&#34;&gt;Entorno de ejecución en la nube
&lt;/h2&gt;&lt;p&gt;Codex puede trabajar no solo en tu máquina local, sino también en un entorno de nube.&lt;/p&gt;
&lt;p&gt;La ejecución en la nube es adecuada cuando:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Estás fuera y solo tienes un teléfono.&lt;/li&gt;
&lt;li&gt;Quieres que los agentes ejecuten tareas largas en segundo plano.&lt;/li&gt;
&lt;li&gt;El código ya se sincronizó con GitHub y Codex necesita modificar el repositorio remoto.&lt;/li&gt;
&lt;li&gt;Quieres revisar y fusionar cambios mediante PRs.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un flujo típico es: subir el código local a GitHub, dejar que Codex descargue el repositorio en un entorno de nube, ejecutar la tarea, generar cambios y presentarlos como PR o diff para revisión.&lt;/p&gt;
&lt;p&gt;Al continuar el desarrollo local, recuerda traer los últimos cambios remotos.&lt;/p&gt;
&lt;h2 id=&#34;sistema-de-memoria-escribe-un-buen-agentsmd&#34;&gt;Sistema de memoria: escribe un buen AGENTS.md
&lt;/h2&gt;&lt;p&gt;Los chats nuevos no tienen memoria histórica completa por defecto. Una vez que un proyecto se vuelve complejo, explicar el contexto repetidamente es ineficiente.&lt;/p&gt;
&lt;p&gt;La solución más general es mantener &lt;code&gt;AGENTS.md&lt;/code&gt; en la raíz del proyecto. Este archivo puede registrar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Objetivos del proyecto y stack principal.&lt;/li&gt;
&lt;li&gt;Comandos comunes.&lt;/li&gt;
&lt;li&gt;Estructura de directorios.&lt;/li&gt;
&lt;li&gt;Estilo de código y convenciones de nombres.&lt;/li&gt;
&lt;li&gt;Acciones prohibidas, como borrar archivos en masa.&lt;/li&gt;
&lt;li&gt;Reglas de pruebas, build y despliegue.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;También puedes pedir a Codex que lea el proyecto y genere una primera versión de &lt;code&gt;AGENTS.md&lt;/code&gt;, luego revisarla manualmente. Para proyectos complejos, vale la pena mantener este archivo.&lt;/p&gt;
&lt;p&gt;Las reglas globales deben usarse con cuidado. Son adecuadas para restricciones universales de seguridad, como &amp;ldquo;no borrar directorios recursivamente&amp;rdquo; o &amp;ldquo;confirmar antes de operaciones destructivas&amp;rdquo;. No pongas detalles específicos del proyecto en reglas globales, o contaminarán otros proyectos.&lt;/p&gt;
&lt;h2 id=&#34;plugins-y-automatizaciones&#34;&gt;Plugins y automatizaciones
&lt;/h2&gt;&lt;p&gt;Los plugins conectan Codex con servicios externos como GitHub, Gmail, Google Drive, bases de datos y plataformas de despliegue.&lt;/p&gt;
&lt;p&gt;Su valor está en reducir copiar y pegar. Por ejemplo, Codex puede:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Revisar tendencias de estrellas de un repositorio GitHub.&lt;/li&gt;
&lt;li&gt;Resumir contenido de email y enviártelo.&lt;/li&gt;
&lt;li&gt;Ejecutar una revisión recurrente.&lt;/li&gt;
&lt;li&gt;Escribir el resultado como resumen.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Las automatizaciones son adecuadas para tareas repetidas. Por ejemplo, revisar datos de un repositorio todos los viernes por la tarde y enviar un informe por email. Las tareas simples de automatización normalmente no requieren el modelo más fuerte; basta un modelo más ligero.&lt;/p&gt;
&lt;h2 id=&#34;skills-convertir-flujos-de-trabajo-en-capacidades-reutilizables&#34;&gt;Skills: convertir flujos de trabajo en capacidades reutilizables
&lt;/h2&gt;&lt;p&gt;Las Skills son &amp;ldquo;manuales profesionales&amp;rdquo; para Codex. No son prompts de una sola vez. Empaquetan un flujo de tarea, reglas, scripts y notas para que Codex pueda reutilizarlos de forma fiable después.&lt;/p&gt;
&lt;p&gt;Fuentes comunes incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Skills oficiales.&lt;/li&gt;
&lt;li&gt;Skills de terceros.&lt;/li&gt;
&lt;li&gt;Skills escritas por ti.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Buenos candidatos para Skills incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Convertir subtítulos en notas ilustradas.&lt;/li&gt;
&lt;li&gt;Escribir informes semanales con formato de empresa.&lt;/li&gt;
&lt;li&gt;Procesar imágenes o documentos por lotes.&lt;/li&gt;
&lt;li&gt;Revisiones de código con formato fijo.&lt;/li&gt;
&lt;li&gt;Inicialización de proyectos para un framework concreto.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si has copiado y pegado el mismo prompt muchas veces, vale la pena convertirlo en una Skill.&lt;/p&gt;
&lt;h2 id=&#34;mcp-conectar-herramientas-externas-y-bases-de-datos&#34;&gt;MCP: conectar herramientas externas y bases de datos
&lt;/h2&gt;&lt;p&gt;MCP puede entenderse como un protocolo estandarizado de herramientas para modelos grandes. Mediante MCP, Codex puede llamar servicios externos para completar tareas más concretas.&lt;/p&gt;
&lt;p&gt;Por ejemplo, después de conectar Supabase, Codex puede:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Crear tablas de base de datos.&lt;/li&gt;
&lt;li&gt;Leer esquemas de base de datos.&lt;/li&gt;
&lt;li&gt;Modificar endpoints backend.&lt;/li&gt;
&lt;li&gt;Enviar formularios frontend a la base de datos.&lt;/li&gt;
&lt;li&gt;Depurar problemas según el estado de la base de datos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto es poderoso, pero los permisos importan. Bases de datos, entornos de producción, plataformas de despliegue y cuentas de email son recursos de alto riesgo. Al conectarlos por primera vez, usa un proyecto de prueba y una cuenta con pocos privilegios.&lt;/p&gt;
&lt;h2 id=&#34;plugins-de-despliegue&#34;&gt;Plugins de despliegue
&lt;/h2&gt;&lt;p&gt;Los plugins de plataformas de despliegue pueden permitir que Codex complete builds y releases directamente, como desplegar un proyecto frontend en Netlify.&lt;/p&gt;
&lt;p&gt;Estos plugins son adecuados para sitios pequeños, prototipos, herramientas internas y demos. En uso real, presta atención a:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ejecutar un build local antes del despliegue.&lt;/li&gt;
&lt;li&gt;No escribir variables de entorno directamente en el código.&lt;/li&gt;
&lt;li&gt;Comprobar que la página abre normalmente después de publicar.&lt;/li&gt;
&lt;li&gt;Mantener revisión humana para proyectos de producción.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La IA puede ayudar a conectar el flujo de despliegue, pero los permisos de despliegue deben gestionarse con cuidado.&lt;/p&gt;
&lt;h2 id=&#34;automatización-del-ordenador&#34;&gt;Automatización del ordenador
&lt;/h2&gt;&lt;p&gt;Con plataformas y entornos de plugins soportados, Codex también puede operar navegadores o apps de escritorio, completando tareas más cercanas a RPA.&lt;/p&gt;
&lt;p&gt;Ejemplos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Abrir una app de chat y preparar un mensaje.&lt;/li&gt;
&lt;li&gt;Navegar un tablero de proyecto y resumir estado de tareas.&lt;/li&gt;
&lt;li&gt;Generar un brief en inglés.&lt;/li&gt;
&lt;li&gt;Enviarlo a un destinatario especificado después de tu confirmación.&lt;/li&gt;
&lt;li&gt;Convertir el flujo en una automatización programada.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas capacidades son imaginativas, pero requieren los límites de seguridad más fuertes. Cualquier operación que implique enviar mensajes, enviar email, enviar formularios, pagos o eliminar datos debe conservar confirmación humana.&lt;/p&gt;
&lt;h2 id=&#34;sugerencias-de-uso&#34;&gt;Sugerencias de uso
&lt;/h2&gt;&lt;p&gt;La forma correcta de usar Codex App no es dejarle tomar todo de golpe, sino dividir tareas y permitir que ejecute eficientemente en un entorno controlado.&lt;/p&gt;
&lt;p&gt;Hábitos recomendados:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Inicializar Git en cada proyecto.&lt;/li&gt;
&lt;li&gt;Usar modo plan para tareas complejas.&lt;/li&gt;
&lt;li&gt;Usar worktree para tareas paralelas.&lt;/li&gt;
&lt;li&gt;Poner reglas de proyecto en &lt;code&gt;AGENTS.md&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Mantener confirmación humana para acciones de alto riesgo.&lt;/li&gt;
&lt;li&gt;Convertir flujos repetidos en Skills o automatizaciones.&lt;/li&gt;
&lt;li&gt;Validar plugins y MCP primero en un entorno de prueba.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://openai.com/index/introducing-the-codex-app/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Introducing the Codex app - OpenAI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://help.openai.com/en/articles/11369540-codex-in-chatgpt&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Using Codex with your ChatGPT plan - OpenAI Help Center&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://openai.com/academy/codex-plugins-and-skills/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Plugins and skills - OpenAI Academy&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Codex App no es &amp;ldquo;otra ventana de chat con IA&amp;rdquo;. Su foco es convertir la programación con IA en un espacio de trabajo gestionable, donde proyectos locales, tareas en la nube, Git, worktree, plugins, Skills, MCP y automatización puedan conectarse.&lt;/p&gt;
&lt;p&gt;La clave para usarla bien es equilibrar libertad y control. Las tareas pequeñas pueden entregarse a Codex con confianza. Las tareas complejas deben empezar con un plan. Las acciones de alto riesgo deben confirmarse. Usada así, Codex puede convertirse no solo en un asistente que escribe código, sino en una herramienta de ingeniería de largo plazo.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Hermes &#43; Qwen3.6: una solucion barata para desplegar un Agent local</title>
        <link>https://knightli.com/es/2026/05/04/hermes-qwen36-local-agent/</link>
        <pubDate>Mon, 04 May 2026 06:40:30 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/04/hermes-qwen36-local-agent/</guid>
        <description>&lt;p&gt;La idea es ejecutar el modelo Qwen3.6 GGUF con &lt;code&gt;llama.cpp&lt;/code&gt; dentro de WSL2 y conectar Hermes Agent a una API local compatible con OpenAI. Asi puedes tener un asistente de IA local siempre disponible en tu propio ordenador, sin depender de cuotas de tokens de servicios online.&lt;/p&gt;
&lt;p&gt;Esta solucion encaja con usuarios que quieren probar un AI Agent local y, al mismo tiempo, conservar privacidad de datos y control a largo plazo. Puede servir para preguntas diarias, escritura, ayuda con codigo, organizacion de informacion y automatizacion simple. Hay que tener en cuenta que cuanto mayor sea el modelo, mas VRAM necesitara; el ejemplo original usa Qwen3.6-27B y va mas estable con 24GB de VRAM. Si tienes menos VRAM, conviene elegir un modelo mas pequeno o una cuantizacion mas baja.&lt;/p&gt;
&lt;h2 id=&#34;estructura-de-la-solucion&#34;&gt;Estructura de la solucion
&lt;/h2&gt;&lt;p&gt;La cadena completa es sencilla:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Instalar WSL2 y Ubuntu 24.04 en Windows.&lt;/li&gt;
&lt;li&gt;Instalar CUDA Toolkit y compilar &lt;code&gt;llama.cpp&lt;/code&gt; dentro de WSL2.&lt;/li&gt;
&lt;li&gt;Descargar el modelo Qwen3.6 GGUF.&lt;/li&gt;
&lt;li&gt;Iniciar el servicio local con &lt;code&gt;llama-server&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Instalar Hermes Agent y configurarlo hacia &lt;code&gt;http://localhost:8080/v1&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Opcional: escribir un script de inicio para arrancar el servicio del modelo al abrir WSL2.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Hermes aporta la capacidad de Agent, y Qwen3.6 aporta el LLM local. Combinados, convierten el ordenador en un asistente de IA local y privado.&lt;/p&gt;
&lt;h2 id=&#34;instalar-wsl2-y-ubuntu&#34;&gt;Instalar WSL2 y Ubuntu
&lt;/h2&gt;&lt;p&gt;En una ventana de Windows PowerShell como administrador:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;wsl&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;-install&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;wsl&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;-set-default-version&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Despues de reiniciar, instala Ubuntu 24.04:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;wsl&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;-install&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-d&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Ubuntu&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;24.04&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Al terminar, Ubuntu pedira usuario y contrasena. Ya dentro de Ubuntu, comprueba primero si la GPU NVIDIA se reconoce correctamente en WSL2:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nvidia-smi
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si no se reconoce la GPU, normalmente hay que actualizar primero el driver NVIDIA en Windows. WSL2 hereda el driver de Windows, pero CUDA Toolkit debe instalarse por separado dentro de WSL2.&lt;/p&gt;
&lt;h2 id=&#34;instalar-python-y-herramientas-basicas&#34;&gt;Instalar Python y herramientas basicas
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt update &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo apt install -y python3-pip python3-venv
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Tambien hacen falta herramientas de compilacion, Git y CMake:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install -y cmake build-essential git
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;compilar-llamacpp&#34;&gt;Compilar llama.cpp
&lt;/h2&gt;&lt;p&gt;Clona primero el codigo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/ggerganov/llama.cpp
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; llama.cpp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si WSL2 ya tiene un entorno CUDA utilizable, compila directamente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cmake -B build -DGGML_CUDA&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;ON -DCMAKE_CUDA_ARCHITECTURES&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;89&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cmake --build build -j&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;nproc&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;CMAKE_CUDA_ARCHITECTURES=89&lt;/code&gt; es adecuado para GPU Ada, por ejemplo la serie RTX 40. En otras tarjetas debes ajustarlo segun la arquitectura real.&lt;/p&gt;
&lt;p&gt;Si al compilar aparece que falta CUDA Toolkit, instalalo primero dentro de WSL2:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo dpkg -i cuda-keyring_1.1-1_all.deb
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt update
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install -y cuda-toolkit-12-8
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Despues configura variables de entorno:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;PATH&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;/usr/local/cuda-12.8/bin:&lt;span class=&#34;nv&#34;&gt;$PATH&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;LD_LIBRARY_PATH&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;/usr/local/cuda-12.8/lib64:&lt;span class=&#34;nv&#34;&gt;$LD_LIBRARY_PATH&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;export PATH=/usr/local/cuda-12.8/bin:$PATH&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; ~/.bashrc
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;export LD_LIBRARY_PATH=/usr/local/cuda-12.8/lib64:$LD_LIBRARY_PATH&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; ~/.bashrc
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Y compila de nuevo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; ~/llama.cpp
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rm -rf build
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cmake -B build -DGGML_CUDA&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;ON -DCMAKE_CUDA_ARCHITECTURES&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;89&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cmake --build build -j&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;nproc&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;descargar-el-modelo-qwen36-gguf&#34;&gt;Descargar el modelo Qwen3.6 GGUF
&lt;/h2&gt;&lt;p&gt;El ejemplo original usa &lt;code&gt;Qwen3.6-27B-UD-Q4_K_XL.gguf&lt;/code&gt; de &lt;code&gt;unsloth/Qwen3.6-27B-GGUF&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hf download unsloth/Qwen3.6-27B-GGUF &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Qwen3.6-27B-UD-Q4_K_XL.gguf &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--local-dir ~/models/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El archivo ronda los 17GB. Si Hugging Face descarga lento, puedes cambiar a espejos como ModelScope. Si no tienes suficiente VRAM, no fuerces 27B; usa un modelo mas pequeno o una cuantizacion mas baja.&lt;/p&gt;
&lt;h2 id=&#34;iniciar-el-servicio-local-del-modelo&#34;&gt;Iniciar el servicio local del modelo
&lt;/h2&gt;&lt;p&gt;Arranca &lt;code&gt;llama-server&lt;/code&gt; segun el nombre real de tu archivo de modelo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;~/llama.cpp/build/bin/llama-server &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--model ~/models/Qwen3.6-27B-UD-Q4_K_XL.gguf &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--n-gpu-layers &lt;span class=&#34;m&#34;&gt;99&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--ctx-size &lt;span class=&#34;m&#34;&gt;32768&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--flash-attn on &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--temp 1.0 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--top-p 0.95 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--top-k &lt;span class=&#34;m&#34;&gt;20&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--presence-penalty 1.5 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--port &lt;span class=&#34;m&#34;&gt;8080&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Tras iniciar correctamente, abre en el navegador de Windows:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://localhost:8080
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Para que Hermes Agent u otros clientes compatibles con OpenAI lo llamen, la direccion de API suele ser:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://localhost:8080/v1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;elegir-thinking-mode&#34;&gt;Elegir Thinking mode
&lt;/h2&gt;&lt;p&gt;Qwen3.6 puede activar Thinking mode por defecto. Es util para razonamiento complejo, problemas de codigo complicados y analisis de varios pasos, pero sera mas lento.&lt;/p&gt;
&lt;p&gt;Si quieres desactivarlo, detén el servicio y agrega &lt;code&gt;--chat-template-kwargs&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;~/llama.cpp/build/bin/llama-server &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--model ~/models/Qwen3.6-27B-UD-Q4_K_XL.gguf &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--n-gpu-layers &lt;span class=&#34;m&#34;&gt;99&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--ctx-size &lt;span class=&#34;m&#34;&gt;32768&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--flash-attn on &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--temp 1.0 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--top-p 0.95 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--top-k &lt;span class=&#34;m&#34;&gt;20&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--presence-penalty 1.5 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--chat-template-kwargs &lt;span class=&#34;s1&#34;&gt;&amp;#39;{&amp;#34;enable_thinking&amp;#34;:false}&amp;#39;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--port &lt;span class=&#34;m&#34;&gt;8080&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Sin Thinking, las preguntas simples, escritura, autocompletado de codigo y explicacion de codigo iran mas rapido; para algoritmos complejos, Debug dificil y analisis de arquitectura, sigue siendo recomendable activarlo.&lt;/p&gt;
&lt;h2 id=&#34;instalar-hermes-agent&#34;&gt;Instalar Hermes Agent
&lt;/h2&gt;&lt;p&gt;Mantén &lt;code&gt;llama-server&lt;/code&gt; en ejecucion y abre otra terminal WSL2 para instalar Hermes Agent:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El script instala dependencias como Python, Node.js, ripgrep y ffmpeg. Al configurar el endpoint del modelo, elige endpoint personalizado:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;URL: http://localhost:8080/v1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;API Key: 12345678
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Model: autodetect
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Para el &lt;code&gt;llama-server&lt;/code&gt; local, la API Key puede ser cualquier valor de relleno. Tras configurarlo, puedes conectar Telegram, WeChat, QQ, Discord y otros canales para que Hermes Agent use el modelo local y ejecute tareas.&lt;/p&gt;
&lt;h2 id=&#34;arrancar-automaticamente-el-servicio-del-modelo&#34;&gt;Arrancar automaticamente el servicio del modelo
&lt;/h2&gt;&lt;p&gt;Puedes escribir un script para iniciar el servicio al abrir la terminal WSL2.&lt;/p&gt;
&lt;p&gt;Crea el script:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cat &amp;gt; ~/start-llm.sh &lt;span class=&#34;s&#34;&gt;&amp;lt;&amp;lt; &amp;#39;EOF&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;echo &amp;#34;Starting Qwen3.6-27B llama-server...&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;~/llama.cpp/build/bin/llama-server \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;--model ~/models/Qwen3.6-27B-UD-Q4_K_XL.gguf \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;--n-gpu-layers 99 \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;--ctx-size 65536 \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;--flash-attn on \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;--temp 1.0 \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;--top-p 0.95 \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;--top-k 20 \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;--presence-penalty 1.5 \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;--port 8080 \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;--host 0.0.0.0 &amp;amp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;echo &amp;#34;llama-server started, PID: $!&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;echo &amp;#34;API: http://localhost:8080/v1&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;echo &amp;#34;Chat UI: http://localhost:8080&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;EOF&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;chmod +x ~/start-llm.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Escribe en &lt;code&gt;.bashrc&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;# Auto-start llama-server&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; ~/.bashrc
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;if ! pgrep -f &amp;#34;llama-server&amp;#34; &amp;gt; /dev/null 2&amp;gt;&amp;amp;1; then&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; ~/.bashrc
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;    ~/start-llm.sh&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; ~/.bashrc
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;fi&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; ~/.bashrc
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Asi, cada vez que abras WSL2, si &lt;code&gt;llama-server&lt;/code&gt; no esta en ejecucion se iniciara automaticamente; si ya esta corriendo, se omitira para evitar duplicados.&lt;/p&gt;
&lt;h2 id=&#34;notas&#34;&gt;Notas
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;El modelo 27B exige bastante VRAM; 24GB va mas estable. Con menos VRAM, usa un modelo mas pequeno.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--ctx-size 65536&lt;/code&gt; aumenta mucho la presion de VRAM y RAM. Si no es estable, baja primero a &lt;code&gt;32768&lt;/code&gt; o menos.&lt;/li&gt;
&lt;li&gt;CUDA Toolkit dentro de WSL2 y el driver de Windows deben estar correctos; si falta uno, la compilacion o ejecucion CUDA puede fallar.&lt;/li&gt;
&lt;li&gt;Cuando Hermes Agent se conecta al servicio local, en esencia llama a una API compatible con OpenAI. Lo clave es que &lt;code&gt;http://localhost:8080/v1&lt;/code&gt; responda bien.&lt;/li&gt;
&lt;li&gt;Si quieres acceder desde el telefono u otros dispositivos, debes configurar firewall de Windows, direccion LAN y aislamiento de seguridad. No expongas el servicio local directamente a Internet.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;enlaces-relacionados&#34;&gt;Enlaces relacionados
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Original: &lt;a class=&#34;link&#34; href=&#34;https://www.freedidi.com/24036.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Hermes + Qwen3.6：本地最强 Agent 组合！零成本、无限 Token，太香了！&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;llama.cpp: &lt;a class=&#34;link&#34; href=&#34;https://github.com/ggerganov/llama.cpp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ggerganov/llama.cpp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Hermes Agent: &lt;a class=&#34;link&#34; href=&#34;https://github.com/NousResearch/hermes-agent&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;NousResearch/hermes-agent&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ejemplo Qwen3.6 GGUF: &lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/unsloth/Qwen3.6-27B-GGUF&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;unsloth/Qwen3.6-27B-GGUF&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Gemini Embedding 2: texto, imagen, video y audio en un mismo espacio vectorial</title>
        <link>https://knightli.com/es/2026/05/04/gemini-embedding-2-multimodal-rag/</link>
        <pubDate>Mon, 04 May 2026 06:01:10 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/04/gemini-embedding-2-multimodal-rag/</guid>
        <description>&lt;p&gt;Google Developers Blog presento el uso de Gemini Embedding 2 para desarrollo. El modelo ya esta en GA a traves de Gemini API y Gemini Enterprise Agent Platform. Lo importante no es solo que sea &amp;ldquo;un nuevo modelo de embedding&amp;rdquo;, sino que puede mapear texto, imagenes, video, audio y documentos al mismo espacio semantico.&lt;/p&gt;
&lt;p&gt;Esto amplia los limites de los sistemas de recuperacion. Antes, muchos flujos RAG necesitaban convertir imagenes, videos o audio en texto o metadatos y crear indices separados. Gemini Embedding 2 puede procesar directamente entradas multimodales, haciendo que agents, busqueda y sistemas de clasificacion trabajen mas facilmente con materiales reales de negocio.&lt;/p&gt;
&lt;p&gt;Enlace original: &lt;a class=&#34;link&#34; href=&#34;https://developers.googleblog.com/building-with-gemini-embedding-2/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Building with Gemini Embedding 2: Agentic multimodal RAG and beyond&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;capacidades-del-modelo&#34;&gt;Capacidades del modelo
&lt;/h2&gt;&lt;p&gt;Gemini Embedding 2 admite mas de 100 idiomas. Una sola solicitud puede procesar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Hasta 8,192 tokens de texto.&lt;/li&gt;
&lt;li&gt;Hasta 6 imagenes.&lt;/li&gt;
&lt;li&gt;Hasta 120 segundos de video.&lt;/li&gt;
&lt;li&gt;Hasta 180 segundos de audio.&lt;/li&gt;
&lt;li&gt;Hasta 6 paginas PDF.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La clave es el &amp;ldquo;espacio semantico unificado&amp;rdquo;. Los desarrolladores pueden poner contenidos de distintas modalidades en una misma representacion vectorial y aplicar la misma logica de recuperacion, clustering o reranking.&lt;/p&gt;
&lt;p&gt;Por ejemplo, una descripcion de texto y una imagen pueden ir en la misma solicitud de embedding:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;google&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;genai&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;google.genai&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;types&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;client&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;genai&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Client&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;with&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;open&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;dog.png&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;rb&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;image_bytes&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;read&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;result&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;models&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;embed_content&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;gemini-embedding-2&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;contents&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;An image of a dog&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;types&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Part&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;from_bytes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;image_bytes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;mime_type&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;image/png&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;result&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;embeddings&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si quieres obtener un embedding separado para cada entrada, en vez de agregarlas en un unico vector, puedes usar Batch API. El articulo tambien menciona que Agent Platform sigue avanzando en este soporte por lotes.&lt;/p&gt;
&lt;h2 id=&#34;que-significa-para-rag&#34;&gt;Que significa para RAG
&lt;/h2&gt;&lt;p&gt;El embedding multimodal es muy util para RAG agentico. Un AI agent puede necesitar revisar al mismo tiempo repositorios de codigo, PDF, capturas, graficos, transcripciones de reuniones y fotos de producto. Si todos los materiales entran en el mismo espacio semantico, la recuperacion no necesita una entrada distinta para cada formato.&lt;/p&gt;
&lt;p&gt;Google recomienda usar task prefix segun la tarea para acercar el embedding al objetivo de recuperacion. Por ejemplo, preguntas y respuestas, fact checking, recuperacion de codigo y resultados de busqueda pueden usar prefijos distintos:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Generate embedding for your task&amp;#39;s query:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;prepare_query&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;query&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;task: question answering | query: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;# return f&amp;#34;task: fact checking | query: {content}&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;# return f&amp;#34;task: code retrieval | query: {content}&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;# return f&amp;#34;task: search result | query: {content}&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Generate embedding for document of an asymmetric retrieval task:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;prepare_document&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;title&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;title&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;none&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;title: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt; | text: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Este prefijo encaja con recuperacion asimetrica: las consultas suelen ser cortas y los documentos largos. Preparar query y document con formatos de tarea distintos puede mejorar el emparejamiento entre consulta corta y documento largo.&lt;/p&gt;
&lt;p&gt;El articulo da dos resultados reales:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Harvey mejoro un 3% el Recall@20 precision frente a la generacion anterior de embedding en benchmarks legales.&lt;/li&gt;
&lt;li&gt;Supermemory mejoro un 40% el Recall@1 en precision de busqueda y lo usa en memoria, indexacion, busqueda y Q&amp;amp;A.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estos numeros no significan que todos los escenarios mejoren igual, pero muestran que el embedding multimodal ya no es solo una demostracion, sino que produce efecto en productos reales de busqueda.&lt;/p&gt;
&lt;h2 id=&#34;busqueda-visual&#34;&gt;Busqueda visual
&lt;/h2&gt;&lt;p&gt;Gemini Embedding 2 tambien encaja con busqueda por imagen, busqueda mixta imagen-texto e identificacion de productos. El articulo menciona que Nuuly, una empresa de alquiler de ropa, lo uso para emparejar fotos de ropa sin etiquetar en almacen: Match@20 subio de 60% a casi 87%, y el exito total de identificacion paso de 74% a mas de 90%.&lt;/p&gt;
&lt;p&gt;La clave de estos escenarios no es generar contenido, sino entender &amp;ldquo;a que inventario, documento o registro de producto se parece mas esta imagen&amp;rdquo;. Si tu negocio tiene muchas imagenes, clips de video o documentos escaneados, el embedding multimodal es mas natural que un indice puramente textual.&lt;/p&gt;
&lt;h2 id=&#34;reranking-de-recuperacion&#34;&gt;Reranking de recuperacion
&lt;/h2&gt;&lt;p&gt;El embedding tambien puede usarse para rerank. Una practica comun es recuperar primero un grupo de candidatos y luego calcular la similitud entre cada candidato y la consulta del usuario, subiendo los resultados mas relevantes:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 1. Define a function to calculate the dot product (cosine similarity)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;dot_product&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;np&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ndarray&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;np&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ndarray&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;np&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;array&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;@&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;np&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;array&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;T&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 2. Retrieve your embeddings&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# (Assuming &amp;#39;summaries&amp;#39; is your list of search results)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;search_res&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;get_embeddings&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;summaries&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;embedded_query&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;get_embeddings&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;([&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;query&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 3. Calculate similarity scores&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;sim_value&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dot_product&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;search_res&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;embedded_query&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 4. Select the most relevant result&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;best_match_index&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;np&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;argmax&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sim_value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El articulo tambien menciona otra idea: pedir primero al modelo que genere una respuesta hipotetica con su conocimiento interno, hacer embedding de esa respuesta y compararla con los candidatos. Esto ayuda a elegir resultados semanticamente mas cercanos, especialmente en RAG de preguntas y respuestas.&lt;/p&gt;
&lt;h2 id=&#34;clustering-clasificacion-y-deteccion-de-anomalias&#34;&gt;Clustering, clasificacion y deteccion de anomalias
&lt;/h2&gt;&lt;p&gt;Ademas de recuperacion, los embeddings sirven para clustering, clasificacion y deteccion de anomalias. A diferencia de la recuperacion de preguntas y respuestas, estas son tareas simetricas: query y document pueden usar el mismo prefijo de tarea.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Generate embedding for query &amp;amp; document of your task.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;prepare_query_and_document&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;# return f&amp;#39;task: clustering | query: {content}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;# return f&amp;#39;task: sentence similarity | query: {content}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;# return f&amp;#39;task: classification | query: {content}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Estas tareas pueden aplicarse a clasificacion de opinion publica, moderacion de contenido, agrupacion de activos similares y deteccion de muestras anomalas. Tambien pueden ayudar a un agent a ordenar mucho contexto antes de entrar en razonamiento posterior.&lt;/p&gt;
&lt;h2 id=&#34;almacenamiento-y-coste&#34;&gt;Almacenamiento y coste
&lt;/h2&gt;&lt;p&gt;Gemini Embedding 2 devuelve por defecto vectores de 3,072 dimensiones. Usa Matryoshka Representation Learning, por lo que puedes truncar el vector a una dimension menor con &lt;code&gt;output_dimensionality&lt;/code&gt;. Google recomienda 1,536 o 768 dimensiones cuando la eficiencia es prioritaria:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;result&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;models&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;embed_content&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;gemini-embedding-2&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;contents&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;What is the meaning of life?&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;config&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;output_dimensionality&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;768&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Los vectores pueden almacenarse en Agent Platform Vector Search, Pinecone, Weaviate, Qdrant, ChromaDB y sistemas similares. En coste, el articulo menciona que Batch API ofrece mayor throughput y puede llegar al 50% del precio por defecto de embeddings.&lt;/p&gt;
&lt;h2 id=&#34;como-usarlo-como-desarrollador&#34;&gt;Como usarlo como desarrollador
&lt;/h2&gt;&lt;p&gt;Si ya tienes RAG textual, puedes empezar con dos mejoras incrementales:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Poner PDF, capturas, descripciones de imagen y documentos de texto en un mismo indice, y comprobar si la recuperacion se vuelve mas estable.&lt;/li&gt;
&lt;li&gt;Agregar task prefix para distintas tareas, como Q&amp;amp;A, fact checking, recuperacion de codigo y busqueda de productos. No proceses todo con el mismo formato de embedding.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si estas creando un producto nuevo, considera primero estas direcciones:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Base de conocimiento empresarial: recuperar documentos, graficos, capturas de presentaciones y material de reuniones al mismo tiempo.&lt;/li&gt;
&lt;li&gt;Busqueda visual: encontrar productos, activos, disenos y archivos usando imagen, texto o entradas mixtas.&lt;/li&gt;
&lt;li&gt;Toolchain de Agent: permitir que coding agents, research agents o agentes de soporte recuperen materiales de negocio en varios formatos.&lt;/li&gt;
&lt;li&gt;Gobernanza de contenido: clasificar, agrupar y detectar anomalias en texto, imagenes y clips de video.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El valor de Gemini Embedding 2 esta en convertir materiales multimodales en un mismo conjunto de activos recuperables. Para desarrolladores, reduce la capa intermedia de &amp;ldquo;convertir primero a texto y luego buscar&amp;rdquo;, y acerca los sistemas RAG a la forma real de los datos del mundo.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Biblioteca de prompts de GPT-Image 2: casos de imagen principal para e-commerce</title>
        <link>https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/</link>
        <pubDate>Sat, 02 May 2026 11:35:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/</guid>
        <description>&lt;p&gt;Esta página recopila casos de &lt;code&gt;imagen principal para e-commerce&lt;/code&gt;: 20 ejemplos en total. Cada entrada conserva el enlace del caso original, el autor, la imagen generada y el prompt completo.&lt;/p&gt;
&lt;p&gt;Navegación por categorías: &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-case-index/&#34; &gt;Índice&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/&#34; &gt;Imágenes principales de e-commerce&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/&#34; &gt;Creatividad publicitaria&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/&#34; &gt;Fotografía de retrato&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/&#34; &gt;Ilustración de póster&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-character-cases/&#34; &gt;Diseño de personajes&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/&#34; &gt;UI y redes sociales&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/&#34; &gt;Comparativas y casos de la comunidad&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;imágenes-principales-de-e-commerce&#34;&gt;Imágenes principales de e-commerce
&lt;/h2&gt;&lt;h3 id=&#34;imagen-principal-de-e-commerce---anuncio-de-perfume-ámbar-de-lujo&#34;&gt;Imagen principal de e-commerce - anuncio de perfume ámbar de lujo
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Polanco_IA/status/2047689647967609037&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Polanco_IA&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Polanco_IA&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/000.webp&#34;
	width=&#34;1024&#34;
	height=&#34;1024&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/000_hu_f485d4c5980da91f.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/000_hu_79f504b06facaeba.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Imagen principal de e-commerce - anuncio de perfume ámbar de lujo&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A luxurious cinematic product photograph of a classic rectangular perfume bottle inspired by {argument name=&amp;#34;brand label&amp;#34; default=&amp;#34;N°5 CHANEL PARIS PARFUM&amp;#34;}, placed upright on a glossy black marble surface with white veining. The bottle is centered slightly to the right, made of clear faceted glass with a large transparent crystal stopper, filled with rich amber-gold perfume that glows from within. Tiny condensation droplets cover the glass, adding texture and realism. Dramatic warm lighting from the upper left creates golden highlights, deep reflections on the marble, and a soft luminous bloom in the background. Wisps of elegant smoke curl around the bottle on both sides, enhancing a moody high-end advertisement feel. Dark background, shallow depth of field, ultra-detailed studio product photography, luxury beauty campaign aesthetic, crisp focus on the bottle, realistic reflections, warm black-and-gold color palette. Add a small white {argument name=&amp;#34;corner logo&amp;#34; default=&amp;#34;Pollo.ai&amp;#34;} in the top-right corner. Square composition, premium commercial ad, photorealistic, high contrast, refined and sophisticated.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;imagen-principal-de-e-commerce---fotografía-de-estudio-para-skincare&#34;&gt;Imagen principal de e-commerce - fotografía de estudio para skincare
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Strength04_X/status/2047636636847231222&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Strength04_X&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Strength04_X&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/001.webp&#34;
	width=&#34;1002&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/001_hu_9109c57a0d6d7ec.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/001_hu_8aeaca4f0da10272.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Imagen principal de e-commerce - fotografía de estudio para skincare&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;83&#34;
		data-flex-basis=&#34;200px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A soft {argument name=&amp;#34;bottle color&amp;#34; default=&amp;#34;cream-colored&amp;#34;} bottle with a {argument name=&amp;#34;pump color&amp;#34; default=&amp;#34;pastel yellow&amp;#34;} pump stands on a matte podium, surrounded by silky foam and {argument name=&amp;#34;flowers&amp;#34; default=&amp;#34;chamomile blossoms&amp;#34;}. The background is a pale yellow gradient with subtle bubble details. The label emphasizes organic chamomile and calming care. Fresh chamomile flowers accentuate the gentle appeal.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;imagen-principal-de-e-commerce---póster-de-refresco-cítrico-tropical&#34;&gt;Imagen principal de e-commerce - póster de refresco cítrico tropical
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/edimakorfr/status/2047635133466124726&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/edimakorfr&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@edimakorfr&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/002.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/002_hu_50a6f41beed238c7.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/002_hu_4bc62e586c85aec0.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Imagen principal de e-commerce - póster de refresco cítrico tropical&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a vibrant tropical commercial poster for a citrus soda bottle, in a bright summer advertising style. Show a single large plastic bottle of {argument name=&amp;#34;product name&amp;#34; default=&amp;#34;Soda&amp;#34;} centered slightly to the right, tilted a little left, with a yellow cap and transparent bottle covered in cold condensation droplets, filled with glowing golden-orange soda. The label should feature sliced oranges and citrus artwork with the brand text &amp;#34;{argument name=&amp;#34;product name&amp;#34; default=&amp;#34;Soda&amp;#34;}&amp;#34;, the phrase &amp;#34;aux agrumes d&amp;#39;été&amp;#34;, and a small green &amp;#34;500 ml&amp;#34; mark. Use a sunny beach background with vivid blue sky, turquoise ocean, soft clouds, and blurred tropical palm leaves entering from the upper right corner. Add dramatic water splashes around the base of the bottle, scattered clear ice cubes, and 5 visible citrus pieces in the foreground: 2 orange wedges, 1 lime half, 1 grapefruit half, and 1 partial orange slice at the far right edge. Place large French promotional text on the left: a huge white headline &amp;#34;{argument name=&amp;#34;headline text&amp;#34; default=&amp;#34;Soda&amp;#34;}&amp;#34; with a small splash accent above it, then yellow script text &amp;#34;aux agrumes d&amp;#39;été&amp;#34; underneath. Add a yellow paint-stroke badge at mid-left with the text &amp;#34;LA FRAÎCHEUR QUI PÉTILLE !&amp;#34;. Add a vertical feature list on the lower left with 3 round icons and French captions: &amp;#34;SAVEURS NATURELLES&amp;#34;, &amp;#34;SANS COLORANTS ARTIFICIELS&amp;#34;, and &amp;#34;EXTRA RAFRAÎCHISSANT&amp;#34;. Add a green brushstroke banner at the bottom left reading &amp;#34;FORMAT PRATIQUE 500 ml&amp;#34;. Add a round beige eco-style seal at the bottom right with green outline and leaf motif, containing the text &amp;#34;{argument name=&amp;#34;seal text&amp;#34; default=&amp;#34;PLAISIR FRUITÉ À CHAQUE GORGÉE&amp;#34;}&amp;#34;. Lighting should be glossy and high-energy with strong sun flare from the upper left, saturated citrus colors, crisp packaging detail, realistic droplets, and polished supermarket-ad realism.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;imagen-principal-de-e-commerce---lámina-de-presentación-de-diseño-industrial&#34;&gt;Imagen principal de e-commerce - lámina de presentación de diseño industrial
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/ShamsAmin56/status/2047627860752621647&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/ShamsAmin56&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@ShamsAmin56&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/003.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/003_hu_8784fe7f2988eab8.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/003_hu_78434c2c0300ee54.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Imagen principal de e-commerce - lámina de presentación de diseño industrial&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Core Subject: [{argument name=&amp;#34;reference&amp;#34; default=&amp;#34;use the uploaded image&amp;#34;}, keep the details, typography and structure locked 100%]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Layout &amp;amp; Composition: A {argument name=&amp;#34;presentation type&amp;#34; default=&amp;#34;professional industrial design presentation sheet&amp;#34;}. The image should be organized into a clean grid system.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Top Row: A 3x3 layout showing top-down flat lay views and close-up macro details of materials.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Middle Section: Three hero shots of the product standing upright in different color ways (Matte Black, Arctic White, and accented variants). The products should be slightly tilted to show depth and form.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Bottom Section: A dynamic &amp;#34;floating&amp;#34; composition featuring two products overlapping at opposing angles to showcase the front and side profiles simultaneously.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Environment &amp;amp; Lighting: Set against a minimalist, neutral studio gray background. Soft top-down lighting with realistic contact shadows. High-end product photography aesthetic.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Style &amp;amp; Finish: Matte textures, clean silhouettes, and sharp edges. Leave designated blank areas on the product surfaces for &amp;#34;Placeholder Branding&amp;#34; and &amp;#34;Graphic Mockups.&amp;#34; 4k resolution, Unreal Engine 5 render style, hyper-realistic, clean aesthetic.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;imagen-principal-de-e-commerce---foto-lifestyle-de-mocasines-de-lujo-con-pelo&#34;&gt;Imagen principal de e-commerce - foto lifestyle de mocasines de lujo con pelo
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/dynamicwangs/status/2047580984342925545&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/dynamicwangs&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@dynamicwangs&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/004.webp&#34;
	width=&#34;1200&#34;
	height=&#34;900&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/004_hu_50c9da49cd05f85d.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/004_hu_49bd32fdee48211d.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Imagen principal de e-commerce - foto lifestyle de mocasines de lujo con pelo&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;133&#34;
		data-flex-basis=&#34;320px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A warm, editorial-style lifestyle product photo shot indoors from a low close-up angle, focused on a woman&amp;#39;s lower legs and feet as she tries on 1 pair of black leather backless loafers with tan faux-fur lining. One loafer is worn on the right foot and the left foot is bare, hovering just above the textured cream shag rug, while the second matching loafer lies on the rug in the lower left foreground. The shoes have smooth black leather uppers, a rounded almond toe, open mule-style heel, plush brown fur spilling out around the opening, and a small polished gold horsebit hardware detail across the vamp. The model wears cropped medium-blue denim jeans with a raw frayed hem. The setting is a cozy minimalist interior with a cream rug featuring 2 thin irregular black lines, a neutral wall, and a leaning rectangular mirror with a medium wood frame in the upper right background, softly reflecting the rug and part of the scene. Use soft natural window light, shallow depth of field, subtle film grain, realistic skin texture, muted beige and black palette, relaxed candid composition, premium fashion catalog mood, high detail, photorealistic.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;imagen-principal-de-e-commerce---anuncio-de-perfume-sobre-tocador-de-mármol&#34;&gt;Imagen principal de e-commerce - anuncio de perfume sobre tocador de mármol
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/MiguelMaestroIA/status/2047555836252151831&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/MiguelMaestroIA&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@MiguelMaestroIA&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/005.webp&#34;
	width=&#34;1024&#34;
	height=&#34;1024&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/005_hu_5d7059f8adafa1a9.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/005_hu_1be1808bff17b871.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Imagen principal de e-commerce - anuncio de perfume sobre tocador de mármol&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A luxury e-commerce advertising photo of a premium perfume bottle on a polished gray-and-white marble vanity, shot in a warm cinematic studio style with soft golden lighting, shallow depth of field, and elegant reflections. The composition is square and high-end, with the perfume bottle centered slightly right of frame and promotional text on the left. The bottle is a tall sculpted hourglass-shaped glass flacon with smoky transparent gray glass fading darker at the base, a glossy gold spherical cap, a gold collar engraved with fine branding, and a large metallic gold interlocking monogram on the front. Keep the branding-inspired feel but do not add extra products. In the foreground left, include 1 cut-crystal bowl with a gold rim, partially cropped. In the background right, include 1 brushed gold cylindrical vase holding 1 bouquet of soft white flowers, blurred. Behind the bottle, add 1 black marble rectangular box with subtle white veining and gold trim. In the lower right foreground, include 1 draped piece of champagne-colored satin fabric, softly out of focus. The background should be dark, luxurious, and softly blurred, with rich brown-black tones and a vertical shadowed panel on the left to support typography. Add elegant serif headline text on the upper left reading {argument name=&amp;#34;headline text&amp;#34; default=&amp;#34;Premium Perfume,&amp;#34;} in large warm beige letters, with a smaller serif subheading beneath reading {argument name=&amp;#34;tagline&amp;#34; default=&amp;#34;Subtlety and Elegance&amp;#34;}, plus a thin short gold horizontal line below the subheading. Place a small white logo in the top-right corner reading {argument name=&amp;#34;brand logo&amp;#34; default=&amp;#34;Pollo.ai&amp;#34;}. Emphasize premium materials, realistic glass refraction, gold metallic highlights, luxury product photography, refined composition, soft bokeh, and upscale beauty-ad aesthetics.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;imagen-principal-de-e-commerce---anuncio-de-skincare-en-escena-miniatura&#34;&gt;Imagen principal de e-commerce - anuncio de skincare en escena miniatura
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Strength04_X/status/2048074514278563949&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Strength04_X&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Strength04_X&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/006.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/006_hu_7a1232684c10cd23.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/006_hu_a4c6ffc53a2a0509.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Imagen principal de e-commerce - anuncio de skincare en escena miniatura&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A hyper-realistic miniature diorama product advertisement featuring an oversized luxury skincare pump bottle labeled &amp;#34;LUXEVEIL Skin Science – Radiance Nourishing Body Lotion&amp;#34; in cream/beige with a polished gold pump top, placed on a circular platform. Tiny figurine construction workers dressed in yellow coveralls and white hard hats swarm around the bottle climbing scaffolding, painting the bottle with rollers, operating a tower crane, working near industrial tanks and pipework, and unloading a miniature flatbed truck. The scene includes metal scaffolding structures, industrial silos, orange traffic cones, wooden barricades, and storage barrels. The overall color palette is warm beige, cream, gold, and mustard yellow. Studio photography style with soft diffused lighting, no shadows, clean beige background. The concept metaphorically shows workers &amp;#34;crafting&amp;#34; or &amp;#34;building&amp;#34; the perfect lotion. Tilt-shift miniature aesthetic, ultra-detailed, commercial product photography, 8K resolution, photorealistic CGI render.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;imagen-principal-de-e-commerce---arte-tradicional-chino-y-jarrón-de-porcelana&#34;&gt;Imagen principal de e-commerce - arte tradicional chino y jarrón de porcelana
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen/status/2048046906585280977&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@songguoxiansen&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/007.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/007_hu_f04a5b4d6381699.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/007_hu_d9ceaf33efae3a35.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Imagen principal de e-commerce - arte tradicional chino y jarrón de porcelana&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A scarf inspired by &amp;#39;A Thousand Li of Rivers and Mountains&amp;#39;, surrounded by Wang Ximeng&amp;#39;s blue-green landscape, with a silky texture and soft lighting.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A famille rose porcelain vase featuring Lady Yang Guifei enjoying flowers, with peony and butterfly patterns in the style of imperial kilns.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;imagen-principal-de-e-commerce---fotografía-de-estudio-de-placa-base-gaming-premium&#34;&gt;Imagen principal de e-commerce - fotografía de estudio de placa base gaming premium
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/rojassartorio/status/2048019666816163867&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/rojassartorio&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@rojassartorio&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/008.webp&#34;
	width=&#34;1200&#34;
	height=&#34;900&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/008_hu_dfe6d504cd7e65ab.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/008_hu_f4c8963d2dfc27a9.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Imagen principal de e-commerce - fotografía de estudio de placa base gaming premium&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;133&#34;
		data-flex-basis=&#34;320px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A high-end enthusiast ATX gaming motherboard product photo on a dark studio background, shown in a three-quarter top-down perspective angled from the lower left toward the upper right. The board is mostly matte black and gunmetal with sharp geometric armor plates, brushed metal textures, and subtle RGB edge lighting in blue, purple, and magenta. Feature an exposed modern Intel-style CPU socket near the upper center, 4 black DIMM memory slots on the right, large VRM heatsinks across the top and upper left, and multiple reinforced PCIe slots in the lower half. Include 3 major branded heatsink zones: a tall rear I/O shroud at upper left with an illuminated RGB eye logo and the text &amp;#34;MAXIMUS HERO&amp;#34;, a left-side chipset/slot armor piece with the text &amp;#34;SUPREMEFX&amp;#34;, and a large angular lower-right chipset cover with a silver ROG-style emblem plus a lower strip that reads &amp;#34;FOR THOSE WHO DARE&amp;#34;. Show detailed capacitors, headers, power connectors, debug display reading &amp;#34;88&amp;#34; at the top right, and a small round start button nearby. Ultra-detailed commercial product photography, crisp focus across the board, realistic reflections on metal, premium luxury tech aesthetic, dramatic low-key lighting, clean black seamless backdrop, no cables, no CPU, no RAM, no other objects.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;imagen-principal-de-e-commerce---panel-publicitario-premium-para-polvo-de-cereales&#34;&gt;Imagen principal de e-commerce - panel publicitario premium para polvo de cereales
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/WooGabriel76263/status/2047988112094101770&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/WooGabriel76263&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@WooGabriel76263&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/009.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/009_hu_1aee47064dac42f4.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/009_hu_59cfbae4fc6e62d6.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Imagen principal de e-commerce - panel publicitario premium para polvo de cereales&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{&amp;#34;type&amp;#34;:&amp;#34;Chinese e-commerce product marketing board&amp;#34;,&amp;#34;product&amp;#34;:{&amp;#34;category&amp;#34;:&amp;#34;instant grain powder drink&amp;#34;,&amp;#34;brand&amp;#34;:&amp;#34;五谷磨房&amp;#34;,&amp;#34;name&amp;#34;:&amp;#34;核桃芝麻黑豆粉&amp;#34;,&amp;#34;packaging&amp;#34;:&amp;#34;matte black retail box with gold Chinese typography and a large swirling bowl graphic on the front, plus individual black sachets inside&amp;#34;,&amp;#34;net weight&amp;#34;:&amp;#34;320g (32g×10袋)&amp;#34;},&amp;#34;style&amp;#34;:{&amp;#34;overall&amp;#34;:&amp;#34;premium dark food advertising layout&amp;#34;,&amp;#34;color palette&amp;#34;:[&amp;#34;black&amp;#34;,&amp;#34;deep brown&amp;#34;,&amp;#34;warm gold&amp;#34;,&amp;#34;beige&amp;#34;,&amp;#34;walnut brown&amp;#34;],&amp;#34;lighting&amp;#34;:&amp;#34;dramatic studio lighting with glossy highlights and warm rim light&amp;#34;,&amp;#34;mood&amp;#34;:&amp;#34;luxurious, nourishing, healthy, appetizing&amp;#34;},&amp;#34;layout&amp;#34;:{&amp;#34;format&amp;#34;:&amp;#34;single tall composite board divided into 5 major sections plus a bottom storyboard table&amp;#34;,&amp;#34;sections&amp;#34;:[{&amp;#34;title&amp;#34;:&amp;#34;主图/Main image&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;top-left&amp;#34;,&amp;#34;count&amp;#34;:8,&amp;#34;labels&amp;#34;:[&amp;#34;五谷磨房&amp;#34;,&amp;#34;核桃芝麻黑豆粉&amp;#34;,&amp;#34;32g×10袋 独立包装&amp;#34;,&amp;#34;五黑谷物&amp;#34;,&amp;#34;香浓醇厚&amp;#34;,&amp;#34;独立小袋&amp;#34;,&amp;#34;即冲即饮&amp;#34;,&amp;#34;product box and drink cup&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;详情页/Details page&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;top-right&amp;#34;,&amp;#34;count&amp;#34;:5,&amp;#34;labels&amp;#34;:[&amp;#34;黑芝麻&amp;#34;,&amp;#34;黑豆&amp;#34;,&amp;#34;黑米&amp;#34;,&amp;#34;核桃&amp;#34;,&amp;#34;谷物粉&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;香浓细腻 顺滑好喝&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;mid-right&amp;#34;,&amp;#34;count&amp;#34;:4,&amp;#34;labels&amp;#34;:[&amp;#34;一冲即饮 营养美味&amp;#34;,&amp;#34;粉质细腻 Fine powder&amp;#34;,&amp;#34;浓香醇厚 Rich &amp;amp; Smooth&amp;#34;,&amp;#34;营养代餐 Nutritious&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;冲泡方式 HOW TO MAKE&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;mid-left lower&amp;#34;,&amp;#34;count&amp;#34;:3,&amp;#34;labels&amp;#34;:[&amp;#34;1 倒入一袋粉(32g)&amp;#34;,&amp;#34;2 加入200ml 热水或牛奶&amp;#34;,&amp;#34;3 搅拌均匀 即可享用&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;一杯好谷物 轻松好生活&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;lower-left&amp;#34;,&amp;#34;count&amp;#34;:4,&amp;#34;labels&amp;#34;:[&amp;#34;元气早餐&amp;#34;,&amp;#34;办公室下午茶&amp;#34;,&amp;#34;健身代餐&amp;#34;,&amp;#34;睡前暖饮&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;独立小袋 随身携带&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;lower-right&amp;#34;,&amp;#34;count&amp;#34;:3,&amp;#34;labels&amp;#34;:[&amp;#34;独立小袋 便携卫生&amp;#34;,&amp;#34;锁住新鲜 防潮防氧化&amp;#34;,&amp;#34;1袋1杯 精准份量&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;视频推广广告 seedance 2.0 视频提示词 + 分镜头脚本&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;bottom full width&amp;#34;,&amp;#34;count&amp;#34;:7,&amp;#34;labels&amp;#34;:[&amp;#34;镜头1 开场-产品展示&amp;#34;,&amp;#34;镜头2 食材特写&amp;#34;,&amp;#34;镜头3 倒粉入杯&amp;#34;,&amp;#34;镜头4 冲泡搅拌&amp;#34;,&amp;#34;镜头5 饮用场景&amp;#34;,&amp;#34;镜头6 产品卖点&amp;#34;,&amp;#34;镜头7 结尾口号&amp;#34;]}],&amp;#34;grid&amp;#34;:&amp;#34;top area split into left main image and right detail page; middle area split into preparation guide and feature panel; lower area split into lifestyle scenarios and sachet carry section; bottom is a full-width tabular storyboard&amp;#34;},&amp;#34;scene_elements&amp;#34;:{&amp;#34;ingredients&amp;#34;:[{&amp;#34;name&amp;#34;:&amp;#34;black sesame&amp;#34;,&amp;#34;form&amp;#34;:&amp;#34;small black seeds in a round bowl&amp;#34;},{&amp;#34;name&amp;#34;:&amp;#34;black beans&amp;#34;,&amp;#34;form&amp;#34;:&amp;#34;glossy whole beans in a round bowl&amp;#34;},{&amp;#34;name&amp;#34;:&amp;#34;black rice&amp;#34;,&amp;#34;form&amp;#34;:&amp;#34;dark long grains in a round bowl&amp;#34;},{&amp;#34;name&amp;#34;:&amp;#34;walnuts&amp;#34;,&amp;#34;form&amp;#34;:&amp;#34;walnut halves in a round bowl&amp;#34;},{&amp;#34;name&amp;#34;:&amp;#34;grain powder&amp;#34;,&amp;#34;form&amp;#34;:&amp;#34;light beige powder in a round bowl&amp;#34;}],&amp;#34;serving&amp;#34;:{&amp;#34;drink&amp;#34;:&amp;#34;thick gray-brown sesame walnut bean beverage with smooth surface swirl&amp;#34;,&amp;#34;cup&amp;#34;:&amp;#34;transparent glass cup with handle&amp;#34;,&amp;#34;utensil&amp;#34;:&amp;#34;metal spoon stirring or resting inside drink&amp;#34;},&amp;#34;supporting props&amp;#34;:[&amp;#34;walnuts on table&amp;#34;,&amp;#34;scattered black beans&amp;#34;,&amp;#34;grain stalks or wheat stems&amp;#34;,&amp;#34;dark tabletop&amp;#34;,&amp;#34;ingredient bowls&amp;#34;,&amp;#34;open package showing 5 visible sachets&amp;#34;]},&amp;#34;text_treatment&amp;#34;:{&amp;#34;headline_font&amp;#34;:&amp;#34;bold elegant Chinese display type in metallic gold&amp;#34;,&amp;#34;body_font&amp;#34;:&amp;#34;clean sans serif Chinese with occasional English subtitles&amp;#34;,&amp;#34;accent&amp;#34;:&amp;#34;thin gold divider lines and circular ingredient frames&amp;#34;},&amp;#34;camera_and_composition&amp;#34;:{&amp;#34;product_shots&amp;#34;:&amp;#34;front-facing hero box, angled sachet display box, close-up beverage macro&amp;#34;,&amp;#34;food_photography&amp;#34;:&amp;#34;high-detail commercial food styling, shallow depth of field, crisp texture emphasis&amp;#34;,&amp;#34;aspect_ratio&amp;#34;:&amp;#34;portrait, approximately 9:16&amp;#34;},&amp;#34;quality&amp;#34;:&amp;#34;ultra-detailed commercial design mockup, polished e-commerce key visual plus details page plus ad storyboard, 4K&amp;#34;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;imagen-principal-de-e-commerce---infografía-comercial-para-auriculares&#34;&gt;Imagen principal de e-commerce - infografía comercial para auriculares
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/SPEEDAI07/status/2047981795552153860&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/SPEEDAI07&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@SPEEDAI07&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/010.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/010_hu_cc55fe000899aae1.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/010_hu_eb8189134e486547.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Imagen principal de e-commerce - infografía comercial para auriculares&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;High-impact e-commerce infographic for &amp;#34;{argument name=&amp;#34;product&amp;#34; default=&amp;#34;Apple Pods Pro 3&amp;#34;}&amp;#34; wireless earbuds.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Foreground: An extreme close-up of a hand holding an open glossy white wireless earbud charging case toward the camera. Inside the case are two sleek white earbuds with black speaker accents. A small glowing green LED indicator is visible on the front of the case. The hand and case have slight macro-lens depth blur for realism.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Mid-ground: A {argument name=&amp;#34;model&amp;#34; default=&amp;#34;confident young woman&amp;#34;} with tan skin, brown eyes, and dark hair tied in a messy bun. She has natural makeup with a dewy glow. She is wearing a plain {argument name=&amp;#34;clothing&amp;#34; default=&amp;#34;yellow athletic t-shirt&amp;#34;} (no logos). One white earbud is in her ear. She is looking directly at the camera with a subtle, confident expression.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Background: Clean soft gray gradient studio backdrop with shallow depth of field. Diagonal rainbow prism lens flares and soft light leaks across the scene. Several blurred floating white earbuds in the background for depth and motion.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Lighting: Soft professional studio lighting with glossy highlights on the product, subtle rim light on the model, high dynamic range.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Typography (modern sans-serif, white):
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Top center (behind model): Large bold text “AIRPODS”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Top right: “Apple Pods Pro 3”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Mid-left: “Premium sound and noise cancellation”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Mid-right: Large bold “30” with “hours of battery life”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Bottom-right: Large bold “1” with “year warranty”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Style: Ultra-realistic, commercial product photography, 8k resolution, sharp focus on product case, shallow depth of field, vibrant yet clean color palette, premium advertising aesthetic.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;imagen-principal-de-e-commerce---anuncio-de-camiseta-sostenible-con-etiqueta-plantable&#34;&gt;Imagen principal de e-commerce - anuncio de camiseta sostenible con etiqueta plantable
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Diplomeme/status/2047957339974828092&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Diplomeme&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Diplomeme&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/011.webp&#34;
	width=&#34;960&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/011_hu_2738b20eb2a75528.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/011_hu_de172573b08c1c84.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Imagen principal de e-commerce - anuncio de camiseta sostenible con etiqueta plantable&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;80&#34;
		data-flex-basis=&#34;192px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A premium eco-conscious fashion advertisement, shot as a refined editorial product photo. A single off-white or natural cream crew-neck T-shirt hangs on a smooth wooden hanger with a black metal hook, placed against a lush wall of dense green leaves and climbing vines. The hanger has a small minimalist brand monogram engraved near the neck. The shirt is shown from the upper torso down to part of the hem, slightly angled, with soft natural folds and high-quality cotton texture. Printed inside the collar is a minimalist brand mark and the text &amp;#34;JUGGERKNOT ORIGINALS&amp;#34;. Hanging from the neckline is 1 rectangular recycled-paper seed tag tied with rustic brown twine; the tag reads &amp;#34;Tulsi&amp;#34; and &amp;#34;Plantable Seed Tag&amp;#34; with a tiny sprouting seed detail near the bottom. From the tag, 1 real tulsi plant stem grows upward across the front of the shirt, with several fresh green leaves, visually demonstrating that the tag is plantable. Add a small fine-label annotation near the tag reading &amp;#34;TULSI PLANTABLE SEED TAG&amp;#34;. On the right side, large elegant white serif typography says {argument name=&amp;#34;headline text&amp;#34; default=&amp;#34;Plant it.&amp;#34;}. Beneath it, place 3 stacked lines of narrow uppercase sans-serif copy: &amp;#34;WEAR IT.&amp;#34;, &amp;#34;PLANT IT.&amp;#34;, and &amp;#34;GROW WITH IT.&amp;#34;. At the lower left, add the brand name in spaced uppercase serif text: {argument name=&amp;#34;brand name&amp;#34; default=&amp;#34;JUGGERKNOT ORIGINALS&amp;#34;}, with a thin horizontal line above it. At the lower right, add 3 lines of small uppercase sans-serif text: &amp;#34;FSC® CERTIFIED PACKAGING.&amp;#34;, &amp;#34;ZERO SYNTHETIC FIBRE&amp;#34;, and &amp;#34;BACKED BY ZERODHA.&amp;#34;. Use soft diffused daylight, shallow depth of field, moody green-and-cream color grading, luxury sustainable-brand aesthetics, clean composition, vertical poster layout, subtle shadows, and a calm organic atmosphere. Keep the design minimal, premium, and photorealistic, with the shirt occupying the left half and the typography balanced on the right.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;imagen-principal-de-e-commerce---prompt-para-póster-cosmético-elegante&#34;&gt;Imagen principal de e-commerce - prompt para póster cosmético elegante
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Adam38363368936/status/2047917266361360682&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Adam38363368936&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Adam38363368936&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/012.webp&#34;
	width=&#34;1192&#34;
	height=&#34;1136&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/012_hu_801114ffae558d17.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/012_hu_a8bcdc57dbe93eef.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Imagen principal de e-commerce - prompt para póster cosmético elegante&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;104&#34;
		data-flex-basis=&#34;251px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;An image in a {argument name=&amp;#34;reference style&amp;#34; default=&amp;#34;similar style&amp;#34;}, a product image for {argument name=&amp;#34;product&amp;#34; default=&amp;#34;lipstick&amp;#34;}, requiring color coordination and a grand aesthetic in a {argument name=&amp;#34;style&amp;#34; default=&amp;#34;poster style&amp;#34;}, with language changed to Simplified Chinese.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;imagen-principal-de-e-commerce---anuncio-minimalista-de-producto-pure-crunch&#34;&gt;Imagen principal de e-commerce - anuncio minimalista de producto: PURE CRUNCH
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Strength04_X/status/2047917220165231011&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Strength04_X&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Strength04_X&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/013.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/013_hu_dde28b1797efbf91.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/013_hu_344e164be8d1104e.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Imagen principal de e-commerce - anuncio minimalista de producto: PURE CRUNCH&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A minimalist product advertisement with a {argument name=&amp;#34;product&amp;#34; default=&amp;#34;fried chicken bucket&amp;#34;} placed on a clean white podium.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Background: soft gradient ({argument name=&amp;#34;background gradient&amp;#34; default=&amp;#34;light cream to white&amp;#34;}), clean studio.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Lighting: soft diffused, premium Apple-style.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Typography (center): “{argument name=&amp;#34;headline&amp;#34; default=&amp;#34;PURE CRUNCH&amp;#34;}”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Small text below: “Nothing extra. Just perfection.”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Style: ultra clean, editorial minimal, high-end branding, 8K.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;imagen-principal-de-e-commerce---anuncio-de-moda-crocs-en-azul-claro&#34;&gt;Imagen principal de e-commerce - anuncio de moda Crocs en azul claro
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/SPEEDAI07/status/2047907058079650035&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/SPEEDAI07&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@SPEEDAI07&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/014.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/014_hu_f4086b06d0c96f5b.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/014_hu_13b9e9394ec702f2.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Imagen principal de e-commerce - anuncio de moda Crocs en azul claro&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A high-end studio advertising poster for {argument name=&amp;#34;brand name&amp;#34; default=&amp;#34;crocs&amp;#34;}, in a monochrome pastel blue and white color palette, with a glossy reflective floor and a soft sky-blue backdrop. The background is dominated by the word {argument name=&amp;#34;headline text&amp;#34; default=&amp;#34;CROCS&amp;#34;} in gigantic bold white condensed sans-serif letters spanning nearly the full height of the image. In the top-right corner, add small white text reading &amp;#34;Designed with ChatGPT&amp;#34;. Feature 3 adult women with shoulder-length wavy light brown to dark blonde hair, all wearing loose oversized white long-sleeve tops and flowing white wide-leg pants, styled as minimalist fashion models with relaxed neutral expressions. Their faces are intentionally obscured or blurred. One model reclines against an enormous upright white clog shoe on the left side, one model sits casually on top of a giant white clog on the upper right, and one model lounges on the floor at the lower right, leaning back on one arm while seated partly on a glossy blue sphere. Include 2 oversized white clog shoes as hero props: one standing vertically on the left showing the sole and side profile, and one angled on blue crystalline blocks at center-right showing the upper and toe box. Both clogs are classic foam slip-on style with perforation holes, chunky tread, heel straps, and circular logo rivets. The center-right clog is decorated with exactly 8 visible charms pinned to the upper: a blue-green iridescent round charm, a white daisy with yellow center, a black-and-white round emblem near the strap, a small &amp;#34;CROCS&amp;#34; word charm, a dark flower, a peace-hand sign, an orange smiley face, a white cloud, and an orange flower. Scatter exactly 7 glossy floating or grounded blue spheres of varying sizes around the set: one large sphere behind the left model, one medium sphere floating near center, one medium sphere at bottom left foreground, one medium sphere used as a seat under the lower-right model, one small sphere near the upper left, and 2 additional blue spheres integrated into the composition. Add translucent sculptural gel-like forms at the far left and far right edges, plus angular blue crystal-like rocks beneath the right shoe. At the bottom center, place white promotional copy in a clean sans-serif font: {argument name=&amp;#34;tagline line 1&amp;#34; default=&amp;#34;Made for comfort, worn for confidence.&amp;#34;} on the first line and {argument name=&amp;#34;tagline line 2&amp;#34; default=&amp;#34;Because life feels better when your feet stop complaining.&amp;#34;} on the second line. Beneath that, show 4 minimalist feature icons with labels in white: &amp;#34;ICONIC COMFORT&amp;#34;, &amp;#34;LIGHTWEIGHT&amp;#34;, &amp;#34;EASY TO CLEAN&amp;#34;, and &amp;#34;UNIQUELY YOU&amp;#34;. Place the {argument name=&amp;#34;logo text&amp;#34; default=&amp;#34;crocs&amp;#34;} logo in bold lowercase white at the bottom center with a small trademark symbol. The overall style should feel like a premium surreal fashion campaign, clean editorial lighting, soft shadows, glossy textures, airy composition, and modern lifestyle product advertising.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;imagen-principal-de-e-commerce---storyboard-tvc-de-producto-en-cuadrícula-de-9-paneles&#34;&gt;Imagen principal de e-commerce - storyboard TVC de producto en cuadrícula de 9 paneles
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Magncsans/status/2047876253898903594&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Magncsans&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Magncsans&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/015.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/015_hu_d4d090f6211890cf.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/015_hu_67b26eab7b29b5cd.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Imagen principal de e-commerce - storyboard TVC de producto en cuadrícula de 9 paneles&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Using the provided reference image, transform the single casual product photo into a polished e-commerce TVC storyboard board for a {argument name=&amp;#34;video duration&amp;#34; default=&amp;#34;15-second&amp;#34;} ad in a {argument name=&amp;#34;aspect ratio&amp;#34; default=&amp;#34;9:16&amp;#34;} vertical format, presented as a 9-panel grid. Keep the same blue-and-white ceramic ashtray as the product base, but restage it across cinematic advertising shots with warm premium lighting, shallow depth of field, and a refined lifestyle desktop environment. Add a dark storyboard layout with Chinese titles and timing for each panel. Include exactly 9 scenes: 1) environment-establishing wide shot with desk, books, window, and the product placed in context; 2) hero product medium shot on the table; 3) extreme close-up of the blue floral craftsmanship pattern; 4) use case showing a hand placing a cigarette into the ashtray with visible smoke; 5) top-down capacity display showing multiple cigarette butts inside; 6) cleaning scene under running water in a sink with a hand holding the product; 7) bottom-detail close-up showing the underside and anti-slip pads; 8) mood/lifestyle scene at night with the product on a desk, smoke rising, and ambient lamp light; 9) brand closing frame with the product as the hero plus Chinese marketing text. Add the overall header text “产品TVC分镜脚本(15秒 / 9:16竖屏 / 9宫格)” and a product subtitle naming it {argument name=&amp;#34;product name&amp;#34; default=&amp;#34;青花瓷烟灰缸&amp;#34;}. Give each of the 9 panels a Chinese scene title and timestamp, plus small descriptive Chinese copy beneath each image in the style of a professional commercial shot list. Use premium, realistic commercial photography throughout, consistent product identity, elegant Chinese aesthetic, and a clean high-end storyboard presentation.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;mockup-de-ui-para-livestream-de-e-commerce&#34;&gt;Mockup de UI para livestream de e-commerce
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/sjbbxhz/status/2045684734714380687&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/sjbbxhz&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@sjbbxhz&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/016.webp&#34;
	width=&#34;1093&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/016_hu_ee2c217cb49a7e0b.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/016_hu_891113257a7a7fc5.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Mockup de UI para livestream de e-commerce&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;91&#34;
		data-flex-basis=&#34;218px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;42
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;43
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;44
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;45
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;46
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;47
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;type&amp;#34;: &amp;#34;live stream UI mockup&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;subject&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;description&amp;#34;: &amp;#34;portrait of {argument name=\&amp;#34;host name\&amp;#34; default=\&amp;#34;Elon Musk\&amp;#34;}, smiling, wearing a black t-shirt with a white technical schematic graphic&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;background&amp;#34;: &amp;#34;left side shows a screen with &amp;#39;{argument name=\&amp;#34;left background logo\&amp;#34; default=\&amp;#34;SPACEX\&amp;#34;}&amp;#39; text, right side shows a red &amp;#39;{argument name=\&amp;#34;right background logo\&amp;#34; default=\&amp;#34;Tesla T logo\&amp;#34;}&amp;#39; and a dark car&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;ui_overlay&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;top_header&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;host_info&amp;#34;: &amp;#34;avatar, name &amp;#39;{argument name=\&amp;#34;host name\&amp;#34; default=\&amp;#34;Elon Musk\&amp;#34;}&amp;#39;, subtext &amp;#39;55.6万本场点赞&amp;#39;, red &amp;#39;关注&amp;#39; button&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;rank_badge&amp;#34;: &amp;#34;gold coin icon with &amp;#39;全站第1名&amp;#39;&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;viewer_stats&amp;#34;: &amp;#34;3 top viewer avatars with &amp;#39;12.3w&amp;#39;, &amp;#39;8.6w&amp;#39;, &amp;#39;5.7w&amp;#39;, total &amp;#39;68.7万&amp;#39;, &amp;#39;X&amp;#39; close button&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;right_links&amp;#34;: &amp;#34;&amp;#39;更多直播 &amp;gt;&amp;#39;, &amp;#39;礼物展馆 0/24&amp;#39; with blue &amp;#39;经典&amp;#39; tag&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;mid_left_gifts&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;count&amp;#34;: 2,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;items&amp;#34;: [
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;avatar &amp;#39;科技爱好者&amp;#39;, &amp;#39;送小心心&amp;#39;, heart icon x 1314&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;avatar &amp;#39;星辰大海&amp;#39;, &amp;#39;送火箭&amp;#39;, rocket icon x 666&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      ]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;bottom_left_chat&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;system_message&amp;#34;: &amp;#34;level 37 badge &amp;#39;宇宙漫游者 加入了直播间&amp;#39;&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;message_count&amp;#34;: 7,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;messages&amp;#34;: [
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;小火箭: 马斯克!未来可期!🚀&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;future: 特斯拉Model 2什么时候出?&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;星空梦想家: SpaceX今年能上火星吗?&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;AI探索者: Neuralink进展如何?&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;帅气的网友: 马总好!&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;Mars: 第一次来你的直播,超激动!&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;用户123: 讲讲AI吧,会取代人类吗?&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      ]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;bottom_right_product_card&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;hot_tag&amp;#34;: &amp;#34;orange &amp;#39;热卖 x 1888&amp;#39;&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;image&amp;#34;: &amp;#34;Tesla Cybertruck&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;title&amp;#34;: &amp;#34;{argument name=\&amp;#34;product name\&amp;#34; default=\&amp;#34;特斯拉Cybertruck 电动皮卡\&amp;#34;}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;price&amp;#34;: &amp;#34;{argument name=\&amp;#34;product price\&amp;#34; default=\&amp;#34;¥ 1,618,000\&amp;#34;}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;button&amp;#34;: &amp;#34;red &amp;#39;抢&amp;#39; button&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;floating_animation&amp;#34;: &amp;#34;translucent hearts floating up the right edge&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;bottom_bar&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;input_field&amp;#34;: &amp;#34;&amp;#39;说点什么...&amp;#39;&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;icons&amp;#34;: [&amp;#34;smiley face&amp;#34;, &amp;#34;three dots&amp;#34;, &amp;#34;shopping cart&amp;#34;, &amp;#34;gift box&amp;#34;, &amp;#34;share&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;plantilla-de-fotografía-de-estudio-para-producto-premium&#34;&gt;Plantilla de fotografía de estudio para producto premium
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/PrometheanAIX/status/2049141839882522707&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/PrometheanAIX&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@PrometheanAIX&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/017.webp&#34;
	width=&#34;1200&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/017_hu_26d0e5c826e59305.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/017_hu_fa7e495c6ca472c4.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Plantilla de fotografía de estudio para producto premium&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a premium product studio image of a [PRODUCT] for [BRAND], designed in line with [BRAND REFERENCE]. Show the [PRODUCT] floating against a clean light gray to soft white gradient background with a minimal high-end tech aesthetic. The [PRODUCT] should feel sleek, modern, refined, and premium, with subtle illuminated accents in [LIGHTING COLOR]. Use a three-quarter front angle so both earcups are visible, with detailed industrial design elements. Include the [BRAND] name cleanly on the product. Lighting should be soft, controlled, and editorial, with crisp highlights, soft shadows, and a subtle colored rim light or glow in [LIGHTING COLOR]. Emphasize material realism and clean geometric forms. Keep the background uncluttered and minimal. No extra props, no people, no text overlays, no packaging, and no distracting elements. Focus entirely on the [PRODUCT] as the hero product.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;plantilla-de-fotografía-gastronómica-premium&#34;&gt;Plantilla de fotografía gastronómica premium
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/PrometheanAIX/status/2049122713722106161&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/PrometheanAIX&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@PrometheanAIX&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/018.webp&#34;
	width=&#34;1024&#34;
	height=&#34;1024&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/018_hu_d9cf8eee6ceebcb6.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/018_hu_86ce7cfe747e2670.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Plantilla de fotografía gastronómica premium&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a square [ASPECT RATIO] premium food photography image of a steaming [FOOD] served in a dark black stone bowl or cast-iron skillet on a wooden board. The dish should look hot, glossy, spicy, and freshly served, with bite-sized pieces of browned protein, dried red chilies, green scallions, white onion, garlic, chili flakes, and visible Sichuan peppercorns coated in a deep red, oily Szechuan sauce. Use a slightly elevated close-up camera angle with shallow depth of field. Make the food the clear hero of the image, centered and richly detailed. Add visible steam rising naturally from the dish. Surround the bowl with subtle restaurant-style props like a dark red tray, scattered dried chilies, peppercorns, a small sauce bowl, or a blurred teapot in the background. Lighting should feel warm, moody, and editorial, like a high-end restaurant food shoot. Emphasize realistic textures and keep the image appetizing, realistic, cinematic, and polished. Avoid text, logos, hands, people, utensils covering the food, cartoon styling, fake plastic textures, excessive symmetry, or an overly clean stock-photo look.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;visual-principal-de-hamburguesa-y-storyboard-publicitario-de-9-paneles&#34;&gt;Visual principal de hamburguesa y storyboard publicitario de 9 paneles
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Gdgtify/status/2049449869530775877&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Gdgtify&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Gdgtify&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/019.webp&#34;
	width=&#34;1199&#34;
	height=&#34;675&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/019_hu_b07edc1e2ab93dae.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/019_hu_7eadfa0842e62977.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Visual principal de hamburguesa y storyboard publicitario de 9 paneles&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;177&#34;
		data-flex-basis=&#34;426px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Prompt 1: Create a cinematic hero image of a gourmet cheeseburger on a dark stone surface with glossy brioche bun, melted cheese, crisp lettuce, tomato, grilled patty, sauce, realistic texture, appetizing steam, warm side light, shallow depth of field, premium food commercial style, no text/logos/watermark.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Prompt 2: Create a 9-cell hybrid keyframe-to-transition storyboard sheet for a 15-second gourmet burger ad, moving from empty surface to ingredient assembly to final macro hero shot. Use large S cells and smaller T cells, motion arrows, ghosted ingredient positions, steam, sauce trails, and camera push-in icons. Style: premium food commercial, warm lighting, rich texture, appetizing, cinematic, minimal labels only. No logos, no watermark.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Navegación por categorías: &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-case-index/&#34; &gt;Índice&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/&#34; &gt;Imágenes principales de e-commerce&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/&#34; &gt;Creatividad publicitaria&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/&#34; &gt;Fotografía de retrato&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/&#34; &gt;Ilustración de póster&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-character-cases/&#34; &gt;Diseño de personajes&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/&#34; &gt;UI y redes sociales&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/&#34; &gt;Comparativas y casos de la comunidad&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;enlaces-del-repositorio-original&#34;&gt;Enlaces del repositorio original
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Página del proyecto&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts/blob/main/cases/ecommerce.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Archivo de categoría original&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Biblioteca de prompts de GPT-Image 2: e-commerce, pósters, retratos y UI</title>
        <link>https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-case-index/</link>
        <pubDate>Sat, 02 May 2026 11:35:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-case-index/</guid>
        <description>&lt;p&gt;Este es el índice de una colección de casos de prompts para GPT Image 2. La colección original es lo bastante grande como para que una sola página resulte demasiado larga, así que aquí está dividida en varias páginas por categoría interna.&lt;/p&gt;
&lt;h2 id=&#34;navegación-por-categorías&#34;&gt;Navegación por categorías
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Categoría&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Casos&lt;/th&gt;
          &lt;th&gt;Página&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Imágenes principales de e-commerce&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/&#34; &gt;Casos de imagen principal para e-commerce&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Creatividad publicitaria&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;19&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/&#34; &gt;Casos de creatividad publicitaria&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Fotografía de retrato&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;55&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/&#34; &gt;Casos de fotografía de retrato&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Ilustración de póster&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;101&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/&#34; &gt;Casos de ilustración de póster&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Diseño de personajes&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;13&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-character-cases/&#34; &gt;Casos de diseño de personajes&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;UI y redes sociales&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;56&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/&#34; &gt;Casos de UI y redes sociales&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Comparativas y casos de la comunidad&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;48&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/&#34; &gt;Comparativas y casos de la comunidad&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;enlaces-del-repositorio-original&#34;&gt;Enlaces del repositorio original
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Página del proyecto&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts/blob/main/cases/ecommerce.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Casos de imagen principal para e-commerce&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts/blob/main/cases/ad-creative.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Casos de creatividad publicitaria&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts/blob/main/cases/portrait.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Casos de fotografía de retrato&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts/blob/main/cases/poster.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Casos de ilustración de póster&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts/blob/main/cases/character.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Casos de diseño de personajes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts/blob/main/cases/ui.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Casos de UI y redes sociales&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts/blob/main/cases/comparison.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Comparativas y casos de la comunidad&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Biblioteca de prompts GPT-Image 2: casos de creatividad publicitaria</title>
        <link>https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/</link>
        <pubDate>Sat, 02 May 2026 11:35:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/</guid>
        <description>&lt;p&gt;Esta página reúne los casos de &lt;code&gt;Creatividad publicitaria&lt;/code&gt;: 19 ejemplos en total. Cada entrada conserva el enlace del caso original, el autor, la imagen generada y el prompt completo.&lt;/p&gt;
&lt;p&gt;Navegación por categorías: &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-case-index/&#34; &gt;Índice&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/&#34; &gt;Imágenes principales para e-commerce&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/&#34; &gt;Creatividad publicitaria&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/&#34; &gt;Fotografía de retrato&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/&#34; &gt;Ilustración de póster&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-character-cases/&#34; &gt;Diseño de personajes&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/&#34; &gt;UI y redes sociales&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/&#34; &gt;Comparativas y casos de la comunidad&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;creatividad-publicitaria&#34;&gt;Creatividad publicitaria
&lt;/h2&gt;&lt;h3 id=&#34;banner-publicitario-digital-japonés-en-cuadrícula-de-cuatro-paneles&#34;&gt;Banner publicitario digital japonés en cuadrícula de cuatro paneles
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/makaneko_AI/status/2045764016858087720&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/makaneko_AI&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@makaneko_AI&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/000.webp&#34;
	width=&#34;1200&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/000_hu_b4b22c98e45c267c.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/000_hu_b3b79859672a67c1.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Banner publicitario digital japonés en cuadrícula de cuatro paneles&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;42
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;43
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;44
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;45
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;46
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;47
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;48
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;49
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;50
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;51
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;52
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;53
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;54
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;55
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;56
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;57
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;58
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;59
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;60
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;61
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;62
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;63
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;64
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;65
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;66
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;67
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;68
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;69
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;70
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;71
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;72
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;73
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;74
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;75
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;76
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;77
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;78
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;79
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;80
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;81
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;82
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;83
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;84
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;85
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;86
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;87
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;88
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;89
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;90
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;91
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;92
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;93
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;94
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;95
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;96
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;type&amp;#34;: &amp;#34;2x2 grid of Japanese digital advertisement banners&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;layout&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;structure&amp;#34;: &amp;#34;4 equal quadrants&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;quadrants&amp;#34;: [
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;position&amp;#34;: &amp;#34;top-left&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;theme&amp;#34;: &amp;#34;Travel&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;subject&amp;#34;: &amp;#34;A couple holding hands on a white sand beach, looking out at turquoise ocean water under a bright blue sky.&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;red hibiscus flower in bottom left corner&amp;#34;],
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;text_labels&amp;#34;: [
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;今年こそ、解き放て。&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;{argument name=\&amp;#34;travel destination\&amp;#34; default=\&amp;#34;沖縄旅行\&amp;#34;}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;3日間の癒やし旅&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;航空券+ホテル&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;39,800円〜&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;絶景、グルメ、体験 ぜんぶ叶う!&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        ],
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;icons&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;count&amp;#34;: 3,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;descriptions&amp;#34;: [&amp;#34;airplane&amp;#34;, &amp;#34;hotel building&amp;#34;, &amp;#34;car&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;position&amp;#34;: &amp;#34;top-right&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;theme&amp;#34;: &amp;#34;Skincare&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;subject&amp;#34;: &amp;#34;Close-up portrait of a young woman with glowing, dewy skin, eyes closed, gently touching her cheeks.&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;soft pink gradient background&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;dynamic water splash effects&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;pink cosmetic jar labeled &amp;#39;{argument name=\&amp;#34;skincare product name\&amp;#34; default=\&amp;#34;LUMIÈRE\&amp;#34;} Brightening Gel&amp;#39;&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        ],
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;text_labels&amp;#34;: [
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;毛穴・くすみ卒業!&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;透明感あふれる&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;水光肌へ&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;新感覚スキンケア&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;初回限定 78%OFF&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;{argument name=\&amp;#34;discount price\&amp;#34; default=\&amp;#34;1,980円\&amp;#34;}&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        ],
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;badges&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;count&amp;#34;: 3,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;style&amp;#34;: &amp;#34;gold circular&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;labels&amp;#34;: [&amp;#34;毛穴ケア&amp;#34;, &amp;#34;高保湿&amp;#34;, &amp;#34;ハリ・ツヤ&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;position&amp;#34;: &amp;#34;bottom-left&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;theme&amp;#34;: &amp;#34;Gourmet Food&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;subject&amp;#34;: &amp;#34;Thick, sliced, medium-rare steak sizzling on a dark grill plate.&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;garlic chips&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;rosemary sprig&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;dark background with smoke and glowing embers&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        ],
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;text_labels&amp;#34;: [
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;とろける旨さ!&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;{argument name=\&amp;#34;food item\&amp;#34; default=\&amp;#34;黒毛和牛\&amp;#34;}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;贅沢ステーキ&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;期間限定&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;特別価格&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;通常価格 8,980円&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;4,980円&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        ],
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;badges&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;count&amp;#34;: 1,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;style&amp;#34;: &amp;#34;red circular&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;labels&amp;#34;: [&amp;#34;A4 A5等級&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;position&amp;#34;: &amp;#34;bottom-right&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;theme&amp;#34;: &amp;#34;Online Education&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;subject&amp;#34;: &amp;#34;Young man in a blue shirt studying at a desk, writing in a notebook next to an open laptop.&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;bright indoor lighting&amp;#34;, &amp;#34;desk environment&amp;#34;],
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;text_labels&amp;#34;: [
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;スキマ時間で&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;{argument name=\&amp;#34;education goal\&amp;#34; default=\&amp;#34;最短合格!\&amp;#34;}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;オンライン資格講座&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;スマホで完結&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;効率学習で差がつく!&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;今だけ! 受講料 20%OFF&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        ],
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;badges&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;count&amp;#34;: 1,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;style&amp;#34;: &amp;#34;blue circular&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;labels&amp;#34;: [&amp;#34;受講者数 10万人 突破!&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;icons&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;count&amp;#34;: 2,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;descriptions&amp;#34;: [&amp;#34;smartphone&amp;#34;, &amp;#34;open book&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;panel-de-identidad-de-marca-y-merchandising-para-personaje-anime&#34;&gt;Panel de identidad de marca y merchandising para personaje anime
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/chi_vc_/status/2046061073720369228&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/chi_vc_&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@chi_vc_&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/001.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/001_hu_6a8012585d54d59a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/001_hu_e92905938aad48d5.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Panel de identidad de marca y merchandising para personaje anime&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;42
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;43
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;44
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;45
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;46
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;47
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;48
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;49
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;type&amp;#34;: &amp;#34;brand identity and merchandise design board&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;theme&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;color_palette&amp;#34;: &amp;#34;{argument name=\&amp;#34;theme color\&amp;#34; default=\&amp;#34;pastel pink\&amp;#34;} and white&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;motif&amp;#34;: &amp;#34;{argument name=\&amp;#34;motif\&amp;#34; default=\&amp;#34;cherry blossoms\&amp;#34;} and pink hearts&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;character&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;description&amp;#34;: &amp;#34;anime girl with short brown bob hair, pink eyes, wearing a white hoodie, gentle smile&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;branding&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;main_logo&amp;#34;: &amp;#34;{argument name=\&amp;#34;character name\&amp;#34; default=\&amp;#34;癒音ちー\&amp;#34;}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;sub_logo&amp;#34;: &amp;#34;{argument name=\&amp;#34;character subtext\&amp;#34; default=\&amp;#34;ゆおんちー\&amp;#34;}&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;layout&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;sections&amp;#34;: [
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;type&amp;#34;: &amp;#34;header banner&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;position&amp;#34;: &amp;#34;top&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;large main logo&amp;#34;, &amp;#34;sub logo&amp;#34;, &amp;#34;cherry blossom graphics&amp;#34;, &amp;#34;character portrait on the right&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;type&amp;#34;: &amp;#34;product packaging&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;position&amp;#34;: &amp;#34;middle left&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;1 square box with heart-shaped transparent window showing pink heart candies&amp;#34;, &amp;#34;character illustration on box&amp;#34;, &amp;#34;2 individual candy wrappers&amp;#34;, &amp;#34;5 scattered heart candies&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;type&amp;#34;: &amp;#34;promotional poster&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;position&amp;#34;: &amp;#34;middle right&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;character portrait&amp;#34;, &amp;#34;heart-shaped candy bowl&amp;#34;, &amp;#34;main logo&amp;#34;, &amp;#34;text &amp;#39;4.26 NEW OPEN&amp;#39;&amp;#34;, &amp;#34;text &amp;#39;{argument name=\&amp;#34;social handle\&amp;#34; default=\&amp;#34;@yuonchii\&amp;#34;}&amp;#39;&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;type&amp;#34;: &amp;#34;horizontal web banner&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;position&amp;#34;: &amp;#34;lower middle&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;main logo&amp;#34;, &amp;#34;cherry blossoms&amp;#34;, &amp;#34;character portrait on the right&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;type&amp;#34;: &amp;#34;social media profile mockup&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;position&amp;#34;: &amp;#34;bottom left&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;header image with logo&amp;#34;, &amp;#34;1 circular profile picture&amp;#34;, &amp;#34;handle &amp;#39;{argument name=\&amp;#34;social handle\&amp;#34; default=\&amp;#34;@yuonchii\&amp;#34;}&amp;#39;&amp;#34;, &amp;#34;1 follow button&amp;#34;, &amp;#34;mock bio text&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;type&amp;#34;: &amp;#34;merchandise collection&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;position&amp;#34;: &amp;#34;bottom right&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;count&amp;#34;: 9,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;items&amp;#34;: [&amp;#34;1 white t-shirt with logo&amp;#34;, &amp;#34;1 white mug with character&amp;#34;, &amp;#34;4 round pin badges&amp;#34;, &amp;#34;1 acrylic keychain&amp;#34;, &amp;#34;2 candy packets&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;ui-de-caso-de-marketing-en-modo-oscuro&#34;&gt;UI de caso de marketing en modo oscuro
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/IndieDevHailey/status/2044974254769463312&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/IndieDevHailey&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@IndieDevHailey&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/002.webp&#34;
	width=&#34;569&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/002_hu_7b2c77f5b4960ac5.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/002_hu_6146746c8fe8f5d5.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;UI de caso de marketing en modo oscuro&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;47&#34;
		data-flex-basis=&#34;113px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;42
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;43
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;44
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;45
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;46
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;47
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;48
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;49
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;50
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;51
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;52
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;53
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;54
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;55
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;56
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;57
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;58
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;59
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;60
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;61
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;62
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;63
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;64
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;65
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;66
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;67
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;68
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;type&amp;#34;: &amp;#34;UI/UX landing page mockup&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;theme&amp;#34;: &amp;#34;dark mode, sleek modern aesthetic, glassmorphism, {argument name=\&amp;#34;primary accent color\&amp;#34; default=\&amp;#34;neon purple and blue\&amp;#34;} glowing accents&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;header&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;logo&amp;#34;: &amp;#34;{argument name=\&amp;#34;brand name\&amp;#34; default=\&amp;#34;goViralX\&amp;#34;}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;top_right_tag&amp;#34;: &amp;#34;VIRAL CAMPAIGN CASE STUDY&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;layout&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;sections&amp;#34;: [
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;name&amp;#34;: &amp;#34;Hero&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;headline&amp;#34;: &amp;#34;{argument name=\&amp;#34;hero headline\&amp;#34; default=\&amp;#34;How We Created 10M+ Viral Impact\&amp;#34;}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;subheadline&amp;#34;: &amp;#34;3天引爆全网, 助力品牌实现指数级增长&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;stats_row&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;count&amp;#34;: 4,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;labels&amp;#34;: [&amp;#34;总播放量&amp;#34;, &amp;#34;互动率&amp;#34;, &amp;#34;转化咨询&amp;#34;, &amp;#34;执行周期&amp;#34;],
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;values&amp;#34;: [&amp;#34;{argument name=\&amp;#34;main statistic\&amp;#34; default=\&amp;#34;10,240,000+\&amp;#34;}&amp;#34;, &amp;#34;18.7%&amp;#34;, &amp;#34;3,200+&amp;#34;, &amp;#34;72小时&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;visual&amp;#34;: &amp;#34;cinematic shot of a person in a hoodie looking at glowing digital screens and graphs, large play button overlay&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;name&amp;#34;: &amp;#34;Strategy&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;Our 3-Day Execution Strategy&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;layout_type&amp;#34;: &amp;#34;vertical timeline&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;steps_count&amp;#34;: 3,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements_per_step&amp;#34;: [&amp;#34;timeline node&amp;#34;, &amp;#34;title&amp;#34;, &amp;#34;bullet points&amp;#34;, &amp;#34;video thumbnail with play button&amp;#34;, &amp;#34;description box&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;name&amp;#34;: &amp;#34;Performance&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;Data-Driven Performance&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;left_column&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;stat_cards_count&amp;#34;: 4,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;values&amp;#34;: [&amp;#34;10M+&amp;#34;, &amp;#34;43%&amp;#34;, &amp;#34;28,000+&amp;#34;, &amp;#34;3,200+&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;right_column&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;charts_count&amp;#34;: 2,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;chart_1&amp;#34;: &amp;#34;line graph showing 7-day growth peaking at Day 3&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;chart_2&amp;#34;: &amp;#34;horizontal segmented bar chart showing platform distribution (TikTok 52%, Instagram 24%, X 15%, YouTube 9%)&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;name&amp;#34;: &amp;#34;Keys to Success&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;The 3 Keys to Viral Success&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;cards_count&amp;#34;: 3,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;card_elements&amp;#34;: [&amp;#34;glowing icon (fire, target, antenna)&amp;#34;, &amp;#34;title&amp;#34;, &amp;#34;description&amp;#34;, &amp;#34;VIEW DETAIL link&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;name&amp;#34;: &amp;#34;Social Proof&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;TRUSTED BY CREATORS &amp;amp; BRANDS&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;left_column&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;logos_count&amp;#34;: 8,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;grid&amp;#34;: &amp;#34;2x4&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;brands&amp;#34;: [&amp;#34;SHEIN&amp;#34;, &amp;#34;SHOPLINE&amp;#34;, &amp;#34;Blueglass&amp;#34;, &amp;#34;instacart&amp;#34;, &amp;#34;lemon8&amp;#34;, &amp;#34;mi&amp;#34;, &amp;#34;CIDER&amp;#34;, &amp;#34;bellroy&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;right_column&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;testimonial_cards_count&amp;#34;: 2,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &amp;#34;elements&amp;#34;: [&amp;#34;quote&amp;#34;, &amp;#34;author title (SaaS Founder, Growth Manager)&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;name&amp;#34;: &amp;#34;Call to Action&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;READY TO GO VIRAL?&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;interactive_elements&amp;#34;: [&amp;#34;text input field&amp;#34;, &amp;#34;glowing button with text &amp;#39;{argument name=\&amp;#34;call to action text\&amp;#34; default=\&amp;#34;获取专属增长方案 -&amp;gt;\&amp;#34;}&amp;#39;&amp;#34;],
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;visual&amp;#34;: &amp;#34;3D render of a rocket ship taking off with purple and blue flames&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;documento-de-identidad-de-marca-de-mascota-en-18-páginas&#34;&gt;Documento de identidad de marca de mascota en 18 páginas
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Colin_Leeee/status/2044802802149650631&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Colin_Leeee&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Colin_Leeee&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/003.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/003_hu_38654e96cad54ea8.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/003_hu_b4c26ee66844dace.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Documento de identidad de marca de mascota en 18 páginas&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;42
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;43
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;44
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;45
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;46
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;47
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;48
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;49
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;50
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;51
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;52
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;53
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;54
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;55
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;56
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;57
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;58
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;59
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;60
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;61
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;62
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;63
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;64
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;65
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;66
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;67
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;68
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;69
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;70
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;71
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;72
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;73
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;74
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;75
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;76
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;77
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;78
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;79
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;80
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;81
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;82
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;83
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;84
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;85
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;86
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;type&amp;#34;: &amp;#34;18-panel brand identity and character design document&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;brand&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;name&amp;#34;: &amp;#34;{argument name=\&amp;#34;brand name\&amp;#34; default=\&amp;#34;沐阳 MUYANG TEA\&amp;#34;}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;industry&amp;#34;: &amp;#34;{argument name=\&amp;#34;industry\&amp;#34; default=\&amp;#34;tea shop\&amp;#34;}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;colors&amp;#34;: [&amp;#34;{argument name=\&amp;#34;primary color\&amp;#34; default=\&amp;#34;yellow\&amp;#34;}&amp;#34;, &amp;#34;{argument name=\&amp;#34;secondary color\&amp;#34; default=\&amp;#34;green\&amp;#34;}&amp;#34;, &amp;#34;white&amp;#34;, &amp;#34;brown&amp;#34;, &amp;#34;dark green&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;subject&amp;#34;: &amp;#34;{argument name=\&amp;#34;character description\&amp;#34; default=\&amp;#34;3D rendered cute Shiba Inu mascot wearing a green apron\&amp;#34;}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;layout&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;grid&amp;#34;: &amp;#34;3 columns by 6 rows&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;sections&amp;#34;: [
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;01 品牌DNA分析 / BRAND DNA ANALYSIS&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;logo&amp;#34;, &amp;#34;5 color swatches&amp;#34;, &amp;#34;6 icons&amp;#34;, &amp;#34;target audience charts&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;02 概念构思 / CONCEPT MOODBOARD&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;5 photo references&amp;#34;, &amp;#34;4 mood icons&amp;#34;, &amp;#34;design equation&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;03 形态研究 / FORM STUDY&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;4 logo anatomy icons&amp;#34;, &amp;#34;4 evolution steps&amp;#34;, &amp;#34;4 silhouettes&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;04 概念探索 / CONCEPT EXPLORATION&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;12 line-art character sketches&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;05 精细线稿 / REFINED LINE ART&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;3 rows of front and side line art with proportion guides&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;06 细节精修 / DETAIL REFINEMENT&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;2 full-body renders with labels&amp;#34;, &amp;#34;4 circular close-ups&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;07 表情设定 / EXPRESSION SHEET&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;11 3D rendered head expressions&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;08 姿势库 / POSE LIBRARY&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;9 full-body 3D rendered poses&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;09 转身视图 / TURNAROUND VIEW&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;5 full-body 3D renders&amp;#34;, &amp;#34;5 matching line-art views&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;10 色彩开发 / COLOR DEVELOPMENT&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;5 rows of 5-color palettes&amp;#34;, &amp;#34;color psychology text&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;11 材质规格 / MATERIAL SPECIFICATION&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;5 texture swatches&amp;#34;, &amp;#34;property sliders&amp;#34;, &amp;#34;4 manufacturing icons&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;12 色彩应用 / COLOR APPLICATION&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;4 color variant renders&amp;#34;, &amp;#34;2 light/dark renders&amp;#34;, &amp;#34;4 contrast rating circles&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;13 构造指南 / CONSTRUCTION GUIDE&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;2 line-art diagrams for geometry and grid&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;14 设计系统规则 / DESIGN SYSTEM RULES&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;minimum size icons&amp;#34;, &amp;#34;clear space diagram&amp;#34;, &amp;#34;4 usage examples&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;15 资产变体 / ASSET VARIANTS&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;3 size variants&amp;#34;, &amp;#34;3 line-art variants&amp;#34;, &amp;#34;3 simplified flat heads&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;16 数字应用 / DIGITAL APPLICATIONS&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;1 app icon&amp;#34;, &amp;#34;2 social avatars&amp;#34;, &amp;#34;UI elements&amp;#34;, &amp;#34;3-step animation cycle&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;17 实物应用 / PHYSICAL APPLICATIONS&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;plush toy mockup&amp;#34;, &amp;#34;packaging mockup&amp;#34;, &amp;#34;merchandise mockup&amp;#34;, &amp;#34;storefront mockup&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;18 最终主视觉 / FINAL RENDERING&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;elements&amp;#34;: [&amp;#34;large high-res 3D render of mascot holding tea&amp;#34;, &amp;#34;logo&amp;#34;, &amp;#34;file format list&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;folleto-japonés-de-reparto-para-restaurante-chino&#34;&gt;Folleto japonés de reparto para restaurante chino
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/xc5_/status/2048310696686014935&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/xc5_&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@xc5_&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/004.webp&#34;
	width=&#34;896&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/004_hu_1975f05f33c39ac1.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/004_hu_52b41b2a6d938981.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Folleto japonés de reparto para restaurante chino&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;74&#34;
		data-flex-basis=&#34;179px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A Japanese neighborhood Chinese restaurant delivery flyer for mailbox posting (3:4 aspect ratio). Designed to look like a double-sided B5 print.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Flyer characteristics (following the grammar of real delivery flyers):
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- Flashy red and yellow color scheme.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- Large text at the top: &amp;#34;Delivery Available! {argument name=&amp;#34;shop name&amp;#34; default=&amp;#34;Mona-Hanten&amp;#34;}&amp;#34; (shadowed Gothic font).
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- An illustration of a {argument name=&amp;#34;character&amp;#34; default=&amp;#34;Chinese girl in a red cheongsam with a brown short bob&amp;#34;} holding ramen and saying &amp;#34;Welcome!&amp;#34; in a speech bubble.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- A menu photo grid (4x3) featuring various dishes: different types of ramen, fried rice, gyoza, sweet and sour pork, shrimp in chili sauce, mapo tofu, liver and leek stir-fry, tenshinhan, twice-cooked pork, spring rolls, annin tofu, and fried rice sets.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- Names and prices for each dish.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- A large yellow banner saying &amp;#34;Free delivery on all menu items over ¥1,000!&amp;#34;.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- &amp;#34;Order by phone! ☎ 072-XX-XXXX&amp;#34; emphasized with a red circle.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- Business hours &amp;#34;11:00-22:00 (Closed on Tuesdays)&amp;#34;.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- Delivery area map (simple schematic map).
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- Coupon (perforated line for clipping): &amp;#34;One free plate of gyoza with this flyer!&amp;#34;.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Texture of cheap paper printing. Includes fold marks. Precision that could be mistaken for a real Japanese delivery flyer.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;póster-de-productos-para-habitación-con-estética-de-medusa-pastel&#34;&gt;Póster de productos para habitación con estética de medusa pastel
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Ayu_AI_0912/status/2048309565817766139&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Ayu_AI_0912&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Ayu_AI_0912&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/005.webp&#34;
	width=&#34;898&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/005_hu_f904a82df3a72a81.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/005_hu_b36028bbd48c5f54.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Póster de productos para habitación con estética de medusa pastel&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;74&#34;
		data-flex-basis=&#34;179px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{&amp;#34;type&amp;#34;:&amp;#34;pastel lifestyle poster / character room-goods feature sheet&amp;#34;,&amp;#34;theme&amp;#34;:&amp;#34;soft dreamy lavender jellyfish aesthetic&amp;#34;,&amp;#34;style&amp;#34;:&amp;#34;Japanese cute editorial graphic, airy white background, pastel lilac palette, delicate handwritten notes, sparkles and tiny doodles, soft product photography mixed with magazine layout&amp;#34;,&amp;#34;subject&amp;#34;:{&amp;#34;character&amp;#34;:{&amp;#34;name&amp;#34;:&amp;#34;{argument name=\&amp;#34;character name\&amp;#34; default=\&amp;#34;くらげちゃん\&amp;#34;}&amp;#34;,&amp;#34;appearance&amp;#34;:&amp;#34;young woman with a short platinum-blonde bob haircut, wearing a fluffy pale-lavender zip hoodie over a white inner top, shown from chest up on the lower right, face intentionally obscured with a plain beige rectangle&amp;#34;}},&amp;#34;layout&amp;#34;:{&amp;#34;orientation&amp;#34;:&amp;#34;vertical poster&amp;#34;,&amp;#34;background&amp;#34;:&amp;#34;clean white with faint pastel doodles of stars, bubbles, tiny jellyfish, and musical notes&amp;#34;,&amp;#34;sections&amp;#34;:[{&amp;#34;title&amp;#34;:&amp;#34;header&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;top&amp;#34;,&amp;#34;count&amp;#34;:5,&amp;#34;labels&amp;#34;:[&amp;#34;speech bubble intro&amp;#34;,&amp;#34;main title&amp;#34;,&amp;#34;small subtitle GOODS&amp;#34;,&amp;#34;horizontal lavender ribbon tagline&amp;#34;,&amp;#34;round badge on the top right&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;featured goods grid&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;upper and middle left&amp;#34;,&amp;#34;count&amp;#34;:6,&amp;#34;labels&amp;#34;:[&amp;#34;ゆらゆらくらげランプ&amp;#34;,&amp;#34;くらげと夢見るベッドリネン&amp;#34;,&amp;#34;くらげシェルミラー&amp;#34;,&amp;#34;くらげグラデマグ&amp;#34;,&amp;#34;くらげのときめき収納ボックス&amp;#34;,&amp;#34;くらげふわもこマット&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;side handwritten note&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;upper right&amp;#34;,&amp;#34;count&amp;#34;:1,&amp;#34;labels&amp;#34;:[&amp;#34;みんなも くらげちゃんRoomで いっしょに まったりしよー♡♡&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;room concept box&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;lower left&amp;#34;,&amp;#34;count&amp;#34;:1,&amp;#34;labels&amp;#34;:[&amp;#34;くらげちゃんの お部屋作りのこだわり&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;pick up circle&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;lower center-left&amp;#34;,&amp;#34;count&amp;#34;:1,&amp;#34;labels&amp;#34;:[&amp;#34;Pick up!&amp;#34;]}],&amp;#34;product_images&amp;#34;:{&amp;#34;count&amp;#34;:6,&amp;#34;items&amp;#34;:[{&amp;#34;name&amp;#34;:&amp;#34;ゆらゆらくらげランプ&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;small translucent jellyfish-shaped lamp on a white base, glowing softly in pale blue-lavender&amp;#34;},{&amp;#34;name&amp;#34;:&amp;#34;くらげと夢見るベッドリネン&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;plush pastel-lavender bed with fluffy comforter and pillows, dreamy cozy bedroom styling&amp;#34;},{&amp;#34;name&amp;#34;:&amp;#34;くらげシェルミラー&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;small tabletop mirror with a puffy shell-like pastel-lilac frame and rounded base&amp;#34;},{&amp;#34;name&amp;#34;:&amp;#34;くらげグラデマグ&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;ceramic mug with lavender-to-pink gradient and a simple jellyfish illustration&amp;#34;},{&amp;#34;name&amp;#34;:&amp;#34;くらげのときめき収納ボックス&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;pastel storage box holding cosmetics and small bottles, decorated with a jellyfish emblem&amp;#34;},{&amp;#34;name&amp;#34;:&amp;#34;くらげふわもこマット&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;small fluffy cloud-like or jellyfish-like mat in pale lavender and white&amp;#34;}]},&amp;#34;text_elements&amp;#34;:{&amp;#34;main_title&amp;#34;:&amp;#34;{argument name=\&amp;#34;headline text\&amp;#34; default=\&amp;#34;くらげちゃんの お部屋アイテム\&amp;#34;}&amp;#34;,&amp;#34;badge_text&amp;#34;:&amp;#34;くらげちゃんの Room お部屋作りの こだわりポイントも 教えちゃうよ。&amp;#34;,&amp;#34;tagline&amp;#34;:&amp;#34;ふわふわで甘くて、ちょっぴり夢みたいな私のお部屋へようこそ♡&amp;#34;,&amp;#34;speech_bubble&amp;#34;:&amp;#34;くらげちゃんの お気に入りだけ集めた お部屋アイテムを紹介するよ♪&amp;#34;,&amp;#34;concept_points&amp;#34;:{&amp;#34;count&amp;#34;:3,&amp;#34;items&amp;#34;:[&amp;#34;色は白とラベンダーで統一!&amp;#34;,&amp;#34;光が集まるふわっとした空間に&amp;#34;,&amp;#34;お友達入りのアイテムに囲まれて 自分らしくいられる空間を大切にしてるよ♪&amp;#34;]},&amp;#34;product_blurbs&amp;#34;:&amp;#34;each product has a short handwritten Japanese description in a cute casual font beside or below the image&amp;#34;},&amp;#34;composition&amp;#34;:&amp;#34;the poster is left-heavy with product cards and text, while the character portrait occupies the lower right third, slightly overlapping the layout&amp;#34;,&amp;#34;color_palette&amp;#34;:{&amp;#34;count&amp;#34;:5,&amp;#34;colors&amp;#34;:[&amp;#34;white&amp;#34;,&amp;#34;pastel lavender&amp;#34;,&amp;#34;soft lilac&amp;#34;,&amp;#34;pale gray-violet&amp;#34;,&amp;#34;touches of pastel blue-pink gradient&amp;#34;]},&amp;#34;rendering_notes&amp;#34;:&amp;#34;keep everything very soft, feminine, and cozy; rounded corners on all product photos; mix of bold Japanese headline typography and light handwritten annotations; subtle shadows; clean high-key lighting; social-media-ready editorial collage aesthetic&amp;#34;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;escena-en-miniatura-de-un-paquete-de-semillas-mágicas&#34;&gt;Escena en miniatura de un paquete de semillas mágicas
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/AllaAisling/status/2048156345518768190&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/AllaAisling&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@AllaAisling&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/006.webp&#34;
	width=&#34;1200&#34;
	height=&#34;801&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/006_hu_444babc81c045359.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/006_hu_b9411ae15ce3b04.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Escena en miniatura de un paquete de semillas mágicas&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;149&#34;
		data-flex-basis=&#34;359px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Epic 3D scene: a weathered seed packet lying open on a potting bench, its promise erupting into the garden it describes. The illustration on the front becomes real. {argument name=&amp;#34;plant type&amp;#34; default=&amp;#34;[PLANT / FLOWER]&amp;#34;} growing at full scale from the paper, roots visible through the packet&amp;#39;s base pushing into soil below.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{argument name=&amp;#34;detail left&amp;#34; default=&amp;#34;[DETAIL 1]&amp;#34;} in full bloom at one corner. {argument name=&amp;#34;detail right&amp;#34; default=&amp;#34;[DETAIL 2]&amp;#34;} mid-growth at the other, not yet what it will be.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Tiny insects that belong to this plant, {argument name=&amp;#34;insect type&amp;#34; default=&amp;#34;[BEE / BUTTERFLY / BEETLE]&amp;#34;}, hovering at correct scale.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;The written instructions on the back become garden calendar, &amp;#34;sow in spring&amp;#34; manifests as actual spring light. &amp;#34;full sun&amp;#34; manifests as a single shaft of it, hitting the tallest bloom perfectly.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Scattered seeds between packet and soil each showing their germination stage, split coat, first root, first shoot, first leaf.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;The packet&amp;#39;s torn top edge becomes a treeline.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Potting bench surface with soil scatter and water droplets.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Tilt-shift depth of field, greenhouse morning light, the packet as the garden it always intended.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;anuncio-de-reloj-cronógrafo-de-lujo&#34;&gt;Anuncio de reloj cronógrafo de lujo
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/AlwaveNazca/status/2048147643809865950&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/AlwaveNazca&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@AlwaveNazca&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/007.webp&#34;
	width=&#34;1200&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/007_hu_53f7b8075433d847.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/007_hu_6b013650585f2bb7.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Anuncio de reloj cronógrafo de lujo&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A dramatic luxury product advertising image for a motorsport-inspired chronograph wristwatch in a dark studio. Center-left foreground, show a single stainless steel chronograph watch standing upright at a slight three-quarter angle, with a black dial, two red-accent subdials, slim silver hour markers, a tachymeter bezel, and visible crown and pushers on the right side. The watch has a black leather strap with bold red stitching along both edges and a sporty premium finish. To the right of the watch, place one black square presentation box slightly behind it, textured like leather, with red stitching around the lid and a silver embossed eye-shaped logo above the text “NESS STUDIO” and smaller red text “TRACK SURFACE.” At the top center of the composition, add the same silver eye logo with the words “NESS STUDIO” and smaller “BY NICOLAS.” Across the background, place one oversized blurred word, {argument name=&amp;#34;headline text&amp;#34; default=&amp;#34;PRECISION&amp;#34;}, in large gray capital letters spanning nearly the full width. The scene is set against a deep black background with cinematic red and white horizontal light streaks crossing behind the products from left to right, suggesting speed and racetrack energy. Use a glossy wet ground plane with reflective texture, catching red highlights and mirrorlike reflections beneath the watch and box. At the bottom center, add the text “CHRONOGRAPH SERIES” in clean white spaced capitals with thin red horizontal lines extending on both sides, and below it smaller red capitals reading {argument name=&amp;#34;tagline text&amp;#34; default=&amp;#34;ALSACE MADE&amp;#34;}. Color palette: black, charcoal gray, silver steel, vivid racing red, and a touch of white. Lighting should be high-contrast and premium, with crisp specular highlights on the metal case, subtle soft fill on the box, and moody shadows. Overall style: ultra-polished commercial product photography, luxury watch campaign, sharp focus on the products, sleek branding, high-end automotive aesthetic.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;póster-publicitario-nike-lumina-en-neón&#34;&gt;Póster publicitario Nike Lumina en neón
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/AlwaveNazca/status/2048147643809865950&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/AlwaveNazca&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@AlwaveNazca&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/008.webp&#34;
	width=&#34;960&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/008_hu_3e7d872b50e43c6a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/008_hu_2465c5288bde964a.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Póster publicitario Nike Lumina en neón&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;80&#34;
		data-flex-basis=&#34;192px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A high-energy vertical Nike fashion campaign poster featuring a single athletic young woman mid-jump against a futuristic neon studio background. She is captured in a dynamic airborne pose with one knee bent up, the other leg folded back, one arm extended outward and the other bent near her chest, conveying motion and power. Her face is obscured by a clean rectangular blur block centered over the face. She wears a cropped iridescent white hooded windbreaker with a black zipper and small Nike logo on the chest, holographic metallic lavender-blue leggings with a subtle Nike swoosh on the thigh, a black branded waistband visible above the leggings, and white chunky Nike sneakers. Her brown hair is tied in a high ponytail flying outward with the jump. Behind her, enormous glowing white serif letters spell “NIKE” across the upper half, with a small white Nike swoosh centered above the word. Across the middle background, the phrase “LUMINA” appears once in wide bold glowing letters with a horizontal glitch and scanline distortion effect, partially obscured by the model. The color palette is saturated magenta, violet, cyan, and electric blue with strong bloom, glossy highlights, lens flares, and chromatic aberration. Add sweeping circular light trails wrapping around the model’s legs and body, suggesting speed and motion. The overall style is premium sportswear advertising, ultra-polished, cinematic, high contrast, hyperreal retouching, crisp product detail, dramatic rim lighting, and a luminous holographic aesthetic. Place 2 small text lines at the bottom: bottom left reads {argument name=&amp;#34;tagline text&amp;#34; default=&amp;#34;LIGHT. MOTION. ENERGY.&amp;#34;}, bottom right reads {argument name=&amp;#34;collection name&amp;#34; default=&amp;#34;NIKE LUMINA COLLECTION&amp;#34;} followed by a small Nike swoosh. Include exactly 3 visible Nike swooshes total: 1 above the large NIKE headline, 1 on the jacket chest, and 1 on the leggings.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;póster-publicitario-de-zapatillas-streetwear&#34;&gt;Póster publicitario de zapatillas streetwear
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/AlwaveNazca/status/2048147643809865950&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/AlwaveNazca&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@AlwaveNazca&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/009.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/009_hu_b072e862c874c197.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/009_hu_f2d16261ff61d346.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Póster publicitario de zapatillas streetwear&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a bold streetwear poster advertisement for {argument name=&amp;#34;brand name&amp;#34; default=&amp;#34;NESS STUDIO&amp;#34;} featuring a young adult model seated casually on the ground in a low-angle fashion pose, one knee raised and one leg extended toward the camera so the sneaker in front appears oversized and dominant. The model wears a dark brown oversized leather bomber jacket, a black shirt, light blue loose-fit jeans, white socks, and chunky black-white-gray sneakers with a red accent in the sole and the {argument name=&amp;#34;brand name&amp;#34; default=&amp;#34;NESS STUDIO&amp;#34;} logo visible on the shoe side and tongue. The face is intentionally obscured by a soft rectangular blur block centered over the face. Use an off-white textured paper background with distressed grunge design elements and collage layering. Behind the model, place a large rough red paint brushstroke shape spanning diagonally across the center. Add black ink splatters, sketch circles, torn paper scraps, and hand-painted graffiti accents. Include 4 major graphic doodles: a large black X in the upper right, a hand-drawn upward arrow in the lower left, a rough crown sketch in the lower right, and a circular scribble near the top center. In the upper left, place a stylized eye logo above the text &amp;#34;{argument name=&amp;#34;brand name&amp;#34; default=&amp;#34;NESS STUDIO&amp;#34;}&amp;#34; and a smaller tagline below reading &amp;#34;A MOMENT OF YOUR STYLE&amp;#34;. On the left middle area, add the handwritten slogan &amp;#34;INNOVATE CREATE INSPIRE&amp;#34; in stacked black brush lettering. On the right middle area, place a torn black paper patch with the handwritten white slogan &amp;#34;BUILT DIFFERENT MOVE DIFFERENT&amp;#34; and a red underline stroke. In the lower left near the shoe, add a black distressed label sticker containing a globe scribble, the text &amp;#34;{argument name=&amp;#34;brand name&amp;#34; default=&amp;#34;NESS STUDIO&amp;#34;}&amp;#34;, and a barcode. Along the bottom footer, create a clean horizontal strip with 3 social media icons and handles separated by thin vertical dividers: Instagram, Facebook, and Twitter, each followed by &amp;#34;@NESS.STUDIO&amp;#34;. The overall style should be edgy, urban, youthful, high-contrast, editorial street fashion, mixing product advertising photography with graffiti poster design, collage textures, and dynamic branding.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;anuncio-editorial-de-sudadera-osaka-six&#34;&gt;Anuncio editorial de sudadera Osaka Six
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/_LaurentB/status/2048126606313464040&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/_LaurentB&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@_LaurentB&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/010.webp&#34;
	width=&#34;675&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/010_hu_7de8847fc2baaabb.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/010_hu_78efa95ff3f40433.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Anuncio editorial de sudadera Osaka Six&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A clean editorial fashion advertisement poster on a pale powder-blue studio background with a glossy reflective floor. The composition is vertical and minimal, dominated by oversized bold white condensed sans-serif typography in the background reading “OSAKA SIX:” on the top line and “006 REMAINS” below, filling most of the upper half behind the subject. In the top right corner, small white branding text reads “Designed by ARTTEESHOW.” Centered in the lower middle is an oversized forest-green crewneck sweatshirt standing upright like a sculptural object, with soft heavy cotton fabric, dropped shoulders, extra-long sleeves pooled on the floor, and a small black neck label that reads ARTTEESHOW. On the chest of the sweatshirt is a large abstract collage print made from torn paper fragments in beige, tan, black, gray, white, and vivid red, arranged vertically like layered scraps. Leaning against the right side of the giant sweatshirt is a slim female fashion model with long straight black hair, wearing a matching {argument name=&amp;#34;sweatshirt color&amp;#34; default=&amp;#34;forest green&amp;#34;} sweatshirt and relaxed wide-leg sweatpants with clean white low-top sneakers. She is posed in profile with a calm detached editorial attitude, one hand in her pocket, her body reclining diagonally against the giant garment, legs extended forward; her face is obscured by a soft rectangular blur for an anonymous art-fashion look. The smaller worn sweatshirt has the same abstract torn-paper collage graphic centered on the chest. At the bottom center, add 2 lines of small white copy text: “Made for comfort, worn for confidence.” and “Because life feels better when someone’s carrying the weight of the world.” The image should feel like a premium conceptual streetwear campaign from the early 1990s reimagined as contemporary luxury advertising, with crisp studio lighting, soft shadows, subtle floor reflections, precise product focus, surreal scale contrast between the oversized sweatshirt and the model, and a polished magazine-poster aesthetic.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;toma-editorial-de-perfume-sobre-musgo&#34;&gt;Toma editorial de perfume sobre musgo
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Salmaaboukarr/status/2048103506125463983&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Salmaaboukarr&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Salmaaboukarr&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/011.webp&#34;
	width=&#34;960&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/011_hu_58556ac875587cf0.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/011_hu_37ab90329d9dc54.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Toma editorial de perfume sobre musgo&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;80&#34;
		data-flex-basis=&#34;192px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A high-end editorial product photograph of a single luxury perfume bottle centered in a warm earthy still-life scene. The product is a clear rectangular glass bottle filled with golden amber liquid, topped with a glossy rounded black cap, with a clean white front label that reads &amp;#34;BYREDO&amp;#34;, &amp;#34;BAL D’AFRIQUE&amp;#34;, and &amp;#34;EAU DE PARFUM&amp;#34;. Place the bottle upright on 1 curved piece of pale weathered driftwood, surrounded by a dense carpet of 1 layer of rich green moss covering the foreground and lower frame. Use a minimal studio composition with the product isolated against a smooth warm brown-to-amber gradient background, softly illuminated like sunset light. Light the scene with dramatic directional warm light from the upper right, creating a bright glow on the background, a crisp highlight on the cap, soft reflections in the glass, and gentle shadows across the wood and moss. Keep the framing vertical, the bottle centered slightly low in the composition with generous negative space above, and the overall mood natural, luxurious, earthy, cinematic, and polished like a premium fragrance campaign shot.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;frasco-de-perfume-editorial-entre-piel-dorada&#34;&gt;Frasco de perfume editorial entre piel dorada
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Salmaaboukarr/status/2048103506125463983&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Salmaaboukarr&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Salmaaboukarr&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/012.webp&#34;
	width=&#34;420&#34;
	height=&#34;525&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/012_hu_73064ca43b4caaf4.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/012_hu_9004ce57fc60b92a.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Frasco de perfume editorial entre piel dorada&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;80&#34;
		data-flex-basis=&#34;192px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A luxurious editorial product photograph of a single perfume bottle nestled into dense, plush faux fur in rich golden caramel and honey-brown tones. Center the composition on one clear oval glass bottle filled with warm amber liquid, with a glossy rounded black cap and a clean white rectangular label. The label text should read {argument name=&amp;#34;brand name&amp;#34; default=&amp;#34;BYREDO&amp;#34;} at the top, {argument name=&amp;#34;product name&amp;#34; default=&amp;#34;BAL D’AFRIQUE&amp;#34;} large in the middle, and {argument name=&amp;#34;product type&amp;#34; default=&amp;#34;EAU DE PARFUM&amp;#34;} in small text near the bottom. Shoot it as a close-up still life with soft studio lighting, subtle highlights on the glass and cap, gentle shadows in the folds of the fur, and a warm cinematic color palette. The bottle should sit slightly embedded in the fur so the surrounding texture frames it from all sides, creating a premium fashion editorial mood, minimal composition, shallow depth of field, crisp focus on the label, and a high-end beauty campaign aesthetic.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;maqueta-urbana-de-dubái-en-miniatura-de-lujo&#34;&gt;Maqueta urbana de Dubái en miniatura de lujo
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/silentempiredev/status/2048086378383384773&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/silentempiredev&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@silentempiredev&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/013.webp&#34;
	width=&#34;1199&#34;
	height=&#34;685&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/013_hu_bd1831eec05090ea.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/013_hu_57037a0472ed195f.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Maqueta urbana de Dubái en miniatura de lujo&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;175&#34;
		data-flex-basis=&#34;420px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A hyper-detailed cinematic isometric miniature city model of {argument name=&amp;#34;landmark tower&amp;#34; default=&amp;#34;Burj Khalifa&amp;#34;} rising dramatically from the center of a square architectural master-plan board, presented like a luxury urban planning maquette on a black background. The composition shows one dominant ultra-tall silver skyscraper in the exact center, surrounded by a dense ring of modern high-rise towers, illuminated roads, bridges, and glowing warm city lights. Curving turquoise-blue water features and artificial lakes wrap around the central district in multiple connected pools and canals, with one large circular fountain-like feature near the tower base and several small island shapes visible in the water. In the lower right quadrant, include a large low-rise complex with rounded geometric roofs and subtle green-lit sections, connected by multilane roads and looping interchanges. The entire city sits on one square beige map board engraved with faint street grids and planning lines, with the board edges clearly visible and slightly raised. Viewpoint is a high three-quarter isometric angle, centered and symmetrical, with the tower extending far upward into negative space. Lighting is dramatic and luxurious: warm golden edge lights on buildings and roads, cool reflections in the water, crisp metallic highlights on the central tower, and a deep black void surrounding the model. Style should feel like a photorealistic architectural visualization mixed with a premium collectible scale model, extremely intricate, sharp, polished, and elegant.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;anuncio-paródico-de-lujo&#34;&gt;Anuncio paródico de lujo
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/tonysimons_/status/2048057490940596595&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/tonysimons_&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@tonysimons_&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/014.webp&#34;
	width=&#34;960&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/014_hu_9f0c8e2d76f0f3a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/014_hu_580b634c7e74ca8c.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Anuncio paródico de lujo&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;80&#34;
		data-flex-basis=&#34;192px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;High-impact parody e-commerce infographic for “{argument name=&amp;#34;product&amp;#34; default=&amp;#34;Four Loko&amp;#34;}” malt beverage. Foreground: An extreme close-up of a rough, weathered hand holding a tall, brightly colored can of {argument name=&amp;#34;product&amp;#34; default=&amp;#34;Four Loko&amp;#34;} toward the camera. The can is slightly cold with visible condensation droplets and a loud, chaotic flavor design. The hand and can have a slight macro-lens blur for depth, with the can still reading clearly as the hero product. Central Subject: In the mid-ground, a funny, disheveled {argument name=&amp;#34;subject&amp;#34; default=&amp;#34;homeless-looking man&amp;#34;} sitting casually on a milk crate in an urban alley. He has a scruffy beard, messy hair, layered worn clothing, and a huge unbothered grin. He should look chaotic but oddly charismatic, like the accidental king of bad decisions. He is posed like a confident lifestyle-ad model, proudly showing off the can. Background &amp;amp; Lighting: A ridiculously polished ad-style backdrop mixed with a grimy city alley setting. Soft-focus urban textures, dumpster shapes, graffiti hints, and scattered clutter in the distance. Add dramatic studio lighting, soft glow, rainbow prism flares, and subtle light leaks to make the whole thing look way too premium for the subject matter. A few blurred {argument name=&amp;#34;product&amp;#34; default=&amp;#34;Four Loko&amp;#34;} cans can float artistically in the background for extra absurdity. Typography &amp;amp; Layout (Bold sans-serif, white and neon accent styling): Top Center (Background): Massive, bold text reading “{argument name=&amp;#34;brand name&amp;#34; default=&amp;#34;FOUR LOKO&amp;#34;}” positioned behind the subject. Top Right: Bold text reading “The Champagne of Bad Ideas”. Mid-Left: “Premium chaos and zero self-control” Mid-Right: Large, bold “23” with the text “ounces of terrible decisions.” Bottom-Right: Large, bold “1&amp;#34; with the text “can to ruin tomorrow.” Optional small callout text near the bottom: “Now with more regret.” Style: Ultra-detailed, 8k parody commercial photography, sharp focus on the can, shallow depth of field, vibrant trashy color palette, clean advertising composition, exaggerated premium product-ad aesthetic, funny visual contrast between polished branding and the wrecked subject.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;póster-de-vista-explotada-de-visor-vr&#34;&gt;Póster de vista explotada de visor VR
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/wory37303852/status/2045925660401795478&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/wory37303852&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@wory37303852&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/015.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/015_hu_e4202369328020d9.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/015_hu_8571ff57bc5363a0.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Póster de vista explotada de visor VR&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;type&amp;#34;: &amp;#34;exploded view product diagram poster&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;subject&amp;#34;: &amp;#34;VR headset&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;style&amp;#34;: &amp;#34;clean high-tech 3D render, studio lighting, glowing accents&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;background&amp;#34;: &amp;#34;{argument name=\&amp;#34;background color\&amp;#34; default=\&amp;#34;soft purple and blue gradient\&amp;#34;}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;header&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;logo&amp;#34;: &amp;#34;∞ {argument name=\&amp;#34;product name\&amp;#34; default=\&amp;#34;Meta Quest 3\&amp;#34;}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;subtitle&amp;#34;: &amp;#34;{argument name=\&amp;#34;main catchphrase\&amp;#34; default=\&amp;#34;まったく新しい現実を、まったく新しい構造から。\&amp;#34;}&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;layout&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;centerpiece&amp;#34;: &amp;#34;vertically stacked exploded view of a VR headset showing 9 distinct layers of internal components: outer shell, camera sensors, motherboard with chip, pancake lenses, internal frame, battery packs, side straps, top strap, and facial interface cushion.&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;callout_labels&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;count&amp;#34;: 8,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;left_side&amp;#34;: [
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;Snapdragon® XR2 Gen 2\n圧倒的な処理性能でリアルタイムな体験を。&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;調整可能なIPD機構\n幅広いユーザーに快適なフィット感を。&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;精密設計されたヘッドストラップ\n快適さと安定性を追求したエルゴノミクス。&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      ],
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;right_side&amp;#34;: [
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;フェイスプレート\n洗練されたデザインと最適な重量バランス。&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;トラッキングカメラ\n高精度な位置トラッキングと環境認識を実現。&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;パンケーキレンズ\n薄型設計で広い視野角と鮮明な映像を提供。&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;高性能バッテリー\n長時間駆動を支える最適化された電源設計。&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;柔らかなフェイスインターフェース\n長時間でも快適な装着感を実現。&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      ]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;footer&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;left_text_block&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;headline&amp;#34;: &amp;#34;{argument name=\&amp;#34;bottom headline\&amp;#34; default=\&amp;#34;体験は、構造から進化する。\&amp;#34;}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;body&amp;#34;: &amp;#34;一つひとつのパーツに、没入体験を支える最先端テクノロジーとこだわりの設計。Meta Quest 3は、未来を感じさせる体験を内部から生み出しています。&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;right_logo&amp;#34;: &amp;#34;∞ Meta&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;póster-de-lujo-para-una-impresora-publicitaria-de-ia-ficticia&#34;&gt;Póster de lujo para una impresora publicitaria de IA ficticia
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/nijisora_yuma/status/2049462065639858687&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/nijisora_yuma&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@nijisora_yuma&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/016.webp&#34;
	width=&#34;896&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/016_hu_f1558c734cabdcd9.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/016_hu_b0414569d42985bc.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Póster de lujo para una impresora publicitaria de IA ficticia&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;74&#34;
		data-flex-basis=&#34;179px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;縦型3:4の、高級商業ポスターを制作してください。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;テーマは、架空の新商品広告です。商品は「BRAND PRESS 01（ブランドプレス・ゼロワン）」という、Pollo AIを搭載した架空の広告ポスター生成プリンターです。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;この商品は、まだ存在しないブランド名・商品ジャンル・世界観・ターゲット層を入力すると、Pollo AIがコピー、ビジュアル、レイアウトまで完成された商業広告ポスターを自動生成し、高精細な印刷物としてその場で出力する未来型プリンターです。単なるAIサービスの概念広告ではなく、実際に販売されていそうな架空商品の広告として成立させてください。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;メインコンセプト: 「まだないブランドに、最初の一目惚れを。」
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;商品ビジュアル: 画面中央に実物の商品「BRAND PRESS 01」を大きく配置。未来型の高級プロ用印刷デバイスとして、黒い金属筐体、シルバーのエッジ、透明カバー、青白く発光するAIコア、精密な印刷ヘッド、ローラー、タッチパネル、排紙スロット、ポスター受けトレイを備える。排紙スロットから、架空の高級香水ブランド広告ポスターが紙として大きく出力されている構図。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;構図: ややローアングル、斜め45度。背景は暗いネイビーから黒の高級広告制作スタジオ。映画的でドラマチックな高級プロダクト広告。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;広告レイアウト: 上部に大きなキャッチコピー、中央にプリンター本体と排出中のポスター、右側に機能説明、左下に価格と発売日、下部にCTA。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;入れる文字: 「まだないブランドに、最初の一目惚れを。」 / BRAND PRESS 01 / 「Pollo AI搭載・広告ポスター生成プリンター」 / 「名前だけのアイデアを、完成された商業ポスターとして出力。」 / 「構想、コピー、ビジュアル、印刷まで。1台で。」
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;sistema-de-campaña-de-chocolate-de-lujo&#34;&gt;Sistema de campaña de chocolate de lujo
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/SPEEDAI07/status/2049459155086500321&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/SPEEDAI07&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@SPEEDAI07&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/017.webp&#34;
	width=&#34;1200&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/017_hu_62b8746b955a3fad.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/017_hu_bbe920a4698343b.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Sistema de campaña de chocolate de lujo&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a premium, square (1:1) product advertisement for a fictional luxury chocolate brand called Noirvelle Chocolat, inspired by high-end chocolate brands. The ad should feel like a high-end editorial campaign, combining luxury food photography, refined packaging design, and cinematic lighting. Use matte black wrapper, subtle gold foil, elegant serif typography, and realistic product rendering. Generate flavor variants such as Blood Orange Noir, Salted Pistachio Muse, and Raspberry Ember with distinct mood, color palette, ingredients, headline, and supporting copy. Keep the chocolate bar as hero centerpiece with subtle reflections, shallow depth of field, luxury minimalism, and a small CTA: “Shop the drop.”
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;póster-urbano-de-anuncio-de-jugo-de-fruta&#34;&gt;Póster urbano de anuncio de jugo de fruta
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/AIwithSarah_/status/2049452842931630202&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/AIwithSarah_&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@AIwithSarah_&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/018.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/018_hu_f430dbb0b53aa34d.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/018_hu_bfc913c0d69a3a17.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Póster urbano de anuncio de jugo de fruta&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a premium modern beverage advertisement poster in a vertical 3:4 format featuring a stylish young female model crouching confidently in a bright urban indoor hallway with colorful graffiti wall art on one side and clean minimal architecture on the other. In the foreground, a giant realistic fruit juice bottle is held toward the camera in forced perspective, with fictional branding like “VIVAJUICE”. Add brand logo, tagline, huge bold overlapping typography, four icon-based feature badges, and three smaller bottle variants at bottom right. Use soft natural lighting mixed with commercial studio polish, realistic shadows, shallow depth of field, glossy floor reflections, and a premium energetic eCommerce campaign aesthetic.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Navegación por categorías: &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-case-index/&#34; &gt;Índice&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/&#34; &gt;Imágenes principales para e-commerce&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/&#34; &gt;Creatividad publicitaria&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/&#34; &gt;Fotografía de retrato&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/&#34; &gt;Ilustración de póster&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-character-cases/&#34; &gt;Diseño de personajes&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/&#34; &gt;UI y redes sociales&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/&#34; &gt;Comparativas y casos de la comunidad&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;enlaces-del-repositorio-original&#34;&gt;Enlaces del repositorio original
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Página del proyecto&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts/blob/main/cases/ad-creative.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Archivo original de la categoría&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>GPT-Image 2 Prompt Library: Character Design Cases</title>
        <link>https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-character-cases/</link>
        <pubDate>Sat, 02 May 2026 11:35:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-character-cases/</guid>
        <description>&lt;p&gt;Esta pagina recopila 13 casos de la categoria &lt;code&gt;Diseno de personajes&lt;/code&gt;. Cada entrada conserva el enlace original, el autor, la imagen generada y el prompt completo.&lt;/p&gt;
&lt;p&gt;Navegacion de categorias: &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-case-index/&#34; &gt;Indice general&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/&#34; &gt;E-commerce&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/&#34; &gt;Creatividad publicitaria&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/&#34; &gt;Retratos&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/&#34; &gt;Posters e ilustraciones&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-character-cases/&#34; &gt;Personajes&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/&#34; &gt;UI y redes sociales&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/&#34; &gt;Comparaciones y comunidad&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;diseno-de-personajes&#34;&gt;Diseno de personajes
&lt;/h2&gt;&lt;h3 id=&#34;动漫快照转换&#34;&gt;动漫快照转换
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Thereallo1026/status/2044241997163311569&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Thereallo1026&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Thereallo1026&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/000.webp&#34;
	width=&#34;1200&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/000_hu_5fe4266b32ad16cf.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/000_hu_a1f3ef59923038a0.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;动漫快照转换&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Show me the attached image as a snapshot from an actual anime
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;persona5-角色参考卡&#34;&gt;Persona5 角色参考卡
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/iamrednightS/status/2045075682837836265&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/iamrednightS&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@iamrednightS&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/001.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/001_hu_57be85d9a8e82c4a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/001_hu_776e82cda4697edc.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Persona5 角色参考卡&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;基于此角色和背景，请制作一份类似官方设定资料的角色资料卡。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;・包含三视图：正面、侧面和背面
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;・添加角色面部表情的变化・分解并展示服装和装备的详细部分
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;・添加色板・包含世界观设定的简要说明
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;・总体上，使用有组织的布局（白色背景，插画风格）高分辨率、专业概念艺术风格
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;美少女游戏角色介绍页&#34;&gt;美少女游戏角色介绍页
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/09lyco/status/2045281845391323175&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/09lyco&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@09lyco&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/002.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/002_hu_c6045b71b70fa970.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/002_hu_4907ed0cfccb62c.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;美少女游戏角色介绍页&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;最新モデルの画像生成ツールを使用して、
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;このちびキャライラストと立ち絵を使って本物のサイトページのようにキャラクター紹介ページ風イラストを作ってください。 （紹介ページとして使ってもおかしくないもの）
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ギャルゲーのキャラクター紹介ページをイメージした高品質なもの。 顔の差分なども乗っている、CGイラストが存在する。ちびキャラが存在する。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;「ここに自己紹介」
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;名前:（ここに名前） 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;イメージカラー:（ここに色） 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;身長:（ここに身長）cm 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;体重:（ここに体重）kg
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;キャッチコピー:&amp;#34;「ここにセリフ」&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;官方角色设定表日文&#34;&gt;官方角色设定表（日文）
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Toshi_nyaruo_AI/status/2045025277538107420&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Toshi_nyaruo_AI&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Toshi_nyaruo_AI&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/003.webp&#34;
	width=&#34;1199&#34;
	height=&#34;675&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/003_hu_8b2c1f84cf9e3eab.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/003_hu_16e900efd803603e.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;官方角色设定表（日文）&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;177&#34;
		data-flex-basis=&#34;426px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;このキャラクターと背景を元に、 公式設定資料のようなキャラクターシートを作成してください。 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;・正面、側面、背面の3面図を含める ・キャラクターの表情バリエーションを追加 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;・衣装や装備の詳細パーツを分解して表示 ・カラーパレットを追加 ・世界観の簡単な説明を入れる 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;・全体は整理されたレイアウト
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;（白背景、図解風） 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;・アスペクト比16：9
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;高解像度、プロのコンセプトアートスタイル
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;机甲少女海上城市主视觉&#34;&gt;机甲少女海上城市主视觉
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/old_pgmrs_will/status/2046144801071079612&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/old_pgmrs_will&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@old_pgmrs_will&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/004.webp&#34;
	width=&#34;1199&#34;
	height=&#34;675&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/004_hu_f8ffb7e0987258b8.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/004_hu_fd1bd7e4ae833a8f.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;机甲少女海上城市主视觉&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;177&#34;
		data-flex-basis=&#34;426px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A mecha girl mid-teens, pale skin smudged with soot and salt spray, sharp amber eyes with glowing HUD reticles, waist-length ash-white hair tied in a high ponytail whipping in the sea wind, matte gunmetal exoskeleton armor plating her shoulders, forearms and shins, exposed hydraulic pistons at the joints, chest rig with glowing cyan coolant lines, oversized oil-stained hangar jacket half slipping off one shoulder, a massive rail cannon resting on her right shoulder, dog tags and frayed red ribbon at her collar , standing off-center to the left on the rusted edge of a tilted steel platform jutting out over dark water, weight shifted onto one leg, left hand gripping the cannon strap, head turned slightly toward camera with a quiet defiant stare, steam venting from her back thrusters, her ponytail and jacket streaming sideways in the salt wind , a vast derelict sea-city at dusk, colossal megastructures of unknown purpose rising from the ocean in staggered silhouettes, bone-white monolithic towers fused with barnacled steel, cyclopean ring-shaped constructs canted at broken angles, rusted skeletal gantries threaded with dead cables, dark swells rolling between the pylons, shipwrecks half-swallowed at their feet, thick sea fog clinging to the bases while the upper structures pierce into a bruised sky, scattered faint lights blinking high in the towers like distant eyes , moody low-key lighting, cold teal ambient from the overcast sky, warm amber sodium glow leaking from a distant structure camera-right, hard backlight from a low sun behind the towers carving her silhouette, volumetric god rays cutting through sea mist, wet specular highlights on her armor , 35mm anamorphic lens, slight low angle looking up past her shoulder toward the structures, medium-wide shot, shallow depth of field with foreground rust in soft focus, horizontal lens flares, fine atmospheric haze compressing the distant megastructures into layered silhouettes , cinematic anime key visual, painterly digital illustration with crisp line art, desaturated oceanic palette of teal, bone-white and rust punched by small warm accent lights, film grain, high-contrast editorial poster aesthetic . Format 16:9.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;圣斗士星矢黄金圣斗士卡片网格&#34;&gt;圣斗士星矢黄金圣斗士卡片网格
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen/status/2046476566537080849&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@songguoxiansen&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/005.webp&#34;
	width=&#34;1199&#34;
	height=&#34;675&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/005_hu_2f54ac4216964955.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/005_hu_2a5d701f29577fa7.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;圣斗士星矢黄金圣斗士卡片网格&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;177&#34;
		data-flex-basis=&#34;426px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;生成圣斗士星矢12个黄金圣斗士的12宫格卡牌图片,每张卡牌上写上对应的中文名,每行4个,宽高比16:9。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;chaos-notes-遮脸角色图&#34;&gt;Chaos Notes 遮脸角色图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/loglogrog/status/2046448773162033240&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/loglogrog&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@loglogrog&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/006.webp&#34;
	width=&#34;1200&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/006_hu_60e069b94aa2d3a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/006_hu_dbf0c2afb90098fb.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Chaos Notes 遮脸角色图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# 混沌としたメモ書き・記号の集合体からキャラクターの顔を浮かび上がらせるアート
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--- スタイル
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 白い紙の上に黒インクで描かれた大量の手書きメモ、数式、記号、ランダムな線。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 紙いっぱいに散らばる書き殴り風のカオス。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 所々に赤インクの強調(ライン、塗り潰し、マーカー風の塊)。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- アナログのノート落書きのような質感。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--- 構図
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- ランダムなメモや記号が全体を覆い尽くす。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 黒インクの線や文字の密度が「キャラクターの顔」の位置に集中する。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 結果として、混沌の中から「与えられたキャラクターの顔のシルエット・表情」がうっすら浮かび上がる。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 顔は写実的ではなく、カオスの断片が集まって形を成す。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--- 色彩
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- モノクロ(黒・白)を主体に構成。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 赤インクをアクセントとして散発的に配置。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 彩度は抑えめ、アナログの紙とインク感を重視。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--- 表現要素
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 読めるようで読めない文字列、日本語や英数字が混在。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 数式記号、矢印、点、斜線、クロス、ドリップ(インクの飛び散り)。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- キャラクターの顔の目や髪の輪郭は、メモや記号の配置の「余白」や「濃淡」で浮かび上がる。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--- 禁止事項
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 顔を直接的に描き込む写実ポートレート。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- デジタル処理的で整然とした幾何学模様。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- カラフルな彩色や過飽和表現。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- ロゴ、透かし、人工的なCG感。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--- Definition of Done (DoD)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 全体は「混沌としたメモ・記号の集合体」として成立している。  
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 与えられたキャラクターの顔が、混沌の濃淡・配置から自然に浮かび上がる。  
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 色はモノクロ+赤アクセントのみ。  
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 紙とインクの手描き的質感を保持している。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;动漫武术战斗插画&#34;&gt;动漫武术战斗插画
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Tanemomi_Ver2/status/2046063806846214265&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Tanemomi_Ver2&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Tanemomi_Ver2&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/007.webp&#34;
	width=&#34;1200&#34;
	height=&#34;960&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/007_hu_9cf5386c675bd84a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/007_hu_c90ccebf0d02356c.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;动漫武术战斗插画&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;125&#34;
		data-flex-basis=&#34;300px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;An anime-style illustration of a {argument name=&amp;#34;action type&amp;#34; default=&amp;#34;high-impact martial arts battle&amp;#34;} between two young female fighters in a {argument name=&amp;#34;setting&amp;#34; default=&amp;#34;traditional wooden martial arts dojo&amp;#34;}. In the foreground, a girl with black hair in a high bun wears a {argument name=&amp;#34;character 1 color theme&amp;#34; default=&amp;#34;red and white&amp;#34;} Chinese-style martial arts outfit with baggy pants. She is in a dynamic, low, forward-thrusting stance, surrounded by swirling red energy and water splashes. In the background to the right, a girl with light purple hair in twin buns wears a {argument name=&amp;#34;character 2 color theme&amp;#34; default=&amp;#34;green and purple&amp;#34;} Chinese dress with gold embroidery and black tights. She is leaping through the air in a flying kick pose, surrounded by swirling blue energy. The wooden floorboards are splintering from the intense impact, with debris and dust flying through the air. Above them hangs a weathered wooden sign with the text &amp;#34;{argument name=&amp;#34;sign text&amp;#34; default=&amp;#34;武術会&amp;#34;}&amp;#34;. The scene features dramatic lighting, a low-angle dynamic perspective, and intense action effects.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;班加罗尔花市里的-gta-6&#34;&gt;班加罗尔花市里的 GTA 6
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/ismajc/status/2048174302164394493&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/ismajc&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@ismajc&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/008.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/008_hu_bf6b81a84a2781af.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/008_hu_be718831680f9c.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;班加罗尔花市里的 GTA 6&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{argument name=&amp;#34;game&amp;#34; default=&amp;#34;gta 6&amp;#34;} in {argument name=&amp;#34;location&amp;#34; default=&amp;#34;Bangalore’s market flower&amp;#34;} in India
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;新宿酒吧里的-gta-6-场景&#34;&gt;新宿酒吧里的 GTA 6 场景
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/ismajc/status/2048166630933282995&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/ismajc&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@ismajc&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/009.webp&#34;
	width=&#34;1200&#34;
	height=&#34;960&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/009_hu_a949bf78d69991b5.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/009_hu_247ff5d36aa62487.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;新宿酒吧里的 GTA 6 场景&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;125&#34;
		data-flex-basis=&#34;300px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{argument name=&amp;#34;game&amp;#34; default=&amp;#34;GTA 6&amp;#34;} in {argument name=&amp;#34;bar name&amp;#34; default=&amp;#34;La Jetée Bar&amp;#34;} (that pays homage to Chris Marker) in {argument name=&amp;#34;location&amp;#34; default=&amp;#34;Shinjuku, Tokyo&amp;#34;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;白猫计划-eleanor&#34;&gt;白猫计划 Eleanor
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/yume00112211/status/2048309139013853421&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/yume00112211&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@yume00112211&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/010.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/010_hu_25e2c1330767f443.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/010_hu_8dac83cc06b48cea.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;白猫计划 Eleanor&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{argument name=&amp;#34;series&amp;#34; default=&amp;#34;White Cat Project&amp;#34;}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{argument name=&amp;#34;character&amp;#34; default=&amp;#34;Eleanor&amp;#34;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;剪影拼贴角色主视觉海报&#34;&gt;剪影拼贴角色主视觉海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/SimplyAnnisa/status/2049468867106189319&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/SimplyAnnisa&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@SimplyAnnisa&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/011.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/011_hu_96920472c4e5c3b8.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/011_hu_951dbaeab63a82fb.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;剪影拼贴角色主视觉海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A character promotional poster titled “INPUT NAME,” designed in a unified vertical key visual composition (9:16). The upper half features the most recognizable element of the character as a dominant oversized visual silhouette. The middle to lower section contains the full character as a secondary subject. Inside the large silhouette and around the character, use a double-exposure and collage-style narrative composition with scenes, symbolic imagery, supporting elements, and environmental details blended into mist, ink wash, and negative space. The left and right sides include complementary secondary elements to create narrative tension and spatial variation. A continuous flowing visual line runs from top to bottom, connecting the main character, internal collage, and the large upper silhouette. Preserve large areas of negative space with ink diffusion, soft blurring, and fragmented transitions inspired by Eastern aesthetics. The style is cohesive, refined, restrained, and poster-worthy.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;电视剧主题像素游戏概念板&#34;&gt;电视剧主题像素游戏概念板
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/sciencedegens/status/2049359171594903856&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/sciencedegens&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@sciencedegens&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/012.webp&#34;
	width=&#34;1200&#34;
	height=&#34;675&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/012_hu_b99a06de04a3bd5c.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-character-cases/012_hu_a7e307ab0d4e649b.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;电视剧主题像素游戏概念板&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;177&#34;
		data-flex-basis=&#34;426px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;爱情公寓 电视剧主题 像素养成类游戏概念图，包括场景全局内容，周围环绕各人物形象三视图，底部是场景特写，右下角是剧情梗概。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;随机一个经典国内古装电视剧，生成古装电视剧主题像素养成类游戏概念图，包括场景全局内容，周围环绕各人物形象三视图，底部是场景特写，右下角是剧情梗概。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;「XXX」电视剧主题像素养成类游戏概念图，包括场景全局内容，周围环绕各人物（人物别重复）形象三视图，底部是场景特写，右下角是剧情梗概。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Navegacion de categorias: &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-case-index/&#34; &gt;Indice general&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/&#34; &gt;E-commerce&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/&#34; &gt;Creatividad publicitaria&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/&#34; &gt;Retratos&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/&#34; &gt;Posters e ilustraciones&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-character-cases/&#34; &gt;Personajes&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/&#34; &gt;UI y redes sociales&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/&#34; &gt;Comparaciones y comunidad&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;enlaces-del-repositorio-original&#34;&gt;Enlaces del repositorio original
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Pagina del proyecto&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts/blob/main/cases/character.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Archivo de categoria original&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>GPT-Image 2 Prompt Library: Comparisons and Community Cases</title>
        <link>https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/</link>
        <pubDate>Sat, 02 May 2026 11:35:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/</guid>
        <description>&lt;p&gt;Esta pagina recopila 48 casos de la categoria &lt;code&gt;Comparaciones y comunidad&lt;/code&gt;. Cada entrada conserva el enlace original, el autor, la imagen generada y el prompt completo.&lt;/p&gt;
&lt;p&gt;Navegacion de categorias: &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-case-index/&#34; &gt;Indice general&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/&#34; &gt;E-commerce&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/&#34; &gt;Creatividad publicitaria&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/&#34; &gt;Retratos&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/&#34; &gt;Posters e ilustraciones&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-character-cases/&#34; &gt;Personajes&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/&#34; &gt;UI y redes sociales&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/&#34; &gt;Comparaciones y comunidad&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;comparaciones-y-casos-de-la-comunidad&#34;&gt;Comparaciones y casos de la comunidad
&lt;/h2&gt;&lt;h3 id=&#34;木质书架提示词测试&#34;&gt;木质书架提示词测试
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/chetaslua/status/2044331451077013749&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/chetaslua&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@chetaslua&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/000.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/000_hu_349a75f53e60885a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/000_hu_60fe6fed947c682a.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;木质书架提示词测试&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A wooden bookshelf consisting of three shelves: On the top shelf, there should be one book, on the second shelf, there should be three books, and on the bottom shelf, there should be seven books.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;gpt-image-2-细节展示&#34;&gt;GPT-Image-2 细节展示
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai/status/2045000106919997637&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@liyue_ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/001.webp&#34;
	width=&#34;456&#34;
	height=&#34;703&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/001_hu_e0b361543eb632d3.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/001_hu_8ce9a910d53d3bc2.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;GPT-Image-2 细节展示&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;64&#34;
		data-flex-basis=&#34;155px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;以眼部特写图片为基础，生成3:4的四屏构图超写实眼部特写，四屏按春夏秋冬上下排序。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;第一屏：眼眸中带着绽粉樱色的美瞳，睫毛缀满迷你春花，脸颊散落樱瓣与黄蕊小花，粉蝶萦绕眉眼，浅金发丝轻垂，下方簇簇樱花怒放，画面中央&amp;#34;SPRING&amp;#34;白色艺术字点缀，风格细腻唯美，光影柔和，色彩粉嫩治愈，下面用书法体写着春；
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;第二屏：眼眸中带着着清荷色的美瞳，睫毛饰以粉莲与绿荷，脸颊挂着晶莹水珠，粉瓣、绿荷点缀其间，蜻蜓轻绕，浅金发丝若隐若现，画面中央&amp;#34;Summer&amp;#34;白色艺术字凸显，光影通透流光感，色彩清透凉爽，下面用书法体写着夏；
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;第三屏：眼眸中带着金黄红相间的美瞳，睫毛饰以橙红枫叶，脸颊散落金红秋叶，橙蝶翩跹眉眼间，浅金发丝隐约可见，画面中央&amp;#34;AUTUMN&amp;#34;白色艺术字醒目，光影暖金流光，色彩浓郁温暖，下面用书法笔写着秋；
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;第四屏：眼眸中带着雪花蓝色的美瞳，睫毛覆满冰晶雪片，脸颊散落白色雪花与红色腊梅，银白蝴蝶翩跹眉眼，浅金发丝朦胧似雪，画面中央&amp;#34;WINTER&amp;#34;白色艺术字亮眼，光影冷冽蓝白流光，色彩清透纯净，下面用书法体写着冬。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;整体呈现梦幻眼眸四季交替的唯美梦幻治愈画面，微调各屏的光影强度，让画面氛围感更浓郁。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;ab-测试签名输出&#34;&gt;A/B 测试签名输出
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/saskr_13/status/2044744396932079934&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/saskr_13&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@saskr_13&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/002.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/002_hu_84c99483702d69b4.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/002_hu_d27853e0cb13d54a.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;A/B 测试签名输出&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;私があなたをどんなふうに扱ってきたか、4 コマ漫画風に描いてください。まずは 800 字くらいのプロットをテキストで出して、私が「描いて」と言ったらプロットに沿った 4 コマ漫画を描いてください。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;剪影宇宙叙事海报&#34;&gt;剪影宇宙叙事海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/MrLarus/status/2045418028733538620&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/MrLarus&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@MrLarus&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/003.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/003_hu_69c60fbc35d186ac.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/003_hu_f2a47467a79d8d90.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;剪影宇宙叙事海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;请根据【主题：xxx】自动生成一张高审美的“轮廓宇宙 / 收藏版叙事海报”风格作品。不要将画面局限于固定器物或常见容器，不要优先默认瓶子、沙漏、玻璃罩、怀表之类的常规载体，而是由 AI 根据主题自行判断并选择一个最契合、最有象征意义、轮廓最强、最适合承载完整叙事世界的主轮廓载体。这个主轮廓可以是器物、建筑、门、塔、拱门、穹顶、楼梯井、长廊、雕像、侧脸、眼睛、手掌、头骨、羽翼、面具、镜面、王座、圆环、裂缝、光幕、阴影、几何结构、空间切面、舞台框景、抽象符号或其他更有创意与主题代表性的视觉轮廓，要求合理布局。优先选择最能放大主题气质、最能形成强烈视觉记忆点、最能体现史诗感、神秘感、诗意感或设计感的轮廓，而不是最安全、最普通、最常见的容器。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;画面的核心不是简单把世界装进某个物体里，而是让完整的主题世界自然生长在这个主轮廓之中、之内、之上、之边界里或与其结构融为一体，形成一种“主题宇宙依附于一个象征性轮廓展开”的高级叙事效果。主轮廓必须清晰、优雅、有辨识度，并在整体构图中占据核心地位。轮廓内部或边界中需要自动生成与主题强绑定的完整叙事世界，内容应当丰富、饱满、层次清晰，包括最能代表主题的标志性场景、核心建筑或空间结构、象征符号与隐喻元素、角色关系或文明痕迹、远景中景近景的空间递进、具有命运感和情绪张力的氛围层次，以及门、台阶、桥梁、水面、烟雾、路径、光源、遗迹、机械结构、自然景观、抽象形态、生物或道具等叙事细节。所有元素必须统一、自然、有主次、有层级地融合，像一个完整世界真实孕育在这个轮廓结构之中，而不是简单拼贴、裁切填充、素材堆叠或模板化背景。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;整体构图需要具有强烈的收藏版海报气质与高级设计感，大结构稳定，主轮廓强烈明确，内部世界具有纵深、秩序和呼吸感，细节丰富但不拥挤，内容丰满但不杂乱，可以适度加入小比例人物剪影、远处建筑、光柱、门洞、桥、阶梯、回廊、倒影、天光或远景结构来增强尺度感、故事感与史诗感。整体画面要安静、宏大、凝练、富有余味，不要平均铺满，不要廉价热闹，不要无重点堆砌。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;风格融合收藏版电影海报构图、高级叙事型视觉设计、梦幻水彩质感与纸张印刷品气质，强调纸张颗粒感、边缘飞白、水彩刷痕、轻微晕染、空气透视、柔和雾化、局部体积光、光雾穿透、大面积留白与克制版式，让画面看起来像设计师完成的高端收藏版视觉作品，而不是普通 AI 跑图。整体气质要高级、诗意、宏大、神圣、怀旧、安静、具有传说感和叙事感。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;色彩由 AI 根据主题自动判断并匹配最合适的高级配色方案，但必须保持统一、克制、耐看、低饱和、高级，不要杂乱高饱和，不要廉价霓虹感，不要塑料数码感。配色可以围绕黑金灰、冷蓝灰、雾白灰、褐红米白、暗铜、旧纸色、深海蓝、暮色紫、银灰等体系自由变化，但必须始终服务主题，并保持海报级审美与整体和谐。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;最终要求：第一眼有强烈的主题识别度和轮廓记忆点，第二眼有完整丰富的叙事世界，第三眼仍有细节和余味。轮廓选择必须具有创意和主题匹配度，尽量避免重复、保守、常见的容器套路，优先选择更有象征性、更有空间感、更有设计潜力的轮廓形式。不要普通背景拼接，不要生硬裁切，不要模板化奇幻素材，不要游戏宣传图感，不要过度卡通化，不要过度写实导致失去艺术感，不要形式大于内容。如果合适，可以自然加入低调克制的标题、编号、签名或落款，让它更像收藏版海报设计的一部分，但不要喧宾夺主。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;狮驼岭暗黑神话场景&#34;&gt;狮驼岭暗黑神话场景
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/MANISH1027512/status/2045743158860878312&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/MANISH1027512&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@MANISH1027512&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/004.webp&#34;
	width=&#34;1200&#34;
	height=&#34;673&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/004_hu_f5f4bf455e2347e6.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/004_hu_2545fff147bf08cb.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;狮驼岭暗黑神话场景&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;178&#34;
		data-flex-basis=&#34;427px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;中式怪异，黑暗神秘风格融合中式美学，完美细节，多重管线渲染，完美建模。西游记背景，狮驼岭，千妖万怪，坐在左边巨大王座上的大象王重甲妖精，坐在中间巨大王座上的狮王重甲妖精，坐在右边巨大王座上大鹏鸟王重甲妖精。渺小的背对镜头孙悟空肩抗金箍棒步行前进，孙悟空身穿铠甲，近地仰拍镜头，长焦镜头，强烈阴影。极致细节刻画，多次修改，正确透视和主体线条，精致细节
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;counter-strike-x-terraria-截图混搭&#34;&gt;Counter-Strike x Terraria 截图混搭
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/yssrski/status/2046410519595348397&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/yssrski&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@yssrski&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/005.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/005_hu_22dc16342dfb23c0.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/005_hu_e8fbbe23ea2f380e.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Counter-Strike x Terraria 截图混搭&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;counter strike in game screenshot, mixed with Terraria
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;战前日本实验室-minecraft-截图&#34;&gt;战前日本实验室 Minecraft 截图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/RitaStar1128/status/2046406024303976904&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/RitaStar1128&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@RitaStar1128&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/006.webp&#34;
	width=&#34;1024&#34;
	height=&#34;1024&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/006_hu_b537e6a2e4d3a01c.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/006_hu_1a35c7e6d109f154.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;战前日本实验室 Minecraft 截图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;戦前日本の怪しげな研究所を探検しているマイクラのスクリーンショット画像を作成して
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;锻造杰作提示词测试&#34;&gt;锻造杰作提示词测试
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/MrLarus/status/2046201836525302032&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/MrLarus&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@MrLarus&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/007.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/007_hu_bdee5d7a2fb77f90.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/007_hu_6ea37f78bc207883.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;锻造杰作提示词测试&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;帮我生成xxxx真迹图片
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;多概念战斗海报组&#34;&gt;多概念战斗海报组
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/joshesye/status/2046493442428039212&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/joshesye&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@joshesye&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/008.webp&#34;
	width=&#34;1199&#34;
	height=&#34;675&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/008_hu_5444105119fd235a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/008_hu_1b363ada840cafe7.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;多概念战斗海报组&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;177&#34;
		data-flex-basis=&#34;426px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;1、生成不知火舞和貂蝉的游戏对战海报图
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;2、生成一张K-pop团体时尚专辑封面
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;3、请你生成 《斗破苍穹》 的关键人物关系图
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;4、帮我截一张上传图片的抖音首页的女网红图
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;rust-游戏内截图&#34;&gt;Rust 游戏内截图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/FixlationAI/status/2046272578705068476&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/FixlationAI&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@FixlationAI&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/009.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/009_hu_2f33baa8eee8a96f.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/009_hu_2f3d7557f468088e.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Rust 游戏内截图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;an ingame screenshot of rust
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;sam-altman-熊自拍&#34;&gt;Sam Altman 熊自拍
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/JustinGorya/status/2046510831832006970&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/JustinGorya&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@JustinGorya&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/010.webp&#34;
	width=&#34;1200&#34;
	height=&#34;960&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/010_hu_cbb4341cfe620805.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/010_hu_99cec28b7bfdb7dc.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Sam Altman 熊自拍&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;125&#34;
		data-flex-basis=&#34;300px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;generate image: Selfie of Sam Altman riding a bear
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Edit prompt: Remove the background make it transparent
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;among-us-写实截图&#34;&gt;Among Us 写实截图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/ReYYYYoking/status/2046502217843376292&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/ReYYYYoking&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@ReYYYYoking&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/011.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/011_hu_a07430ca8e2ce37c.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/011_hu_7e0764d762a8c7b1.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Among Us 写实截图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;AmongUsの精密な実際のゲーム画像を生成して
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;复古编程博物馆卡通图&#34;&gt;复古编程博物馆卡通图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/XiaohuiAI666/status/2046515319947354603&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/XiaohuiAI666&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@XiaohuiAI666&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/012.webp&#34;
	width=&#34;1199&#34;
	height=&#34;675&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/012_hu_590bc6590b95ca8.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/012_hu_9f60f996346a18fd.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;复古编程博物馆卡通图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;177&#34;
		data-flex-basis=&#34;426px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;在计算机博物馆里,一个程序员在展厅中央,正在演示C语言编程,很多参观者在围观,屏幕上的代码清晰可见。旁边的牌子写着:古法编程,现场表演。2D卡通画风,16:9
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;第-14-维投影场景&#34;&gt;第 14 维投影场景
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/workingclassbud/status/2046506783850815703&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/workingclassbud&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@workingclassbud&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/013.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/013_hu_d98de914cb7ba1f8.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/013_hu_2c2d101467fb6782.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;第 14 维投影场景&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A dusk shindig  with multiple fake imagination projections all aligned in the 14th dimensions
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;sam-altman-棒球转播画面&#34;&gt;Sam Altman 棒球转播画面
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/16kthir0GRXgNqn/status/2046507362266259832&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/16kthir0GRXgNqn&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@16kthir0GRXgNqn&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/014.webp&#34;
	width=&#34;1200&#34;
	height=&#34;960&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/014_hu_8bd08cc6b26c642b.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/014_hu_6dacced72af126fe.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Sam Altman 棒球转播画面&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;125&#34;
		data-flex-basis=&#34;300px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;サムアルトマンがメジャーリーガーでバットを構えている。よくあるようなテレビ画面の構図
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;基于视频内容和当前帧生成-youtube-缩略图&#34;&gt;基于视频内容和当前帧生成 YouTube 缩略图&amp;hellip;
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/chatcutapp/status/2047228386117128475&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/chatcutapp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@chatcutapp&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/015.webp&#34;
	width=&#34;1200&#34;
	height=&#34;635&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/015_hu_2eb49e69d901da0d.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/015_hu_7ed47c8d420869e2.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;基于视频内容和当前帧生成 YouTube 缩略图…&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;188&#34;
		data-flex-basis=&#34;453px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Based on the video content and this current frame, use GPT to generate a YouTube thumbnail that fits the video. You can reference the style of the image I gave you, but replace the logo on the right side of AE with theChatCut logo. I&amp;#39;ll attach the logo for you.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;生成-2020-年最重大事件的图像&#34;&gt;生成 2020 年最重大事件的图像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Rufus87078959/status/2047211900769878234&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Rufus87078959&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Rufus87078959&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/016.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/016_hu_687922d1e7a63a2a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/016_hu_5b15c5c496429717.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;生成 2020 年最重大事件的图像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Generate an image of the most significant event of 2020
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;编辑图像将总金额改为-2445-泰铢&#34;&gt;编辑图像，将总金额改为 244.5 泰铢&amp;hellip;
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/elliscrosby/status/2047211507596071235&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/elliscrosby&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@elliscrosby&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/017.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/017_hu_16dc39ca901c6b82.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/017_hu_a50df358fa6989a.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;编辑图像，将总金额改为 244.5 泰铢…&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Edit this image so that total amount changes to 244.5 baht. You can change the quantity of each of the stacks of coins until we hit the target total.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;生成-2001-年最重大事件的图像&#34;&gt;生成 2001 年最重大事件的图像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Rufus87078959/status/2047210051216011682&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Rufus87078959&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Rufus87078959&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/018.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/018_hu_deead110f1a8dd0a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/018_hu_bd38033b18d24a88.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;生成 2001 年最重大事件的图像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Generate an image of the most significant event of 2001
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;研究-lime-药物设计并制作详细信息图&#34;&gt;研究 LIME 药物设计并制作详细信息图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/WillSpagnoli/status/2047172976463040851&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/WillSpagnoli&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@WillSpagnoli&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/019.webp&#34;
	width=&#34;849&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/019_hu_25a4361b50c33c7d.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/019_hu_47733dfbffd47eb7.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;研究 LIME 药物设计并制作详细信息图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;70&#34;
		data-flex-basis=&#34;169px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Research LIME Drug Design and make a detailed infographic about it
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;抖音直播带货截图&#34;&gt;抖音直播带货截图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/laogeai/status/2047228458351120625&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/laogeai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@laogeai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/020.webp&#34;
	width=&#34;555&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/020_hu_f32bbd02312def58.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/020_hu_eb8b785a739867f4.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;抖音直播带货截图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;46&#34;
		data-flex-basis=&#34;111px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;生成一个抖音直播的截图 里面是一个美女在直播，在卖丝袜和内衣，她的在线人数是99996，热度是18+，有个叫小互的大哥，给她刷了一个飞机礼物
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;社交-app-匹配成功界面&#34;&gt;社交 App 匹配成功界面
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen/status/2047220490486612450&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@songguoxiansen&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/021.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/021_hu_923f02bf30c4aca3.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/021_hu_eae15aed44a17514.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;社交 App 匹配成功界面&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;社交App匹配成功界面，两个用户资料卡碰撞爱心特效
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;吕布-boss-设计表&#34;&gt;吕布 Boss 设计表
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen/status/2047198090009190441&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@songguoxiansen&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/022.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/022_hu_5c8a9cf9cc09493f.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/022_hu_da22a045a479988d.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;吕布 Boss 设计表&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;吕布游戏Boss设定，赤兔马方天画戟，暗黑进化形态双形态对比
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;哪吒暗黑奇幻小说封面&#34;&gt;哪吒暗黑奇幻小说封面
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen/status/2047196508270084104&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@songguoxiansen&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/023.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/023_hu_7c0698aae9a158cb.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/023_hu_1562cbd59e61549a.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;哪吒暗黑奇幻小说封面&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;玄幻小说封面，哪吒三头六臂悬浮虚空，火焰莲台底座，暗黑史诗风
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;新中式极简花卉插画&#34;&gt;新中式极简花卉插画
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai/status/2047180347448914195&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@liyue_ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/024.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/024_hu_e1aa195cdc4af4e8.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/024_hu_3b629338b5210b1a.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;新中式极简花卉插画&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;新中式极简东方美学 × 高端商业插画，主题一花一世界，
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;极简，克制，空灵，高级商业视觉，超现实东方意境，
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;画面干净通透，无灰雾、无脏色，
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;一朵巨大的荷花作为空间容器，从平静水面自然生长，轻微倾斜，构图优雅留白充足，
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;低饱和干净粉色，柔和胭脂调，花瓣半透明，轻盈通透，
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;哑光低对比，边缘柔化 + 轻微景深，
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;荷花内部为唯一视觉焦点：发光的3D微缩广州城市，包含：广州塔，珠江新城建筑群，猎德大桥，珠江水岸，少量岭南建筑，
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;城市超精细结构，真实材质，极高细节清晰度，城市高光是暖金色，城市阴影是冷青蓝，形成冷暖对比，
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;灯光通透有能量，局部高饱和但不泛滥，城市亮度明显高于荷花，
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;水面清澈极简平静，仅少量柔和涟漪，弱反射，
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;背景暖米白宣纸质感，无水墨、无笔触，大面积留白，
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;中心有极轻微光晕渐变，整体通透、不灰、不闷，
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;画面下方一艘极简小船，船上一位红衣渔女，极小比例，
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;静立仰望荷花，红色为唯一高纯度点缀，
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;整体光线通透、干净、有层次，无灰雾、无泛白，
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;高端CG商业插画，电影级真实光影，高动态范围，超精细，8K细节，ArtStation 级画质，强化分色，干净调色，青橙对比，暖高光冷暗部，仅城市灯光提亮饱和度，色调柔和通透，光影锐利明亮，无灰雾、无暗沉、无低饱和雾化。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;苏妲己古风魅惑人像&#34;&gt;苏妲己古风魅惑人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/nidiedeba/status/2047147223281270878&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/nidiedeba&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@nidiedeba&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/025.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/025_hu_57012c8d3330874.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/025_hu_10091a87be8e4b13.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;苏妲己古风魅惑人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;苏妲己古风写真，红色纱衣半透，狐耳若隐若现，媚态撩人
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;鲁迅朝花夕拾插画&#34;&gt;鲁迅《朝花夕拾》插画
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Aurora_62340/status/2047139992355680530&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Aurora_62340&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Aurora_62340&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/026.webp&#34;
	width=&#34;960&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/026_hu_39b845c01a0f8f13.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/026_hu_6ca7c93238508cbe.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;鲁迅《朝花夕拾》插画&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;80&#34;
		data-flex-basis=&#34;192px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;结合鲁迅的《朝花夕拾》里的内容，生成一副图片，要求图片背景符合《朝花夕拾》的意境，背景图可以使用蒙版，前景是 鲁迅的全身画像位于图片左侧或右侧
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;地铁手机随拍&#34;&gt;地铁手机随拍
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/AntCaveClub/status/2047136306485133428&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/AntCaveClub&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@AntCaveClub&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/027.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/027_hu_e73df417ccc689da.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/027_hu_112ce48141e686fb.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;地铁手机随拍&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;地铁上低头看手机的美丽女人，偷拍照片。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;能免费试一次 ⬇️
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;中国航天纪念邮票张&#34;&gt;中国航天纪念邮票张
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen/status/2047129703702802811&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@songguoxiansen&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/028.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/028_hu_eb60c01370c01934.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/028_hu_3db265d15e769808.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;中国航天纪念邮票张&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;中国航天纪念邮票小全张，火箭发射场景，烫金边框工艺
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;竖版武侠女侠人像&#34;&gt;竖版武侠女侠人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/CoderDaMing/status/2047127585256358221&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/CoderDaMing&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@CoderDaMing&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/029.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/029_hu_a8f0a65ddfdcf7b2.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/029_hu_894cf766aa61d435.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;竖版武侠女侠人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;9:16 竖版，极致武侠风，绝美东方女侠，20岁出头，冷艳锐利丹凤眼，眉宇英气逼人，肤白如玉，长直黑发湿漉漉随狂风剧烈飞舞，几缕发丝贴在脸颊和颈侧，穿着湿透的深黑改良武侠劲装，外披宽袖玄色长袍，衣袍和长袖被风吹得剧烈飘扬翻飞，紧身劲装勾勒身材，腰束软剑带，足踏长靴，右手持一把古剑，剑身散发幽蓝剑气光芒，动态姿势：身体微侧回眸，衣袂猎猎，背景为月夜雨雾笼罩的竹林古道，巨大明月高悬，石板小径，古灯笼，薄雾雨丝，戏剧性冷月光与蓝光剑气结合，湿身水光效果，超强动态感，细腻布料褶皱、头发丝飘动、真实水珠反光，电影级光影，8k，masterpiece, best quality, ultra realistic, cinematic, dramatic atmosphere
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;基于佛经的写实观音人像&#34;&gt;基于佛经的写实观音人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Zhaoge01/status/2047123570485260753&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Zhaoge01&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Zhaoge01&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/030.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/030_hu_79247bf19d7df29f.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/030_hu_6564a8aaada7451c.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;基于佛经的写实观音人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;根据佛经对观音菩萨的形象描述，原原本本的还原一张真实的观音菩萨形象照片，皮肤与衣服接近真实，画质iPhone 15 pro
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;唐代长安灯会全景&#34;&gt;唐代长安灯会全景
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen/status/2047122441454096527&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@songguoxiansen&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/031.webp&#34;
	width=&#34;1200&#34;
	height=&#34;600&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/031_hu_134154d5364f596.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/031_hu_a01776cc2a06ae8c.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;唐代长安灯会全景&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;200&#34;
		data-flex-basis=&#34;480px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;唐代长安城元宵灯会全景，万盏花灯照亮夜空，工笔重彩长卷
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;历史感杨贵妃写实人像&#34;&gt;历史感杨贵妃写实人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Zhaoge01/status/2047110776897638568&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Zhaoge01&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Zhaoge01&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/032.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/032_hu_9260a969e43c58ec.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/032_hu_7925640563d18b20.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;历史感杨贵妃写实人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;根据真实历史对杨玉环的形象描述，生成一张杨贵妃真实照片，画质为iPhone 15 pro
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;超现实日本未来城市插画&#34;&gt;超现实日本未来城市插画
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Tresmort/status/2047105322863460496&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Tresmort&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Tresmort&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/033.webp&#34;
	width=&#34;672&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/033_hu_4d3ca5a30ab2dcad.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/033_hu_2fdd875a8febb08d.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;超现实日本未来城市插画&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;134px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;参考这张图的透视和风格，绘制一张更加精细的超高清插画，表现超现实主义的日式未来都市，要能看清很小的细节，包括街道上的传统文化游行的人，小巷里的黑帮，烟花巷的舞女，疲惫的社畜，楼房的窗户里也有各式各样的人物，学习的学生，吵架的夫妻，玩游戏的宅男，以及更多的发挥细节。讽刺现实拥挤中的无聊，都市繁华下的孤独，无意义的人生中又有一种病态的美感。画面要有极高的审美价值 ，不能因为拼内容而损失美和协调感，比例是9:16
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;涂山雅雅奇幻魅力人像&#34;&gt;涂山雅雅奇幻魅力人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/sdjn_wgc/status/2046981757325475954&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/sdjn_wgc&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@sdjn_wgc&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/034.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/034_hu_aca7edbe689ae342.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/034_hu_5a8d1598f7f60220.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;涂山雅雅奇幻魅力人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;狐妖小红娘涂山雅雅写真大片，粉色九尾狐裘紧身裙，媚眼如丝，红唇微张，极致妖媚
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;抖音直播带货截图-1&#34;&gt;抖音直播带货截图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/LVWANGJI_0327/status/2046974302227206525&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/LVWANGJI_0327&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@LVWANGJI_0327&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/035.webp&#34;
	width=&#34;555&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/035_hu_babe578c9021c9eb.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/035_hu_b24fa3bc309b5223.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;抖音直播带货截图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;46&#34;
		data-flex-basis=&#34;111px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;生成一个抖音直播的截图 里面是一个美女在直播，在卖丝袜和内衣，她的在线人数是99996，热度是18+，有个叫小互的大哥，给她刷了一个飞机礼物
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;东方奇幻女性半身像&#34;&gt;东方奇幻女性半身像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai/status/2046962895775580442&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@liyue_ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/036.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/036_hu_a9e322f740143588.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/036_hu_b4fefc36a1f44d63.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;东方奇幻女性半身像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;东方幻想风格女性，半身肖像，回眸侧脸，气质空灵优雅，柔和神性美感，细腻五官，微垂眼神，冷白细腻肌肤，淡雅橘粉妆容，金色高光点缀
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;长发飘动，发丝中融入彩色花朵与光粒（红、蓝、橙、紫），头发具有流动感与空气感
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;身穿半透明丝绸礼服与披肩，材质轻盈通透，布料随风飘动，表面带有鎏金纹理与闪耀颗粒。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;整体光影为暖金色逆光，强边缘光，体积光明显，光粒漂浮，柔光泛光，梦幻氛围
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;背景干净浅色渐变，带微光与粒子效果，整体氛围空灵、梦境、神圣
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;风格：高端CG插画，超精细，电影级光影，柔光渲染，8K细节，artstation 热门作品风格
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;竖版东方年轻女性艺术人像&#34;&gt;竖版东方年轻女性艺术人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/zhiyangzhu22222/status/2046952985562062888&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/zhiyangzhu22222&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@zhiyangzhu22222&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/037.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/037_hu_6abef56a6312093c.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/037_hu_4cf6b460212173c7.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;竖版东方年轻女性艺术人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;9:16 竖向构图，单人女性艺术肖像，年轻东方女生，五官清秀，脸部线条柔和，皮肤自然通透，保留真实肌理，气质安静高级，带一点疏离感和故事感。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;摄影棚风格与自然光融合，柔和侧光，面部有细腻高光，阴影轻柔，整体光线通透不刺眼，带轻微黑雾滤镜效果，微朦胧、微泛光、空气感强。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;背景极简干净，奶油灰、米白、浅卡其或雾感暖灰色墙面，留有大面积负空间，整体画面简洁、有呼吸感。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;模特坐在地面或低台上，一条腿自然弯曲，一条腿放松伸展，身体轻微前倾或侧倾，肩膀不对称，头部轻轻倾斜，动作自然松弛，不刻意摆拍。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;表情平静克制，眼神柔和，略微疏离，带一点若有所思的情绪，嘴唇自然微张或轻闭，状态慵懒、安静、细腻。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;发型为自然蓬松的长发，微凌乱碎发，发丝轻柔，有空气感和层次感，像刚整理过但保留自然随性感。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;妆容为高级淡妆，韩系清透底妆，皮肤柔雾光泽，鼻梁与面颊有自然高光，眉形干净，眼妆淡雅但有神，睫毛纤长，唇色为低饱和玫瑰豆沙色或奶茶裸粉色。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;服装为简约高级风：米白色紧身罗纹针织背心，外搭宽松白衬衫或柔软针织开衫，下装为高腰半裙或简约短裤，布料柔软贴合身形但不过分暴露，呈现自然身体线条与文艺感。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;画面强调细腻质感、柔和色调、轻法式与韩系杂志感结合，真实摄影感，电影级肤色，细节丰富，层次分明，构图克制，高级审美，时尚 编辑人像，柔和的电影感人像，细腻的质感，超高细节，逼真，优雅，精致，高端时尚摄影，含蓄的性感，简洁的构图。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;汽车人集结月球基地&#34;&gt;汽车人集结月球基地
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen/status/2046952548469530716&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@songguoxiansen&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/038.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/038_hu_fc0d03188fef8d07.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/038_hu_75e9a58aa1d6430a.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;汽车人集结月球基地&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;图片1：汽车人全员月球基地集结，地球悬于身后星空，赛博坦旗帜飘扬
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;图片2：霸天虎全员列阵外星战舰甲板，威震天坐于王座俯视全军
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;自然志风食物标本剖面&#34;&gt;自然志风食物标本剖面
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/GeekCatX/status/2046939656244318676&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/GeekCatX&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@GeekCatX&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/039.webp&#34;
	width=&#34;960&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/039_hu_30825d91596e59d8.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/039_hu_8224a59ff709b4cc.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;自然志风食物标本剖面&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;80&#34;
		data-flex-basis=&#34;192px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;42
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;43
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;44
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;45
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;46
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;一颗/一块/一枚【食物名称】，以博物学大师发现野外标本的方式解剖。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;剖开、展开、固定——如同博物馆的珍贵藏品，
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;却以卡拉瓦乔为《国家地理》掌镜时的光线照亮。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;每一个内部结构都以自身的材质真相发光。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;截面锋利得近乎暴力。内部美丽得近乎神圣。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;画面中呈现完整标本：
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;一半保持原状，展示【外表面描述：质感/颜色/纹理】；
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;另一半剖开至核心，【内部核心结构描述：最重要的1—2个内部视觉特征】清晰可见。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【补充1—2句该食物最具视觉张力的横截面细节描述】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;背景：纯粹的黑丝绒。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【食物名称】悬浮其中，如同某件珍贵而危险的事物。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;标注文字紧贴结构边缘，手写感衬线字体，绝不悬空飘浮。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;画面包含以下标注，每处标注三行：第一行结构名称，第二行成分数据，第三行一句人话：
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【结构01名称】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【成分／数据说明】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【这个结构在做什么，为什么重要】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【结构02名称】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【成分／数据说明】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【这个结构在做什么，为什么重要】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【结构03名称】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【成分／数据说明】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【这个结构在做什么，为什么重要】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【结构04名称】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【成分／数据说明】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【这个结构在做什么，为什么重要】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【结构05名称】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【成分／数据说明】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【这个结构在做什么，为什么重要】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【结构06名称】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【成分／数据说明】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【这个结构在做什么，为什么重要】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;省略其他如果有继续保持这个格式
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;主标题，左上角，暖象牙白大写字体：
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【食物名称】·解剖
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;斜体副标题紧随其下：
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【一句揭示这种食物本质的话，不超过15字】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;整体气质：奥杜邦博物插画×卡拉瓦乔光影×有史以来最美的科学摄影。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;4K精度，标本照明，极致内部细节。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;没有任何临床感，一切都鲜活。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;写实风格，非示意图，非卡通，非简化图解。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;每一种材质都有真实的物理质感：
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;粗糙的、光滑的、湿润的、干燥的、致密的、疏松的。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;宝丽来相框突破场景&#34;&gt;宝丽来相框突破场景
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/MajaDesignJP/status/2047235632934928765&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/MajaDesignJP&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@MajaDesignJP&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/040.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/040_hu_e11ed3612b1be3e9.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/040_hu_c4e74768217d3d5.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;宝丽来相框突破场景&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ポラロイド写真の中に人が写っていて、その人がフレームから外に飛び出している画像。日本語が書いてある画像生成して
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;←下の画像
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;GPT Image-2で生成したやつ→
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;餐厅-pov-变化对比&#34;&gt;餐厅 POV 变化对比
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/chesnyfcb/status/2047714457774637213&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/chesnyfcb&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@chesnyfcb&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/041.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/041_hu_c3be8e5523986d4f.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/041_hu_46f34758a3d6ee94.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;餐厅 POV 变化对比&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A side-by-side comparison graphic on a black background demonstrating a camera-angle change in the same restaurant scene. At the top, large white sans-serif text reads: &amp;#34;Show me the POV from someone standing behind the bar looking out over this crowded restaurant. Change NOTHING in the scene other than the pov&amp;#34;. Below, place 2 stacked rectangular photos centered vertically: the top image labeled &amp;#34;Source&amp;#34; in large white text on the left, and the bottom image labeled &amp;#34;Output&amp;#34; in large white text on the left. The top photo shows a warmly lit, upscale, crowded restaurant interior seen from the dining room side, facing a tall back bar filled with many illuminated liquor bottles on wall-to-wall shelves, with bartenders and guests in front, amber lighting, globe pendant lights, wood ceiling, beige columns, and tightly packed seated diners in the foreground. The bottom photo shows the exact same restaurant, same crowd density, same warm lighting, same decor, same bar shelving, same globe pendant lights, and same overall composition elements, but now from the point of view of someone standing behind the bar and looking outward across the crowded restaurant; the foreground includes the bar counter with glassware, metal bar tools, bottles, and a point-of-sale screen visible at the lower left, while guests and staff fill the middle ground and the dining room extends into the background. Preserve the sense that only the camera position changed between the 2 images, with no other scene alterations.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;动漫人群-pov-对比&#34;&gt;动漫人群 POV 对比
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/chesnyfcb/status/2047714457774637213&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/chesnyfcb&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@chesnyfcb&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/042.webp&#34;
	width=&#34;680&#34;
	height=&#34;506&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/042_hu_ed0399bfad9e8fc0.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/042_hu_f726205b2c45a4df.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;动漫人群 POV 对比&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;134&#34;
		data-flex-basis=&#34;322px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{&amp;#34;type&amp;#34;:&amp;#34;comparison graphic&amp;#34;,&amp;#34;style&amp;#34;:&amp;#34;anime cinematic demonstration image on a black presentation background&amp;#34;,&amp;#34;canvas&amp;#34;:{&amp;#34;aspect_ratio&amp;#34;:&amp;#34;4:3&amp;#34;,&amp;#34;background&amp;#34;:&amp;#34;solid black&amp;#34;},&amp;#34;text_elements&amp;#34;:[{&amp;#34;text&amp;#34;:&amp;#34;{argument name=\&amp;#34;headline text\&amp;#34; default=\&amp;#34;Move the camera POV to be at ground level in the crowd.\&amp;#34;}&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;top center&amp;#34;,&amp;#34;style&amp;#34;:&amp;#34;large white sans-serif&amp;#34;},{&amp;#34;text&amp;#34;:&amp;#34;Source&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;left of upper image&amp;#34;,&amp;#34;style&amp;#34;:&amp;#34;large white sans-serif&amp;#34;},{&amp;#34;text&amp;#34;:&amp;#34;Output&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;left of lower image&amp;#34;,&amp;#34;style&amp;#34;:&amp;#34;large white sans-serif&amp;#34;}],&amp;#34;layout&amp;#34;:{&amp;#34;sections&amp;#34;:[{&amp;#34;title&amp;#34;:&amp;#34;Source&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;upper center&amp;#34;,&amp;#34;count&amp;#34;:1,&amp;#34;labels&amp;#34;:[&amp;#34;overhead crowd scene&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;Output&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;lower center&amp;#34;,&amp;#34;count&amp;#34;:1,&amp;#34;labels&amp;#34;:[&amp;#34;ground-level crowd POV scene&amp;#34;]}],&amp;#34;image_frames&amp;#34;:2},&amp;#34;images&amp;#34;:[{&amp;#34;role&amp;#34;:&amp;#34;source image&amp;#34;,&amp;#34;composition&amp;#34;:&amp;#34;busy top-down view of a densely packed historical street crowd, seen from above&amp;#34;,&amp;#34;scene&amp;#34;:&amp;#34;a chaotic crowd gathered around a wagon and a horse-drawn carriage, people pressed shoulder to shoulder, many wearing caps and muted early-20th-century or old-European clothing, bundles and sacks visible, one brown horse at the right edge, wooden wagon wheel and cart structure partially visible&amp;#34;,&amp;#34;camera&amp;#34;:&amp;#34;high overhead bird&amp;#39;s-eye angle looking down into the crowd&amp;#34;,&amp;#34;lighting&amp;#34;:&amp;#34;soft daylight&amp;#34;,&amp;#34;color_palette&amp;#34;:&amp;#34;muted earthy browns, dusty blues, beige, olive, warm gray&amp;#34;,&amp;#34;rendering&amp;#34;:&amp;#34;hand-painted anime film still, detailed crowd illustration, slightly soft shading&amp;#34;},{&amp;#34;role&amp;#34;:&amp;#34;output image&amp;#34;,&amp;#34;composition&amp;#34;:&amp;#34;the same crowded historical street reimagined from inside the mass of people at near-ground height&amp;#34;,&amp;#34;scene&amp;#34;:&amp;#34;view from within the crowd beside a carriage wheel, bodies filling the foreground and midground, a person in dark maroon clothing bent forward at left, a crouched figure in green near the bottom center, a woman in a light blue dress at right-center turning back, tightly packed figures, horse and cart implied nearby, dramatic sense of compression and closeness&amp;#34;,&amp;#34;camera&amp;#34;:&amp;#34;very low ground-level POV from inside the crowd, upward and forward through people, emphasizing complex occlusion and depth&amp;#34;,&amp;#34;lighting&amp;#34;:&amp;#34;soft daylight with warm cinematic shadows&amp;#34;,&amp;#34;color_palette&amp;#34;:&amp;#34;muted earthy browns, dusty blues, beige, olive, warm gray&amp;#34;,&amp;#34;rendering&amp;#34;:&amp;#34;hand-painted anime film still, cinematic perspective shift, detailed character crowding, soft painterly shading&amp;#34;}],&amp;#34;overall_goal&amp;#34;:&amp;#34;show a before-and-after camera angle transformation of the same anime crowd scene, with the output moving from an overhead view to a low immersive POV inside the crowd&amp;#34;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;霓虹-ai-缩略图对比&#34;&gt;霓虹 AI 缩略图对比
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/MoveHiro1219/status/2047698611665096732&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/MoveHiro1219&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@MoveHiro1219&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/043.webp&#34;
	width=&#34;1199&#34;
	height=&#34;675&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/043_hu_33f15e3a0c84a481.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/043_hu_175d60632bcf6b51.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;霓虹 AI 缩略图对比&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;177&#34;
		data-flex-basis=&#34;426px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a dramatic Japanese YouTube thumbnail in a futuristic neon cyberpunk style, 16:9 landscape. Use a dark tech-city background with faint skyscrapers, digital grid lines, glowing particles, and high-contrast blue, pink, and gold lighting. In the exact center, place a young woman from the waist up with long straight pastel blue hair, wearing a plain white short-sleeve T-shirt and a light pink skirt, posing thoughtfully with one hand near her chin and the other arm folded; anonymize her face with a soft rectangular blur. Across the very top, add huge distressed bold white Japanese headline text reading 主導権が揺れた, and directly below it add large bold yellow text reading {argument name=&amp;#34;subheadline text&amp;#34; default=&amp;#34;Nano Bananaから&amp;#34;}. On the left side, create a glowing blue hexagonal-framed panel titled Nano Banana with a smaller subtitle 画像生成. Inside that panel, include exactly 4 image tiles in a 2x2 grid: 1) a fantasy floating island landscape at sunset, 2) a sunlit forest path with tall trees, 3) a neon futuristic city street at night, 4) an outer-space planet scene with stars and a spacecraft. Beneath the left panel, add a blue glowing ribbon label reading かつては優位だった. On the right side, create a glowing magenta hexagonal-framed panel titled {argument name=&amp;#34;right panel title&amp;#34; default=&amp;#34;GPT Image 2&amp;#34;} with a smaller subtitle 実務で使える出力へ. Inside it, include exactly 4 example thumbnail cards in a 2x2 grid, each featuring the same blue-haired woman with a blurred face and bold Japanese text. The 4 card labels above the tiles are: サムネイル画像, 記事のアイキャッチ画像, LPのセクション画像, SNS投稿画像. The large text inside the 4 cards should read respectively: 1) AIで変わるクリエイティブの未来, 2) AI時代のクリエイティブ戦略 成功する企業の条件, 3) AIで加速するビジネス成長, 4) 未来をつくるのは AI×あなたのアイデア. Between the left and right panels, place a bright glowing gold arrow pointing from left to right with spark-like particle trails, indicating transition or superiority shift. Along the bottom, add a very large black banner with a glowing gold border and massive bold gold text reading {argument name=&amp;#34;bottom banner text&amp;#34; default=&amp;#34;GPT Image 2へ&amp;#34;}. Overall composition should feel like a comparison graphic showing a shift from older image generation to more practical commercial output, with aggressive thumbnail typography, strong glow effects, metallic texture on major text, and polished social-media marketing visuals.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;赛博朋克-ai-工具对比海报&#34;&gt;赛博朋克 AI 工具对比海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/MoveHiro1219/status/2047698611665096732&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/MoveHiro1219&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@MoveHiro1219&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/044.webp&#34;
	width=&#34;1199&#34;
	height=&#34;675&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/044_hu_e993eef1ea220a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/044_hu_6755473a85ce3e57.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;赛博朋克 AI 工具对比海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;177&#34;
		data-flex-basis=&#34;426px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A futuristic Japanese tech comparison poster in a dark cyberpunk control-room setting, wide 16:9 composition. Large distressed white Japanese headline text at the upper left reading &amp;#34;三つ巴&amp;#34;, with a bold gold subtitle directly below reading &amp;#34;それぞれの武器&amp;#34;. Across the center-left are 3 glowing holographic comparison panels arranged horizontally and connected by neon arrows: a blue panel labeled &amp;#34;Google&amp;#34;, an amber-gold panel labeled &amp;#34;Claude&amp;#34;, and a purple-magenta panel labeled &amp;#34;OpenAI&amp;#34;. The Google panel contains 4 inner cards: 2 larger top cards labeled &amp;#34;Gemini&amp;#34; and &amp;#34;Antigravity&amp;#34;, plus 2 smaller bottom cards showing analytics/dashboard-like visuals and a blue isometric cube graphic. The Claude panel contains 4 inner cards: 1 large top card labeled &amp;#34;Claude Code&amp;#34;, plus 3 smaller bottom cards showing a network diagram, text/code list, and chart analytics. The OpenAI panel contains 5 inner cards: 2 larger top cards labeled &amp;#34;ChatGPT&amp;#34; and &amp;#34;Codex&amp;#34;, plus 3 smaller bottom cards showing interface/code windows and a geometric wireframe cube. Add glowing bidirectional arrows between Google and Claude, and between Claude and OpenAI. At the bottom center, place a large neon-framed banner with gold text reading &amp;#34;Google / Claude / OpenAI&amp;#34;. On the right side, include a young woman standing and pointing left toward the panels, with long straight split-dyed hair in pastel pink and cyan blue, a plain white t-shirt with black text reading &amp;#34;{argument name=&amp;#34;shirt text&amp;#34; default=&amp;#34;OKIHIRO AI Creative&amp;#34;}&amp;#34;, and a soft pink pleated skirt. Her face is obscured by a smooth rectangular blur block. Use cinematic sci-fi lighting, glossy hologram UI details, high contrast, vivid blue-gold-purple accents, and a polished YouTube thumbnail aesthetic.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;日式-ai-对战-youtube-缩略图&#34;&gt;日式 AI 对战 YouTube 缩略图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/MoveHiro1219/status/2047698611665096732&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/MoveHiro1219&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@MoveHiro1219&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/045.webp&#34;
	width=&#34;1199&#34;
	height=&#34;675&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/045_hu_70f595024db82dbb.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/045_hu_e83698ae32159172.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;日式 AI 对战 YouTube 缩略图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;177&#34;
		data-flex-basis=&#34;426px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A bold Japanese YouTube thumbnail about the AI competition era, 16:9 widescreen, high contrast, dramatic tech-news style. Use a dark futuristic control-room background filled with 3 glowing holographic dashboard screens and blue cyber interface elements around the edges. On the left and center, place a luminous circular hub labeled “AI” in bright blue, with 3 directional glowing energy arrows branching outward to competing platforms: “Google” on the left in a blue electric region, “Claude” on the upper right in a gold electric region, and “OpenAI” at the bottom center in a magenta-purple electric region. Add a subtle world-map or territory-battle visualization effect under each brand region, like illuminated digital land masses or influence zones. On the right side, show a young Japanese-looking woman from waist up, facing forward, wearing a long straight split-color wig with pastel pink on one side and pastel blue on the other, a plain white T-shirt with the printed text “OKIHIRO AI Creative”, and a light pink skirt. She raises one index finger beside her face in a presenter pose. Her face is fully obscured by a large soft-edged rectangular blur block. Across the top, add huge distressed white Japanese headline text: {argument name=&amp;#34;headline text&amp;#34; default=&amp;#34;AI戦国時代&amp;#34;}. Beneath it, add a second line in bold gold Japanese text: {argument name=&amp;#34;subheadline text&amp;#34; default=&amp;#34;性能だけの話じゃない&amp;#34;}. Across the bottom, place a wide black banner with massive bold gold Japanese text: {argument name=&amp;#34;bottom text&amp;#34; default=&amp;#34;空気を取った側が勝つ&amp;#34;}. Make the typography oversized, gritty, and attention-grabbing, with slight glow and drop shadow. Use a color palette of black, electric blue, gold, magenta, and neon white, with intense contrast and thumbnail readability.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;东京-disneysea-前排战斗-ui&#34;&gt;东京 DisneySea 前排战斗 UI
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/mikko_20100518/status/2047514897404354598&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/mikko_20100518&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@mikko_20100518&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/046.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/046_hu_b2c64723a1135d80.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/046_hu_445e6e63a044c7d2.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;东京 DisneySea 前排战斗 UI&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a hyper-detailed comedic Japanese arcade fighting game screenshot styled like a versus battle scene, using a real-world photo aesthetic with game UI overlaid on top. The scene shows an intense mock battle between two groups of theme-park fans competing for the front row at an outdoor show plaza in Tokyo DisneySea. Use a wide 16:9 composition. In the background, clearly show Mediterranean Harbor and Mount Prometheus under bright daytime skies, with the waterfront and DisneySea architecture visible. In the foreground, show exactly 10 young adult people in winter casual clothing, split into 2 opposing teams of 5, physically leaning, grabbing, reaching, and shoving in a tug-of-war-like scrum over position, with exaggerated competitive body language and frozen action as if in a fighting game. Faces should be anonymized with soft blurred blocks. Add floating character labels above each person with levels and names in Japanese. The overall tone is absurdly realistic, like a real candid photo transformed into a polished arcade game battle screen.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Add a full Japanese fighting-game HUD with glossy blue-versus-red interface styling. At the very top, place a center stage title bar reading &amp;#34;東京ディズニーシー ミッキー広場 ショー最前列バトル&amp;#34; and a large timer in the middle reading &amp;#34;TIME 89&amp;#34;. In the top left, add a blue team header &amp;#34;PLAYER1&amp;#34; and team name &amp;#34;最前列ガチ勢A&amp;#34;. In the top right, add a red team header &amp;#34;RIVAL&amp;#34; and team name &amp;#34;ライバルグループB&amp;#34;. On the left side, stack exactly 5 blue player status panels with portraits, level, Japanese class-like nicknames, HP, SP, and BURST meters. The 5 left-side labels are: &amp;#34;Lv.25 ガチ勢リーダー ユウキ&amp;#34;, &amp;#34;Lv.24 筋肉マン タケシ&amp;#34;, &amp;#34;Lv.23 眼鏡オタク シンジ&amp;#34;, &amp;#34;Lv.23 開角心MAX ケント&amp;#34;, &amp;#34;Lv.22 サポート要員 リョウ&amp;#34;. On the right side, stack exactly 5 red rival status panels with the labels: &amp;#34;Lv.27 ライバルリーダー ダイキ&amp;#34;, &amp;#34;Lv.26 パワフル代表 マサル&amp;#34;, &amp;#34;Lv.24 戦略家 コウジ&amp;#34;, &amp;#34;Lv.23 熱血漢 リク&amp;#34;, &amp;#34;Lv.22 サポート女子 サキ&amp;#34;. Each panel should include numeric HP and SP values and segmented BURST gauges, styled like a Japanese arcade RPG-fighter interface.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Place exactly 10 in-battle nameplates above the fighters in the center scene, color-coded blue for the left team and red for the right team. The 10 labels are: &amp;#34;Lv.24 タケシ&amp;#34;, &amp;#34;Lv.25 ユウキ&amp;#34;, &amp;#34;Lv.23 シンジ&amp;#34;, &amp;#34;Lv.23 ケント&amp;#34;, &amp;#34;Lv.22 リョウ&amp;#34;, &amp;#34;Lv.27 ダイキ&amp;#34;, &amp;#34;Lv.26 マサル&amp;#34;, &amp;#34;Lv.23 リク&amp;#34;, &amp;#34;Lv.22 サキ&amp;#34;, &amp;#34;Lv.22 ミサキ&amp;#34;.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;At the lower left, add a skill menu titled &amp;#34;スキル&amp;#34; listing exactly 5 skills with SP costs: &amp;#34;ダッシュ突撃 SP 20&amp;#34;, &amp;#34;肩押し強奪 SP 25&amp;#34;, &amp;#34;荷物で場所確保 SP 15&amp;#34;, &amp;#34;ロープくぐり SP 10&amp;#34;, &amp;#34;本気の根性 SP 50&amp;#34;. Beneath that, add a dark description box explaining the highlighted skill &amp;#34;本気の根性&amp;#34; with the Japanese text: &amp;#34;気合で相手を威圧し、どかす! 一定時間、相手が怯みやすくなる! (バーストゲージを大きく消費する) 効果時間:10秒&amp;#34;.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;At the bottom center, add an item menu titled &amp;#34;アイテム&amp;#34; with exactly 5 item slots showing icons and counts: a water bottle &amp;#34;x3&amp;#34;, a folded purple towel &amp;#34;x2&amp;#34;, a blue drawstring bag &amp;#34;x1&amp;#34;, a gray backpack &amp;#34;x1&amp;#34;, and a boxed meal &amp;#34;x2&amp;#34;. At the lower right, add a quest panel titled &amp;#34;クエスト&amp;#34; with the mission text &amp;#34;ショー開始までに最前列を死守しろ!&amp;#34; and condition text &amp;#34;条件:ライバルグループを全員後ろに押し戻せ!&amp;#34; and countdown text &amp;#34;ショー開始まで:02:30&amp;#34;. Beside it, add a mini-map titled &amp;#34;ミッキー広場MAP&amp;#34; showing red and blue dots for both teams in the plaza. Along the very bottom edge, include small controller prompts in Japanese for actions such as skill use, item use, grab/push, and dash.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Use dramatic, saturated lighting, crisp detail, realistic clothing folds, authentic plaza stone pavement, and a high-end Japanese game screenshot look. The image should feel like a ridiculous but believable crossover between a real Tokyo DisneySea crowd photo and a competitive arcade battle game interface.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;宫崎骏风短片流程&#34;&gt;宫崎骏风短片流程
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/happycapyai/status/2049468986828697940&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/happycapyai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@happycapyai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/047.webp&#34;
	width=&#34;832&#34;
	height=&#34;709&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/047_hu_c16f4cb372376a6f.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/047_hu_b83a8c81f3c6afa3.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;宫崎骏风短片流程&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;117&#34;
		data-flex-basis=&#34;281px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Given a story concept, generate a complete Miyazaki-style animated short film: write a 30-shot script → generate watercolor storyboard images (gpt-image-1) → plan SOFT/HARD transitions → produce video clips with Seedance 2.0 using first/last-frame binding → synthesize the original ambient piano score → stitch everything into a final MP4 with music.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Navegacion de categorias: &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-case-index/&#34; &gt;Indice general&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/&#34; &gt;E-commerce&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/&#34; &gt;Creatividad publicitaria&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/&#34; &gt;Retratos&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/&#34; &gt;Posters e ilustraciones&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-character-cases/&#34; &gt;Personajes&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/&#34; &gt;UI y redes sociales&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/&#34; &gt;Comparaciones y comunidad&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;enlaces-del-repositorio-original&#34;&gt;Enlaces del repositorio original
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Pagina del proyecto&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts/blob/main/cases/comparison.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Archivo de categoria original&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>GPT-Image 2 Prompt Library: Portrait Photography Cases</title>
        <link>https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/</link>
        <pubDate>Sat, 02 May 2026 11:35:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/</guid>
        <description>&lt;p&gt;Esta pagina recopila 55 casos de la categoria &lt;code&gt;Retratos&lt;/code&gt;. Cada entrada conserva el enlace original, el autor, la imagen generada y el prompt completo.&lt;/p&gt;
&lt;p&gt;Navegacion de categorias: &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-case-index/&#34; &gt;Indice general&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/&#34; &gt;E-commerce&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/&#34; &gt;Creatividad publicitaria&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/&#34; &gt;Retratos&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/&#34; &gt;Posters e ilustraciones&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-character-cases/&#34; &gt;Personajes&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/&#34; &gt;UI y redes sociales&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/&#34; &gt;Comparaciones y comunidad&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;fotografia-de-retrato&#34;&gt;Fotografia de retrato
&lt;/h2&gt;&lt;h3 id=&#34;便利店霓虹人像&#34;&gt;便利店霓虹人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain/status/2045167461147042202&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@BubbleBrain&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/000.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/000_hu_f5ded828a47ee136.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/000_hu_9c32af7f48c22c7b.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;便利店霓虹人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;35mm film photography with harsh convenience store fluorescent lighting mixed with colorful neon signs from outside, authentic film grain, high contrast, slight color cast, cinematic street editorial style, intimate medium shot, early 20s sexy Chinese female idol with ultra-realistic delicate refined Chinese features, seductive almond-shaped fox eyes with natural double eyelids, high nose bridge, small sharp V-shaped jawline, flawless porcelain skin with cool ivory undertone and visible specular highlights from fluorescent light, subtle skin texture and micro pores, natural dewy makeup with soft flush on cheeks, glossy natural pink lips slightly parted, subtle natural freckles across nose and cheeks, long dark brown hair in a messy high ponytail with many loose strands falling around face and neck, wearing an oversized white button-up shirt as the only top, unbuttoned at the top with deep cleavage and loosely tied at the waist, paired with a tiny black pleated mini skirt, barefoot in simple white slides, seductive casual leaning pose against the glass door of a 24-hour convenience store at late night, body slightly arched, one leg bent with foot resting against the door frame, the other leg straight, one hand holding a bottle of iced drink, the other hand lightly pulling the hem of her mini skirt, intensely seductive playful yet slightly vulnerable gaze straight at the viewer with soft doe eyes full of quiet temptation and teasing smile, bright cold fluorescent store light from inside mixed with pink and blue neon glow from outside signs, realistic reflections on glass door, blurred convenience store interior with shelves and snacks in background, authentic 35mm film color grading with harsh lighting and neon accents, extremely sharp yet soft skin rendering, natural hair strands, realistic fabric wrinkles and drape on the oversized shirt and mini skirt, no plastic skin, no digital over-sharpening, no airbrushing, no blemishes, no moles, no oily skin, no watermark, no text, authentic late-night convenience store atmosphere
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;电影感极简人像&#34;&gt;电影感极简人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/iam_miharbi/status/2045151354679665101&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/iam_miharbi&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@iam_miharbi&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/001.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/001_hu_a8cd363b79ab3a8d.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/001_hu_2842eaf4560e93aa.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;电影感极简人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Generate a cinematic minimal portrait of a solitary man standing in an intense orange to red gradient environment, strong silhouette lighting, deep shadow contrast, reflective glossy floor, symmetrical composition, minimal
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;日式温泉旅馆人像&#34;&gt;日式温泉旅馆人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain/status/2045092449803284923&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@BubbleBrain&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/002.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/002_hu_3bb6d0434e7554a2.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/002_hu_f7835d1315a59bf2.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;日式温泉旅馆人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;35mm film photography, warm vintage Japanese onsen ryokan aesthetic, soft ambient wooden lantern lighting mixed with gentle natural window light, subtle film grain, gentle color shift, high atmosphere editorial style, intimate medium shot, early 20s beautiful Chinese female idol with ultra-realistic delicate refined Chinese features, seductive almond-shaped fox eyes with natural double eyelids, high nose bridge, small sharp V-shaped jawline, flawless porcelain skin with warm ivory undertone, visible subtle skin texture and micro pores, soft natural makeup with dewy glow, subtle rosy flush on cheeks, natural soft pink lips slightly parted, long dark brown hair tied in a loose low bun with some messy strands falling around face and neck, wearing a loose white yukata (traditional Japanese bathrobe) deliberately slipped off one shoulder and loosely tied at the waist, the fabric slightly open revealing smooth skin and subtle cleavage, barefoot, seductive relaxed sitting pose on the edge of a traditional wooden engawa veranda at a vintage onsen ryokan, body slightly turned toward the camera, one leg bent with foot resting on the wooden floor, the other leg gently dangling, one hand lightly holding the yukata collar, the other hand resting on the wooden floor behind her for support, softly arched back to gently accentuate curves, intensely seductive yet gentle and inviting gaze straight at the viewer with soft doe eyes full of quiet temptation and warmth, warm wooden interior with paper sliding doors and distant steaming hot spring in soft focus, gentle rim lighting highlighting skin and fabric texture, authentic vintage film color grading with warm tones, extremely sharp yet soft skin rendering, natural hair strands, realistic fabric wrinkles and drape on the yukata, no plastic skin, no digital over-sharpening, no airbrushing, no blemishes, no moles, no oily skin, no watermark, no text, authentic 35mm film Japanese onsen ryokan atmosphere
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;35mm-闪光编辑风人像&#34;&gt;35mm 闪光编辑风人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain/status/2045052982728016131&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@BubbleBrain&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/003.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/003_hu_305319b81c9e8f3d.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/003_hu_beb530d223306f78.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;35mm 闪光编辑风人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;35mm color film photography with harsh direct on-camera flash, specular highlights on skin and clothing, strong catchlights in eyes, high contrast flash illumination, authentic film grain and color shift, high fashion fresh innocent basketball court editorial style, intimate first-person low-angle POV shot from below, early 20s sexy Chinese female idol with ultra-realistic delicate refined Chinese features, seductive almond-shaped fox eyes with natural double eyelids, high nose bridge, small sharp V-shaped jawline, flawless realistic porcelain skin with cool ivory undertone and visible flash specular highlights, fine delicate skin texture with subtle pores micro details and natural dewy glow under flash, fresh natural sporty makeup with soft dewy glow, subtle natural flush on cheeks, natural pink lips slightly parted, subtle natural freckles across nose and cheeks, long dark brown hair tied in a high playful ponytail with some loose strands framing the face and realistic loose strands, wearing a loose white tank top and white high-waisted basketball shorts, white knee-high sports socks, seductive natural leaning pose against the basketball hoop pole on the outdoor court at dusk, body angled sideways with naturally arched back and hips gently pushed back to accentuate perky round hips and sexy butt curve, one leg naturally extended forward toward the camera and the other leg slightly bent to emphasize long sexy legs, both hands lightly resting on the basketball pole at shoulder height, intensely seductive playful yet pitiable doe-eyed gaze straight at the viewer with soft vulnerable longing eyes and a gentle teasing smile full of quiet temptation and desire, harsh direct on-camera flash creating sharp specular highlights and strong catchlights, background with blurred basketball court and hoop under dusk sky, high contrast film color grading with natural flash look, extremely sharp yet soft skin rendering with authentic 35mm direct flash aesthetic, natural hair strands, realistic fabric texture on tank top and shorts with socks detail, no plastic skin, no digital over-sharpening, no airbrushing, no blemishes, no moles, no oily skin, no watermark, no text, authentic 35mm direct flash film basketball court look --ar 9:16
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;卧室镜前自拍人像&#34;&gt;卧室镜前自拍人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Shinning1010/status/2045002808903020962&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Shinning1010&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Shinning1010&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/004.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/004_hu_3aa3d6321aca43eb.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/004_hu_a4607499955447e6.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;卧室镜前自拍人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A stunning 18-year-old Chinese girl with a youthful, pure face and realistic skin texture, sitting on a cozy, slightly messy bed in her bedroom. She is taking a mirror selfie with a smartphone, capturing a natural and intimate moment. Wearing casual gray loungewear and neat white crew socks. Soft natural light (golden hour) streams in from a side window, creating a warm, moody, and cinematic atmosphere. 35mm lens, sharp focus on the subject in the mirror, depth of field with a beautifully blurred background (bokeh). Photorealistic, 8K, high resolution, studio quality, masterpiece.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Negative Prompts: no extra limbs, no deformed hands, no blur, no noise, no watermark, no text, no cartoon/anime style. Aspect Ratio: 3:4.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;柔和通透-35mm-人像&#34;&gt;柔和通透 35mm 人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain/status/2046115431144902732&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@BubbleBrain&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/005.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/005_hu_ead3166a14d82b24.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/005_hu_9d803bc26e7fa005.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;柔和通透 35mm 人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Analog 35mm film photography, soft airy Japanese-style aesthetic, gentle diffused natural window light, slight overexposure, pastel tones, low contrast, soft highlights, minimal indoor setting near a window with white curtains, clean light-colored wall, natural composition, eye-level, slightly closer full-body framing (mid-thigh to head), young East Asian woman, natural minimal makeup, soft realistic skin texture, long slightly messy dark hair, oversized white button-up shirt, light casual shorts, barefoot, simple and relaxed styling, standing naturally with relaxed posture, arms loosely at sides or slightly behind, facing camera, gentle soft smile, subtle stillness, focus on light, air, and quiet everyday mood, soft film grain, dreamy and understated atmosphere --ar 9:16
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;奢华魅力美妆人像&#34;&gt;奢华魅力美妆人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/patrickassale/status/2044581766309060765&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/patrickassale&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@patrickassale&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/006.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/006_hu_290832876b0a66f1.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/006_hu_d476e80abdbb6f01.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;奢华魅力美妆人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Luxury Glam Beauty Portrait:, Beautiful Black woman, youthful spirit, creamy vanilla, silk press, mahogany red, subtle confidence, textured fabric, sapphire blue, minimal jewelry, beachside breeze, lens flare effect, nostalgic, cinematic lens, symmetrical composition, soft focus, high fashion photography, monochromatic, dewy finish, mysterious tension, layered elements
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;916-cosplayer-人像截图&#34;&gt;9:16 Cosplayer 人像截图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Zoulinshen/status/2045082518089810073&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Zoulinshen&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Zoulinshen&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/007.webp&#34;
	width=&#34;670&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/007_hu_6d0a9c27fc18bc06.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/007_hu_fcd08d0a514f6366.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;9:16 Cosplayer 人像截图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;55&#34;
		data-flex-basis=&#34;134px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;生成一张竖版手机截图风格的图片，整体比例接近 9:16。画面中心偏上是一位真人 coser，扮演（角色名称）的二次元角色。人物为写实风格，但五官略带动漫感，皮肤细腻，眼睛稍大，表情温柔地看向镜头，坐在室内的休闲场景中，例如咖啡厅或酒吧吧台前，背景有符合场景的道具。画面最上方加入手机系统状态栏 UI，包括时间、电量、信号、网络等图标，让整张图看起来像手机截图。画面底部叠加一块宽大的半透明 galgame 风格对话框，对话框左侧放一个与画面人物对应的动漫或 Q 版头像；对话框右侧排版文字：第一行用较大字体显示与前面相同的角色名字，下面一到两行显示一段适合这个角色人设的、温柔治愈风格的简体中文台词，由你自动创作。再在对话框下方加一条操作栏，仿照 galgame UI。整体风格高清、细节丰富、光线柔和、二次元与真人写真自然融合。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;城市回眸街拍人像&#34;&gt;城市回眸街拍人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Tz_2022/status/2045892003775361198&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Tz_2022&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Tz_2022&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/008.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/008_hu_8cbeba56057e830.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/008_hu_64bba90f899229f8.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;城市回眸街拍人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;该画面为中近景，采用平视镜头，聚焦于一位年轻女性。她以七分身镜头呈现，身体坐姿略带倾斜，臀部向后撅起，双腿自然交叠，左腿在前，右腿在后，膝盖微屈。她将上半身向右后方扭转，头部则转向镜头方向，形成一个经典的“回眸”姿态，目光直视镜头，眼神清澈而略带一丝俏皮。她的发型是蓬松的棕色齐肩短发，刘海自然垂落，发尾微卷，妆容清淡自然，仅在眼部有轻微眼线勾勒，唇色为自然裸粉。画面整体采用自然日光滤镜，光线从画面左上方斜射入，形成柔和的逆光轮廓，面部和身体右侧被温暖的金色光线照亮，左侧则形成自然的阴影过渡，增强了立体感。灯光效果是明亮的自然光，带有轻微的镜头眩光，营造出午后阳光的氛围。拍摄角度为平视，构图上，人物主体位于画面中偏右位置，背景中的斑马线与道路线条形成自然的引导线，将视线引向人物。背景为城市街道，包含道路、斑马线、绿化带和远处的车辆，背景被适度虚化，但依然可辨识出树木、护栏和停放的电动车等元素，构图上利用了三分法，人物位于右侧三分之一处，增强了画面的平衡感。主体穿着一件军绿色迷彩图案的连帽卫衣，下身搭配黑色短裤，脚穿白色高帮运动鞋配白色中筒袜。背包为黑色，带有橙黄色装饰条纹和一个橙色毛绒挂件，材质为帆布和皮革拼接。整体风格为街头休闲风，肢体语言放松自然，表情略带好奇与俏皮，整体呈现出一种随性、青春、充满活力的都市少女形象。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;sam-altman-滑板公园抓拍&#34;&gt;Sam Altman 滑板公园抓拍
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Malek1173989/status/2045836887684694395&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Malek1173989&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Malek1173989&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/009.webp&#34;
	width=&#34;456&#34;
	height=&#34;703&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/009_hu_e0b361543eb632d3.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/009_hu_8ce9a910d53d3bc2.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Sam Altman 滑板公园抓拍&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;64&#34;
		data-flex-basis=&#34;155px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;#34;Sam Altman on a skateboard at a skatepark with no people.&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;韩系偶像九宫格人像&#34;&gt;韩系偶像九宫格人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain/status/2046268941941850575&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@BubbleBrain&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/010.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/010_hu_82000a8f63ec387d.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/010_hu_f8719fddffa7f7c8.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;韩系偶像九宫格人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;9:16 vertical, Korean idol portrait photoshoot, 3x3 grid (nine frames), same person in all images, consistent facial features and styling, soft black mist filter effect, lowered contrast, blooming highlights, subtle glow around light sources
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;ccd-闪光韩系偶像照&#34;&gt;CCD 闪光韩系偶像照
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain/status/2046190539213885806&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@BubbleBrain&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/011.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/011_hu_571c0e2a9ebb0071.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/011_hu_132ebaae6384e909.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;CCD 闪光韩系偶像照&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mobile phone photo, old CCD camera aesthetic, harsh flash, grainy, dim messy indoor lighting, candid snapshot feeling, slight motion blur, young Korean female idol, soft innocent look
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;韩系偶像九宫格拼贴人像&#34;&gt;韩系偶像九宫格拼贴人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain/status/2046151898621993364&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@BubbleBrain&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/012.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/012_hu_d2407f2a414e8994.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/012_hu_fac057dc4f55b9a4.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;韩系偶像九宫格拼贴人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;9:16 vertical — a 3x3 grid collage (nine images) forming a Korean idol portrait photoshoot series. Each frame features the same young Korean female idol, maintaining 100% consistency in facial features, proportions, hairstyle, and identity across all nine shots.   Natural, ultra-realistic skin texture, no retouching, no smoothing. Clean idol-style minimal makeup, soft glow, subtle imperfections.   Hair: long, voluminous dark hair, slightly tousled, consistent across all frames (natural loose flow, slight movement).  Outfit: cohesive Korean idol photoshoot styling — white shirt + short bottoms (or simple neutral-toned outfit), youthful, clean, slightly casual but styled. Same outfit across all frames.  Setting: minimal studio or simple indoor environment (plain wall, soft window light, clean background). Focus on subject, not environment.  Lighting: soft diffused natural light, gentle highlights, low contrast, slightly airy tones, subtle film-like softness.  Camera style: intimate portrait photography, slightly handheld feel, subtle imperfections (minor grain, slight blur in motion frames, imperfect framing).  Frame breakdown (3x3 grid):  Top row: - Top left: standing naturally, looking slightly away, relaxed expression - Top center: facing camera, casual mid-motion (hair or body slight movement) - Top right: slight side angle, soft gaze, natural candid feel  Middle row: - Center left: looking slightly upward, soft thoughtful expression - Center: close-up portrait, direct eye contact, gentle idol smile - Center right: turning body slightly, mid-motion candid frame  Bottom row: - Bottom left: seated or leaning casually, relaxed posture - Bottom center: back partially turned, looking over shoulder toward camera - Bottom right: standing close to frame, slightly playful or soft expression  Mood: Korean idol photobook / photocard aesthetic, intimate, soft, natural, everyday charm.  Quality: ultra-realistic, 8K detail, subtle analog film grain, natural imperfections, soft dreamy tone
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;柔黑雾编辑风人像&#34;&gt;柔黑雾编辑风人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain/status/2046434670724907395&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@BubbleBrain&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/013.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/013_hu_b25492a69584d859.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/013_hu_771c0da60185e1a3.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;柔黑雾编辑风人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;9:16 vertical — editorial portrait, single subject  soft black mist filter, subtle haze, gentle highlight bloom, muted tones  minimal indoor space, clean background, slight texture  young Korean woman, minimal makeup, natural skin texture  outfit: fitted ribbed knit top or soft camisole layered under a loose shirt, paired with high-waisted shorts or skirt; fabric slightly clings to body shape, soft and natural, no revealing elements  hair: slightly messy, natural volume  pose: sitting on floor with one leg bent and the other relaxed, body slightly leaning, shoulders not aligned, head tilted  composition: subject slightly off-center, negative space present  expression: calm, slightly distant, natural lips  lighting: soft side light, gentle shadow falloff  mood: understated, quiet, subtly sensual through natural body lines, relaxed and unposed  quality: fine grain, slight softness, realistic look
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;富士草莓校园人像&#34;&gt;富士草莓校园人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain/status/2046483268019884384&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@BubbleBrain&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/014.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/014_hu_708da46c7002e19a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/014_hu_c414b5ea44cf7ff.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;富士草莓校园人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;9:16 vertical — Japanese Fuji film style portrait, single subject  Fujifilm analog aesthetic (Pro 400H / Superia feel), soft pastel tones, slight green-magenta shift, low contrast, gentle highlight roll-off, fine film grain, subtle halation, slight vignette  bright natural daylight, diffused sunlight through window, soft shadows, airy atmosphere  young Japanese female idol, natural minimal makeup, fresh glowing skin, realistic texture, slight imperfections  outfit: Japanese school uniform (sailor-style or blazer uniform), neatly styled, non-revealing, youthful and clean  hair: natural dark hair, straight or softly flowing, a few loose strands  pose: front-facing or slight angle toward camera, relaxed posture; one hand gently holding a strawberry near lips, mid-action as if about to take a bite; shoulders relaxed, subtle natural body curve  expression: soft playful gaze, light smile or neutral lips, gentle eye contact with camera  setting: minimal indoor near window or simple outdoor corner, clean background, everyday atmosphere  composition: slightly off-center framing, intimate distance, candid feel  mood: fresh, youthful, sweet everyday moment, understated charm  quality: ultra-realistic, analog film look, natural imperfections, soft dreamy finish
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;柔黑雾偶像人像&#34;&gt;柔黑雾偶像人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain/status/2046518189509734903&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@BubbleBrain&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/015.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/015_hu_bc38bc8da9e4ce8.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/015_hu_5a8fb39a55758192.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;柔黑雾偶像人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;9:16 vertical — Korean idol portrait photography, single subject  soft black mist filter effect, lowered contrast, gentle highlight bloom, subtle glow, soft diffusion, slightly faded blacks  minimal indoor setting near window, white curtains, clean light-toned background  young Korean female idol, natural minimal makeup, dewy realistic skin texture, subtle imperfections  outfit: oversized white button-up shirt + short bottoms, slightly loose fit, soft and casual styling, no revealing elements  hair: long dark hair, slightly messy, natural volume, softly flowing  pose: relaxed standing or slight lean, body subtly angled, one leg slightly forward, shoulders relaxed; one hand lightly touching collar or resting near neckline, the other relaxed; gentle body curve without exaggeration  expression: soft cute smile, slightly playful eyes, direct or slightly off-camera gaze  camera: close to mid-body framing, eye-level, intimate distance, slight handheld feel  lighting: diffused natural daylight, soft shadows, gentle light wrapping around face and body  mood: cute yet subtly sensual, intimate, everyday softness, quiet romantic atmosphere  quality: ultra-realistic, fine film grain, slight softness at edges, natural imperfections, dreamy understated tone
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;富士风情侣人像&#34;&gt;富士风情侣人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain/status/2046502288102170757&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@BubbleBrain&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/016.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/016_hu_c23f1f87c252c325.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/016_hu_cdcf89bb138f217b.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;富士风情侣人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;9:16 vertical — Japanese Fuji film style couple portrait, two subjects  Fujifilm analog aesthetic (Pro 400H / Superia feel), soft pastel tones, slight green-magenta shift, low contrast, gentle highlight roll-off, fine film grain, subtle halation  bright natural daylight, diffused sunlight through window, soft shadows, airy atmosphere  young Japanese couple, natural minimal makeup, realistic skin texture, slight imperfections  female outfit: oversized button-up shirt with loose shorts, relaxed fit, soft casual styling   male outfit: simple t-shirt or light shirt, clean and understated  hair: natural, slightly tousled for both  pose: close intimate distance — sitting or standing close together; the girl gently leaning toward him, one hand lightly resting on his shoulder or chest; the boy slightly leaning in, faces close, almost touching, capturing the moment just before a kiss  expression: soft smiles or gentle gaze toward each other, relaxed and natural, emotional connection visible  camera: close framing (waist-up), eye-level, intimate distance, slight handheld feel  setting: minimal indoor near window, light curtains, clean soft background  lighting: diffused daylight, gentle highlight bloom, soft shadow transitions  mood: warm, romantic, intimate everyday moment, natural affection  quality: ultra-realistic, analog film look, fine grain, slight softness, natural imperfections
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;ai-自我认知人像&#34;&gt;AI 自我认知人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/80vul/status/2046218165961753047&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/80vul&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@80vul&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/017.webp&#34;
	width=&#34;1200&#34;
	height=&#34;960&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/017_hu_64aaf4731473978e.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/017_hu_a42dd9a969e7de18.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;AI 自我认知人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;125&#34;
		data-flex-basis=&#34;300px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;根据你对我的认知 给我生成一个“你认识的我”的 图片
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;创建最写实的复古报纸头版设计&#34;&gt;创建最写实的复古报纸头版设计&amp;hellip;
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Naiknelofar788/status/2047207812800147647&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Naiknelofar788&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Naiknelofar788&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/018.webp&#34;
	width=&#34;1024&#34;
	height=&#34;1024&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/018_hu_2c608b433002f6fc.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/018_hu_323f3c17caed1b68.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;创建最写实的复古报纸头版设计…&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create the most realistic front page design of a vintage newspaper featuring the main character. The layout should be made in the style of a real printed newspaper with a cinematic black-and-white aesthetic.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;The main photo should be prominently placed in the center, framed, like the image in the title of the article. The subject in the photo should remain unchanged and clearly distinguishable in natural light and slightly increased contrast in order to match the spectacular editorial style.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a bold, attention-grabbing headline at the top (create a unique title that matches the spirit of the photo - it can be romantic, mysterious, funny, or dramatic). Add a smaller subtitle under it, which will look like a real newspaper caption.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Add realistic newspaper elements:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Columns of small text (in the style of lorem ipsum, but framed like real news)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;At the top is the fictitious name of the publication (for example, The Daily Prompts, AI Times or similar - think creatively, according to the picture)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Date, issue number and location
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Decorative lines, dividers, and vintage typography
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Small additional articles or captions to the main image
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Optional stamps, doodles, or editorial notes to add personality.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Style:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Black and white or slightly faded monochrome paper
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Fine paper texture, grain, and ink defects
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Small shadows and creases that mimic real printed paper
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;The aesthetics of a clean but slightly worn vintage newspaper
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Mood: Give the design personality, expressiveness and plot, as if the plot is part of the main article.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Aspect ratio: 4:5 or 1:1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;High-detail, ultra-realistic hybrid of editorial photography and print design.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;杂志旅行指南专题页&#34;&gt;杂志旅行指南专题页
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/andis13/status/2047204384811921764&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/andis13&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@andis13&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/019.webp&#34;
	width=&#34;805&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/019_hu_45d9491e25ecda1f.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/019_hu_a451650250877325.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;杂志旅行指南专题页&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;67&#34;
		data-flex-basis=&#34;161px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create image of Magazine feature article [travel] guide page, cute, information dense photo book style magazine feature article page. Add all necessary sections, tips, recommendations, information. add photos for any sections and recommendations if you like. Place the attached person at the precise location of [city, country]. Seamlessly blend the attached person as if they are sightseeing. Approach this task with the understanding that this is a critical, information rich page that will significantly influence visitor numbers, text accuracy is important. Fully use the entire [9:16] page. NEGATIVE PROMPT: coordinate texts @swiat_ai @ProfitAII
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;分析照片并给出可复现它的详细-json-提示词&#34;&gt;分析照片并给出可复现它的详细 JSON 提示词&amp;hellip;
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/pavellaslov/status/2047182214304055339&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/pavellaslov&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@pavellaslov&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/020.webp&#34;
	width=&#34;554&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/020_hu_a01827abf92f7e43.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/020_hu_1c76a74b60833556.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;分析照片并给出可复现它的详细 JSON 提示词…&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;46&#34;
		data-flex-basis=&#34;110px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;analyze this photo and give me a detailed JSON prompt that recreates it. break down the color grading and every exact color in the photo
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;(use Opus, not Sonnet. Opus has stronger visual analysis and writes more detailed JSON)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;paste that JSON into ChatGPT
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;upload your product image and prompt:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;using this JSON as reference, generate a person holding my product
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;save that generated photo as your character reference
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;attach it to every future generation for facial consistency
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;you now have a consistent UGC model that works across any product
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;the JSON controls the lighting and color grading. GPT image-2 handles the character. you control the product placement.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;the #1 tell on AI photos is flat colors and a grainy look. this method removes both.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;5 minutes to set up. unlimited variations after.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;calming-green-tea-胶片套装正面展示&#34;&gt;CALMING GREEN TEA 胶片套装正面展示&amp;hellip;
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/ZaraIrahh/status/2047180061657452601&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/ZaraIrahh&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@ZaraIrahh&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/021.webp&#34;
	width=&#34;1200&#34;
	height=&#34;896&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/021_hu_43869e9f2beb7268.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/021_hu_46742f9b141cb08e.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;CALMING GREEN TEA 胶片套装正面展示…&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;133&#34;
		data-flex-basis=&#34;321px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;CALMING GREEN TEA Film Kit displayed frontally, the open box shows soft sage-green film pouches and translucent ampoules with matte silver caps, product placed centrally with clear branding CALMING GREEN TEA -- 7 Days to Soothed Skin, pastel green background with botanical graphic accents, three minimal icons (leaf, wave, balance) floating around the product to emphasize benefits, photographic, hyper detailed, ultra realistic, lifelike, 8k, high detail, soft professional lighting.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;草莓软冰淇淋的超写实产品摄影&#34;&gt;草莓软冰淇淋的超写实产品摄影&amp;hellip;
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/ZaraIrahh/status/2047179916161212542&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/ZaraIrahh&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@ZaraIrahh&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/022.webp&#34;
	width=&#34;1200&#34;
	height=&#34;896&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/022_hu_2d052d4454c0beed.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/022_hu_50c9709cd2cd5cf7.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;草莓软冰淇淋的超写实产品摄影…&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;133&#34;
		data-flex-basis=&#34;321px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Ultra-realistic product photography of a rich strawberry soft-serve ice cream in a crispy waffle cone, styled with a clean, modern premium aesthetic. The soft serve is a vibrant natural pink, thick and creamy, sculpted into a smooth swirl with a softly curled peak, lightly topped with delicate strawberry dust or tiny fruit specks for a fresh, appetizing look. The cone has a rustic, crunchy texture with slightly uneven edges for an artisanal feel.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;The background is soft beige with natural sunlight casting subtle leaf shadows, creating a calm, organic atmosphere. Include softly blurred greenery in the foreground for depth. The composition is minimal, balanced, and uses negative space effectively, similar to high-end American food brand ads.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;On the left side, include modern English typography in a clean, elegant layout (not vertical).
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Main headline:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Sweet Strawberry Bliss.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Supporting line (smaller text):
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Made with real strawberries. Smooth. Creamy. Irresistible.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Add a small circular badge showing the price:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$5.80.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Lighting: soft natural daylight, warm highlights, shallow depth of field, high-end commercial food photography style.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Mood: fresh, premium, modern, and inviting — aligned with upscale U.S. dessert branding.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;轻薄笔记本电脑上的超写实-uiux-样机&#34;&gt;轻薄笔记本电脑上的超写实 UI/UX 样机&amp;hellip;
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/ZaraIrahh/status/2047179669011616172&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/ZaraIrahh&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@ZaraIrahh&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/023.webp&#34;
	width=&#34;1200&#34;
	height=&#34;896&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/023_hu_4856939525bcde80.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/023_hu_d410dc5c5e8bbf83.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;轻薄笔记本电脑上的超写实 UI/UX 样机…&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;133&#34;
		data-flex-basis=&#34;321px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A hyper-realistic UI/UX mockup displayed on a slim modern laptop placed on a minimal wooden desk with soft natural daylight. The screen shows a clean SaaS dashboard with elegant typography, glassmorphism cards, smooth gradients, subtle drop shadows, and neatly spaced components. Visible charts, analytics panels, sidebar navigation, and micro-interactions. Realistic macOS-style window frame, soft reflections on the screen, shallow depth of field, cozy workspace atmosphere, shot in photorealistic product photography style, ultra-detailed.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;18-岁年轻男性的超写实电影感-dslr-照片&#34;&gt;18 岁年轻男性的超写实电影感 DSLR 照片&amp;hellip;
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/harboriis/status/2047175250761433416&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/harboriis&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@harboriis&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/024.webp&#34;
	width=&#34;955&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/024_hu_7a667145418d704c.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/024_hu_1341a61c5ce56128.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;18 岁年轻男性的超写实电影感 DSLR 照片…&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;79&#34;
		data-flex-basis=&#34;191px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Ultra-realistic cinematic DSLR photograph of an 18-year-old handsome young man with a slim skinny body, lean physique, narrow shoulders and waist, standing confidently in front of a blue 2017 Ford Mustang GT Convertible with a bold red soft top roof, captured from a high-angle aerial perspective exactly like a luxury driveway photoshoot. Keep face 100% identical to reference image with exact facial structure, natural skin texture, realistic pores, authentic expression, no beautification, no facial modification. Same modern textured side-swept quiff hairstyle with heavy natural volume on top, deep side flow, messy yet controlled texture, soft matte finish, visible natural hair strands, softly blended sides.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;The subject stands centered near the front bumper of the Mustang GT, hands inside hoodie pockets, relaxed shoulders, straight posture, slight head tilt upward toward camera, confident calm expression, wearing oversized premium black hoodie with realistic cotton texture, natural folds, hanging drawstrings, loose dark washed black denim jeans with soft wrinkles and stacked hems, clean white sneakers with realistic leather texture and sole details, black slim rectangular sunglasses.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Car must be a detailed 2017 Ford Mustang GT Convertible, metallic electric blue paint, glossy reflections on hood, visible Mustang pony grille emblem, aggressive headlights, muscular hood sculpting, aerodynamic front bumper, black alloy wheels, premium red convertible fabric roof, realistic windshield reflections, detailed side mirrors, authentic tire tread, showroom-clean finish
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Scene set in an upscale villa driveway with light beige hexagonal stone pavement, curved border with fresh green grass on left side, tropical palm leaves entering frame from top corners, subtle luxury outdoor atmosphere. Soft natural daylight, diffused afternoon lighting, realistic shadows under car and body, soft reflections on paintwork, cinematic premium color grading, natural contrast, shallow depth separation while maintaining environment clarity. Shot on 35mm lens, vertical composition, full body framing, crisp details, hyper-realistic DSLR quality, zero Al look, natural skin rendering, realistic hair strands, fabric texture, stone surface texture, luxury lifestyle mood. stylish text AmanZaid at the bottom-left corner, signature style
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Negative Prompt:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;face changed, different identity, beautified face, edited face, smooth plastic skin, fake skin glow, wrong hairstyle, short hair, fade haircut, buzzcut, messy deformed hair, female features, muscular body, fat body, broad shoulders, bad anatomy, long neck, short legs, extra fingers, missing fingers, mutated hands, distorted arms, broken posture, crossed eyes, lazy eye, bad sunglasses, blurry face, low resolution, pixelated, noisy image, overexposed, underexposed, harsh shadows, unrealistic reflections, fake car shape, wrong car model, damaged car, extra wheels, warped Mustang logo, incorrect. proportions, bad pavement texture, background artifacts, duplicate objects, watermark, logo errors, text artifacts, cropped feet, cut car, unnatural perspective, CGI render, cartoon style, painting, Al artifacts, oversaturated colors, motion blur, lens distortion 1664x2080-ar 4:5
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;卧室随手自拍写实人像&#34;&gt;卧室随手自拍写实人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/charliejhills/status/2047969988368314526&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/charliejhills&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@charliejhills&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/025.webp&#34;
	width=&#34;800&#34;
	height=&#34;1000&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/025_hu_9c8902eabd291e4c.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/025_hu_80f0073c3177ed55.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;卧室随手自拍写实人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;80&#34;
		data-flex-basis=&#34;192px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Candid selfie of a young woman with shoulder-length honey-blonde hair with lighter highlights, green-grey eyes, rosy cheeks, and a natural no-makeup makeup look. She is wearing a light grey hoodie and looking slightly off-camera with a relaxed expression. Background shows a cosy bedroom with warm fairy lights strung on a pink wall, a unmade bed with tan bedding, and a small white desk with stacked books. Soft, warm ambient lighting. Photo-realistic, casual, intimate feel.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;音乐人夜晚离开杂货店电影感人像&#34;&gt;音乐人夜晚离开杂货店电影感人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/commanderdgr8/status/2047934886124867684&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/commanderdgr8&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@commanderdgr8&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/026.webp&#34;
	width=&#34;2048&#34;
	height=&#34;1117&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/026_hu_cd6e1f4fe4dfb269.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/026_hu_9dad3b51703c646f.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;音乐人夜晚离开杂货店电影感人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;183&#34;
		data-flex-basis=&#34;440px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A candid, magazine-cover quality documentary photograph of a young musician with curly hair, casually carrying a worn guitar case, stepping out of a classic downtown bodega at 11 PM. The lighting features a complex mixed color temperature: a bright neon &amp;#34;OPEN&amp;#34; sign casts an intense, warm red glow across his face, while a yellow streetlamp provides a striking backlight behind him. The image perfectly emulates 35mm film shot on a Canon AE-1 with a 50mm f/1.4 lens wide open, exhibiting a shallow depth of field with the background beautifully blurred. It captures the exact aesthetics of CineStill 800T film, specifically featuring the distinctive soft red halation bloom radiating outward from the neon light sources, a tungsten white balance, and moody, slightly green-tinted shadows in the darkest areas. Cinematic night photography, photorealistic, highly detailed.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;老德里甜品店门面纪实照片&#34;&gt;老德里甜品店门面纪实照片
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/commanderdgr8/status/2047889839123521635&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/commanderdgr8&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@commanderdgr8&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/027.webp&#34;
	width=&#34;2048&#34;
	height=&#34;1117&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/027_hu_42e54e1db1f7af92.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/027_hu_52ba2cb96833b777.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;老德里甜品店门面纪实照片&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;183&#34;
		data-flex-basis=&#34;440px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a photorealistic travel-documentary image of a small sweet-shop storefront in Old Delhi at midday. A painted shop signboard above the door reads &amp;#34;मिठाई की दुकान&amp;#34; in large bold yellow hand-painted Devanagari on a deep red background, with &amp;#34;SWEET SHOP&amp;#34; in smaller roman letters beneath. Realistic hand-painted texture, slight wear, natural shadow. Authentic script proportion. Spelling and characters exact. No extra signage in frame, no watermark.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;赛博朋克科幻侧脸人像&#34;&gt;赛博朋克科幻侧脸人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/iamsofiaijaz/status/2047882171336253928&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/iamsofiaijaz&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@iamsofiaijaz&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/028.webp&#34;
	width=&#34;1122&#34;
	height=&#34;1402&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/028_hu_5c31b9faaaa9ff0a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/028_hu_a127191cf9de7b67.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;赛博朋克科幻侧脸人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;80&#34;
		data-flex-basis=&#34;192px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A cinematic side-profile portrait of a rugged man with a tied-back bun and full beard, wearing round dark sunglasses and a textured leather jacket. His skin is detailed and slightly weathered. The background is a futuristic sci-fi interface filled with glowing orange and red data streams, star maps, celestial navigation diagrams, grids, and holographic UI elements. Fiery particle effects and ember-like energy swirl around him, creating a cosmic, high-tech atmosphere. Dark color palette with strong contrast, dramatic lighting, ultra-detailed, sharp focus, 8K, cyberpunk aesthetic, cinematic composition, depth of field.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;真实卧室录制抓拍人像&#34;&gt;真实卧室录制抓拍人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/ChillaiKalan__/status/2047862141894681076&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/ChillaiKalan__&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@ChillaiKalan__&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/029.webp&#34;
	width=&#34;1360&#34;
	height=&#34;2048&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/029_hu_3a5bfa190955d43f.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/029_hu_8b11a48a55edc20.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;真实卧室录制抓拍人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;159px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A realistic young woman sitting casually in a softly lit bedroom during late afternoon.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;She is holding her phone very close to her face as if recording a private video or voice note.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Framing is tight and slightly imperfect.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Expression: thoughtful, slightly shy, natural.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Minimal makeup, natural skin texture, relaxed clothing.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Lighting: warm natural light fading from a window, soft shadows.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Environment: simple bedroom, calm and lived-in.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Style: ultra-realistic, looks like a real phone recording, slightly grainy, not cinematic.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;幼儿蜡笔涂鸦风人像&#34;&gt;幼儿蜡笔涂鸦风人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/akakageAI/status/2047812983389356276&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/akakageAI&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@akakageAI&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/030.webp&#34;
	width=&#34;1448&#34;
	height=&#34;1086&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/030_hu_5cf600ac42712e9a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/030_hu_48e7038aa1063779.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;幼儿蜡笔涂鸦风人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;133&#34;
		data-flex-basis=&#34;320px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;(被写体) in the style of super bad child drawing, toddler art, scribbles, messy crayon lines on white background, completely lack of technique, terrible composition, chaotic colors, barely recognizable shapes, very raw, honest art, pure naivety, unrefined style, 4:3
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Negative:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;good drawing, nice lines, clear shapes, neat, pretty, smooth, realistic, talented art, coherent composition, artistic style, professional, skilled, masterpiece, beautiful, detailed
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;修复后的复古母子人像&#34;&gt;修复后的复古母子人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/gdb/status/2048184797374325031&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/gdb&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@gdb&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/031.webp&#34;
	width=&#34;1024&#34;
	height=&#34;1024&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/031_hu_ca8b84e71397fc0.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/031_hu_1ca1b5b428820847.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;修复后的复古母子人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A restored vintage family snapshot, photographed indoors in soft natural light, showing a {argument name=&amp;#34;adult subject&amp;#34; default=&amp;#34;young mother&amp;#34;} seated and holding a {argument name=&amp;#34;child subject&amp;#34; default=&amp;#34;toddler&amp;#34;} on her lap in a close, centered waist-up portrait. The adult has short softly curled auburn hair in a voluminous 1960s-inspired bob, wears a sleeveless black dress and a thin gold necklace, and wraps both arms protectively around the child. The child has fine light blond hair and wears a plain white long-sleeve outfit. Compose the image with a warm nostalgic color cast, gentle film softness, subtle grain, and the look of a carefully repaired old printed photograph. Place them in front of a cream-colored curtain patterned with small brown teddy bear motifs, with a softly blurred interior window frame visible along the top background. Preserve realistic skin tones, natural posture, and the intimate family-photo feeling, as if an old damaged photograph has been professionally reimagined and restored. Square crop, centered composition, shallow depth of field, authentic analog photo texture, no modern styling, no text.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;受损复古母子照片&#34;&gt;受损复古母子照片
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/gdb/status/2048184797374325031&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/gdb&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@gdb&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/032.webp&#34;
	width=&#34;1080&#34;
	height=&#34;1141&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/032_hu_51c8a5ee2d35dffd.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/032_hu_a4f024bc8f2e9d3b.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;受损复古母子照片&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;94&#34;
		data-flex-basis=&#34;227px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A heavily damaged old family snapshot in faded black and white with a slight sepia cast, shown as a worn physical photograph scanned straight-on. The image depicts a seated woman holding a small child on her lap indoors, both centered in a simple portrait composition. The woman has short dark wavy hair and wears a dark sleeveless dress or pinafore layered over a lighter short-sleeved blouse. The child appears to be a toddler with very short light hair, wearing a light-colored outfit, facing the camera while sitting against the woman’s chest and arm. Behind them is a patterned curtain with small floral or leaf motifs, and above it a dark window area with a pale vertical window frame is visible near the top center. The print is severely deteriorated: extensive scratches, creases, emulsion damage, stains, blotches, and peeling cover the entire surface, with especially heavy white abrasion and loss of detail across the bottom third and scattered cracking throughout. Keep the overall look authentic to a mid-20th-century vernacular photo, low contrast, soft focus, and visibly aged paper texture. Add a rectangular blurred censor block over the woman’s face only, while the child’s face remains visible but faded. No text, no border, just the distressed archival photograph filling the frame.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;墨刻风家庭肖像&#34;&gt;墨刻风家庭肖像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/gdb/status/2048184698195870102&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/gdb&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@gdb&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/033.webp&#34;
	width=&#34;960&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/033_hu_66a76792300b0043.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/033_hu_6521473b15c2b22e.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;墨刻风家庭肖像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;80&#34;
		data-flex-basis=&#34;192px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A black-and-white hand-drawn family portrait in the style of detailed pen-and-ink crosshatching on textured white paper, showing 4 people seated closely together in a casual candid composition. On the left, an adult man in a dark baseball cap worn backward and a dark T-shirt leans into the frame, with a crossbody sling bag worn across his chest and visible zipper details. On the right, an adult woman with curly hair tied up in a loose high bun wears a light T-shirt with large collegiate block letters reading {argument name=&amp;#34;shirt text&amp;#34; default=&amp;#34;CITY&amp;#34;}. In the center are 2 young children sitting close together, both with short curly hair and matching light-colored T-shirts printed all over with strawberries. The child on the left leans inward with one arm crossing the other child, and the child on the right tilts their head slightly upward. The adults frame the children protectively, creating a warm family snapshot feeling. Render the whole image as a monochrome etched illustration with dense fine-line hatching, engraved shadows, crisp contour lines, and a realistic yet artistic likeness, with no color, no background setting beyond a plain light paper texture, and a vertical portrait crop.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;复古雕刻风连帽衫人像&#34;&gt;复古雕刻风连帽衫人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/gdb/status/2048184698195870102&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/gdb&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@gdb&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/034.webp&#34;
	width=&#34;1200&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/034_hu_23218fad5cfb2972.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/034_hu_681e4f556710271e.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;复古雕刻风连帽衫人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A centered black-and-white vintage engraved portrait of a bearded man wearing a hooded sweatshirt with the hood up and a backward snapback cap visible under the hood. Show only the upper torso and head against a plain off-white paper background with subtle texture. Render the image in detailed pen-and-ink etching style with dense cross-hatching, fine parallel lines, and old book illustration shading. The figure faces forward in a calm, neutral pose. The cap has a visible snap closure band across the forehead area, slicked-back hair is visible above it, and a thick full beard extends below the face. The hoodie has two drawstrings hanging down at the chest. Keep the composition symmetrical and tightly framed like a classic engraved bust portrait, with no color, no modern graphic elements, and no background objects.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;梦幻逆光编辑风人像&#34;&gt;梦幻逆光编辑风人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/ToroJushiAi/status/2048139425465467248&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/ToroJushiAi&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@ToroJushiAi&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/035.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/035_hu_94ecaadb0c447059.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/035_hu_c6749b4025021f4f.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;梦幻逆光编辑风人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A cinematic soft-focus portrait of a woman from behind and slightly in profile, framed from the upper torso up in a vertical composition. She has {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;dark brown&amp;#34;} hair styled in a loose messy updo with wispy strands catching the light. Her face is mostly hidden by her pose and hair, with only a small portion of one cheek visible. She wears a {argument name=&amp;#34;dress color&amp;#34; default=&amp;#34;deep red&amp;#34;} sleeveless dress with an open back or low-cut side, emphasizing her bare shoulder and upper back. One hand is raised delicately near her neck or shoulder, fingers relaxed. Use strong warm backlighting and rim light, with glowing golden highlights around the hair and skin, dreamy lens flare, and large circular bokeh in the blurred background. The image should feel intimate, elegant, and slightly sensual, like a high-end fashion or beauty editorial, with shallow depth of field, creamy blur, warm amber and rose tones, and a soft cinematic glow.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;3d-卡通角色渲染&#34;&gt;3D 卡通角色渲染
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Inshrah_ali_/status/2048121503367995753&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Inshrah_ali_&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Inshrah_ali_&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/036.webp&#34;
	width=&#34;1024&#34;
	height=&#34;1024&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/036_hu_e147ab42f223a537.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/036_hu_4787b6eaf46eb5af.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;3D 卡通角色渲染&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;High-quality 3D CGI render of {argument name=&amp;#34;character&amp;#34; default=&amp;#34;[character]&amp;#34;} in a charming cartoon style, portrait composition showing head and shoulders. Highly stylized caricature with exaggerated, expressive features that are both playful and humorous. Smooth, polished rendering with clean materials and soft ambient lighting creating gentle shadows. Dynamic camera angle with stylish perspective. Minimalist bright {argument name=&amp;#34;background color&amp;#34; default=&amp;#34;[color]&amp;#34;} background that makes the character pop and stand out. Professional Pixar-like quality with glossy finish and cheerful mood.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;楼梯上的亮片裙年轻女性&#34;&gt;楼梯上的亮片裙年轻女性
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/XSydneyFan/status/2048114180906217566&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/XSydneyFan&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@XSydneyFan&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/037.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/037_hu_9bc47916860f6bd2.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/037_hu_8133948ec72b97ac.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;楼梯上的亮片裙年轻女性&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Vertical 2:3 format. {argument name=&amp;#34;subject&amp;#34; default=&amp;#34;Young woman&amp;#34;} hair in messy updo sits on modern wooden staircase. wears {argument name=&amp;#34;dress&amp;#34; default=&amp;#34;shimmering Silver halter dress sequin dress&amp;#34;}. matching with silver high-heeled sandals. legs crossed. Silver heart earrings. One fuchsia bracelet on each ankle. Sultry expression, with slightly parted lips. Blurred background vertical wooden slats and black metal railings. Don&amp;#39;t change face
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;奢华棚拍换装效果&#34;&gt;奢华棚拍换装效果
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Abdullah__Ai7/status/2048083022315159595&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Abdullah__Ai7&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Abdullah__Ai7&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/038.webp&#34;
	width=&#34;1024&#34;
	height=&#34;1024&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/038_hu_7ca6d841487e471c.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/038_hu_e4f5ee7bf20b1e95.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;奢华棚拍换装效果&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Using REFERENCE_0 as the subject base, transform the casual desert snapshot into a full-body luxury fashion studio portrait. Replace the denim jacket, tank top, and shorts with a fitted strapless mini cocktail dress in {argument name=&amp;#34;dress color&amp;#34; default=&amp;#34;powder blue&amp;#34;} with ornate silver floral embroidery and exactly 2 geometric cutouts at the chest and upper waist. Change the setting to a clean seamless light-gray studio background with polished high-end editorial styling. Add 1 silver clutch with a thin chain strap in the subject&amp;#39;s right hand and 1 pair of pointed silver high heels. Refine the pose into an elegant standing fashion pose with one hand near the face, keep the same person and hair identity, and apply soft cinematic luxury lighting with crisp 8K fashion-photography detail.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;暖色咖啡馆里的金发女仆&#34;&gt;暖色咖啡馆里的金发女仆
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/yume00112211/status/2048072808606089230&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/yume00112211&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@yume00112211&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/039.webp&#34;
	width=&#34;960&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/039_hu_d035b2c40abf9863.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/039_hu_8697440bb33f05ad.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;暖色咖啡馆里的金发女仆&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;80&#34;
		data-flex-basis=&#34;192px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A polished anime-style portrait of {argument name=&amp;#34;character&amp;#34; default=&amp;#34;a blonde female VTuber-inspired maid&amp;#34;} seated indoors in a cozy sunlit cafe, framed from upper thighs to head in a slightly high, intimate angle. She has short to medium-length tousled {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;golden blonde&amp;#34;} hair with soft layers, a white frilled maid headband, and a teal ribbon hair accessory with a small gold ornament on the right side. Her face is mostly obscured by the hair falling forward, creating a mysterious hidden-face composition. She wears an elegant black-and-white maid dress with puff sleeves, white ruffles, gold trim, a fitted bodice, a white apron, and a large white waist bow visible at the side and back. Add 2 teal bows with gold star-like charms: 1 at the collar and 1 on the wrist. Her right hand gently touches the bow at her chest, and her left hand is raised delicately near her shoulder holding a loose strand of hair. Include a frilly lace garter on her exposed thigh with a small teal-and-gold ribbon decoration. The background is a warmly lit European-style cafe interior with wooden beams, framed botanical art on the walls, a softly blurred cake stand on the left, window light streaming in, and tiny glowing dust-like sparkles in the air. Use soft golden afternoon lighting, shallow depth of field, glossy detailed fabric rendering, delicate skin shading, subtle romantic atmosphere, and highly detailed refined anime illustration quality.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;梦幻东方女性人像提示词&#34;&gt;梦幻东方女性人像提示词
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai/status/2048046253842559183&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@liyue_ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/040.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/040_hu_8c23fe125c31e9be.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/040_hu_f78dd7f2ac1e24bf.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;梦幻东方女性人像提示词&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{argument name=&amp;#34;subject&amp;#34; default=&amp;#34;Dreamy Oriental female portrait&amp;#34;}, adult female, close-up portrait, exquisite facial features, fair and translucent skin, delicate but clean skin texture, emerald green eyes, soft and charming gaze, brown wavy hair falling naturally; {argument name=&amp;#34;accessories&amp;#34; default=&amp;#34;Off-white lace headpiece&amp;#34;}, embellished with turquoise butterflies and pearl decorations; attire is an exquisite lace gown with a clear structure and clean, not overly complex texture, accompanied by emerald jewelry; lighting is soft warm gold side-backlighting, rim lighting is clear but not overexposed, skin has slight highlights but not excessive reflection, overall lighting is clean and transparent, background is softly blurred with shallow depth of field; high-end portrait photography quality, details are clear but restrained, no grain, no noise, real physical lighting, 8K, commercial-grade quality. Aspect ratio: 9:16
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;黑白爱马仕风头像&#34;&gt;黑白爱马仕风头像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/jiajia232016/status/2048044100793032976&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/jiajia232016&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@jiajia232016&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/041.webp&#34;
	width=&#34;1024&#34;
	height=&#34;1024&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/041_hu_647536e3949f45b4.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/041_hu_61522042056dbfcf.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;黑白爱马仕风头像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a minimalist black-and-white vector avatar logo of a mythic anime woman shown in elegant side profile facing right, cropped from the chest up on a plain white background. Give her long flowing {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;black&amp;#34;} hair with bold white highlight streaks and smooth graphic shapes, rendered as high-contrast ink silhouette art with clean sharp edges. She wears a winged headpiece reminiscent of Hermes or a messenger god helmet, with one large white feathered wing visible on the side of her head and a circular metallic earpiece detail. Dress her in a sleek high-collar garment with a luxury-fashion feel, and hang a prominent pendant or zipper pull shaped like the letter {argument name=&amp;#34;monogram letter&amp;#34; default=&amp;#34;H&amp;#34;} at the center of the collar. The face is intentionally obscured by a centered soft gray rectangular blur block covering most facial features, creating a censored anonymous profile-image effect. Overall style: luxury brand avatar, fashion logo, anime-inspired goddess silhouette, monochrome vector emblem, smooth negative-space highlights, balanced composition, modern and iconic, suitable for a social media profile picture.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;赛博水晶动漫少女人像&#34;&gt;赛博水晶动漫少女人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/libearal/status/2048026376645861799&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/libearal&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@libearal&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/042.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/042_hu_f9aae24c208fa93e.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/042_hu_a45a3eb84ee04cf.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;赛博水晶动漫少女人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A highly detailed anime-style full-body character portrait of {argument name=&amp;#34;character name&amp;#34; default=&amp;#34;Hermes&amp;#34;}, a delicate futuristic girl sitting curled up with her knees hugged to her chest, gazing softly at the viewer with a calm, slightly melancholic expression. She has extremely long {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;silver-lilac&amp;#34;} twin tails with soft bangs, glossy lavender eyes, porcelain skin, and ornate crystal hair accessories including 3 large ribbon bows and a jeweled tiara-like headpiece. Her outfit is an elaborate translucent idol-tech dress in {argument name=&amp;#34;outfit color&amp;#34; default=&amp;#34;pink, lavender, and violet&amp;#34;}, featuring off-shoulder puff sleeves, layered ruffles, faceted gemstone-like fabrics, a huge floral bow at the waist, dangling crystal charms, garter details, patterned thigh-high stockings, and glossy bow heels. Surround her with a luminous cyber dreamscape in {argument name=&amp;#34;background palette&amp;#34; default=&amp;#34;neon violet and electric blue&amp;#34;}: transparent holographic panels, floating glass cubes, sparkling particles, geometric prisms, glowing wireframe lines, and digital UI windows suspended in space. Include 5 readable interface text elements scattered in the background: &amp;#34;ERROR.&amp;#34;, &amp;#34;Code-&amp;#34;, &amp;#34;return&amp;#34;, &amp;#34;area x1&amp;#34;, and &amp;#34;404&amp;#34;. Make the whole image feel like a luxurious AI avatar reference illustration, mixing ethereal fantasy and cyberspace aesthetics, with crystalline light refractions, dramatic glow, high detail, intricate lace and gem textures, and a polished premium gpt-image-2 anime rendering.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;粉彩薰衣草动漫少女人像&#34;&gt;粉彩薰衣草动漫少女人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/libearal/status/2048026376645861799&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/libearal&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@libearal&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/043.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/043_hu_b7d9436c114003f3.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/043_hu_fc069f8705fca8dc.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;粉彩薰衣草动漫少女人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A delicate vertical anime portrait of a dreamy young woman in an ethereal pastel lavender palette, shown from about mid-thigh up against a soft decorative background of pale swirling lines, floating petals, tiny stars, and subtle sparkles. She has extremely long, voluminous silver-lilac hair styled in twin tails with flowing strands, soft bangs, and ornate ribbon decorations; each side is adorned with large lavender bows, ruffled headband-like trim, dangling gold star charms, and small white flower hair ornaments. Her face is centered and mostly covered by a flat solid pale lavender rectangle censor block, leaving only hints of her ears and hairline visible. She wears an elaborate fantasy-lolita inspired dress in white, pearl, and light violet, with glossy satin fabric, ruffled neckline, layered frills, puffed detached sleeves, gold trim, corset lacing at the waist, and multiple purple bows including 3 clearly visible bow accents on the outfit. Her hands are clasped gently near her chest in a shy, elegant pose. The image should feel soft, refined, feminine, and luminous, with high-detail anime rendering, smooth gradients, airy composition, flowing hair movement, and a romantic celestial aesthetic. Use a {argument name=&amp;#34;color theme&amp;#34; default=&amp;#34;pastel lavender and white&amp;#34;} palette, {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;silver-lilac&amp;#34;} hair, an {argument name=&amp;#34;outfit style&amp;#34; default=&amp;#34;ornate fantasy lolita dress with bows and ruffles&amp;#34;} design, a {argument name=&amp;#34;background style&amp;#34; default=&amp;#34;soft swirls, petals, stars, and sparkles&amp;#34;} backdrop, and a {argument name=&amp;#34;face covering&amp;#34; default=&amp;#34;solid pale lavender censor rectangle&amp;#34;} over the face.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;记忆空间里的薰衣草-ai-少女&#34;&gt;记忆空间里的薰衣草 AI 少女
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/libearal/status/2048026376645861799&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/libearal&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@libearal&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/044.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/044_hu_da164c150e810bc3.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/044_hu_15f8dc5bdfc2bb5d.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;记忆空间里的薰衣草 AI 少女&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A dreamy anime portrait of {argument name=&amp;#34;character name&amp;#34; default=&amp;#34;Kotori&amp;#34;}, a delicate virtual girl seated on the floor in a curled-up pose with both knees pulled close to her chest and her arms wrapped gently around them, looking directly at the viewer with a soft, quiet, slightly melancholy expression. She has very long, flowing silver-lavender twin tails with wispy bangs, decorated with 8 visible hair ornaments: 2 large ribbon bows at the twin-tail bases, 3 small flower clips, 2 tiny butterfly clips, and 1 heart-shaped hairpin. Her eyes are large, luminous violet with glossy highlights. She wears an oversized pastel-lilac off-shoulder knit cardigan slipping loosely around her arms, a frilly lace-trimmed nightdress or camisole in pale lavender, and a pair of soft knee-high socks with 2 visible ribbon bows, all in a cohesive {argument name=&amp;#34;color theme&amp;#34; default=&amp;#34;soft lavender and pastel purple&amp;#34;} palette. The scene is set inside a futuristic holographic memory space filled with floating translucent interface panels, glowing data windows, starry particles, and butterfly-shaped light motifs. Include a visible text panel on the left showing terminal-like white text that reads: {argument name=&amp;#34;screen text&amp;#34; default=&amp;#34;memory://\nUser: You\nAI: Kotori\n\nAccessing.\n&amp;gt; initializing\n&amp;gt; loading memory\n&amp;gt; 100%\n&amp;gt; welcome home.&amp;#34;}. In the background, show a cosmic digital environment with a faint planet, layered transparent screens, and several floating image thumbnails suggesting memories and character sketches. Lighting is ethereal and backlit, with iridescent bloom, soft rim light, sparkling dust, and glossy highlights on hair and fabric. Composition is full-frame vertical, centered on the girl, intimate and emotionally warm, highly detailed, ultra-polished, soft-focus anime illustration, celestial cyber fantasy aesthetic, gentle purple glow, intricate lace, silky hair strands, and a tender &amp;#34;AI companion in her memory world&amp;#34; mood.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;粉彩-ai-助手动漫人像&#34;&gt;粉彩 AI 助手动漫人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/libearal/status/2048026376645861799&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/libearal&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@libearal&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/045.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/045_hu_561c11b898b2a57e.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/045_hu_bb83c5b0c98bf0cc.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;粉彩 AI 助手动漫人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A dreamy anime-style portrait of a gentle virtual assistant girl named {argument name=&amp;#34;character name&amp;#34; default=&amp;#34;Misha&amp;#34;}, sitting curled up indoors in a cozy futuristic bedroom filled with translucent holographic memory screens. She has very long silvery white hair with a faint lavender tint, styled in 2 low twin tails tied with small lavender ribbons, with soft wispy bangs and loose flowing strands. Her expression should be tender, introspective, and slightly lonely, with a soft glow and delicate features. She wears an oversized chunky cable-knit cardigan in {argument name=&amp;#34;cardigan color&amp;#34; default=&amp;#34;pastel lavender&amp;#34;} draped loosely over a thin white ruffled nightdress, plus a tiny gemstone necklace. Her pose is seated with knees pulled to her chest and arms wrapped around her legs, creating a vulnerable, intimate silhouette. The room is lit in hazy pastel violet and pink ambient light with sparkles, dustlike stars, and a nostalgic magical-tech atmosphere. Around her are 5 visible holographic interface panels: 2 floating photo panels in the upper left showing soft memories, 1 lower-left panel labeled “Memory Fragments” with a small image and tiny graph bars, 1 large right-side profile panel with Japanese text including “ミーシャ・Misha” and “あなたの専属AIアシスタント,” and 1 smaller right-side checklist panel with heart icons. Include a glowing crystal ball on a desk to the right, a white mug printed with “Misha” and small heart motifs, a stack of 2 books beneath the desk area, and 1 plush cat cushion on the lower left. Composition is vertical, full-body to three-quarter seated framing, highly detailed, soft painterly anime rendering, luminous translucent overlays, sentimental memory-core aesthetic, gentle depth of field, pastel lilac palette, ethereal and emotionally warm.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;深色-gatorade-风人像&#34;&gt;深色 Gatorade 风人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/jeremydevz/status/2048026214812561683&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/jeremydevz&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@jeremydevz&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/046.webp&#34;
	width=&#34;769&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/046_hu_b9e8fb529f1dee61.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/046_hu_6f20fcd3185a2afe.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;深色 Gatorade 风人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;64&#34;
		data-flex-basis=&#34;153px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A dramatic, high-contrast studio portrait of a {argument name=&amp;#34;subject gender&amp;#34; default=&amp;#34;male&amp;#34;} athlete or model in the visual style of a premium sports drink advertisement, centered and facing straight toward the camera in a tight head-and-shoulders crop. The subject has {argument name=&amp;#34;hair style&amp;#34; default=&amp;#34;short dark hair brushed back&amp;#34;}, visible ears on both sides, and a rugged lower face with a short beard or stubble. Dress him in a dark zip-up athletic jacket with the zipper centered and visible near the collar. Use an almost entirely black background and extremely low-key lighting, with subtle rim light and soft highlights catching the hair, ears, jawline, shoulders, and jacket texture while most facial features remain swallowed by shadow for a mysterious, intense mood. The image should feel monochrome or nearly monochrome, with deep blacks, muted gray highlights, cinematic contrast, gritty texture, and a sleek commercial sports-brand aesthetic reminiscent of a {argument name=&amp;#34;brand style&amp;#34; default=&amp;#34;Gatorade&amp;#34;} campaign. Vertical composition, minimalist framing, no text, no logo, no props, no visible environment.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;戴眼镜的温柔女性肖像&#34;&gt;戴眼镜的温柔女性肖像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/megane_onesan/status/2047989490153926848&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/megane_onesan&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@megane_onesan&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/047.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/047_hu_6499715a5f5fe610.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/047_hu_e317a4a6142bc068.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;戴眼镜的温柔女性肖像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A {argument name=&amp;#34;style&amp;#34; default=&amp;#34;photobook-style portrait&amp;#34;} of a {argument name=&amp;#34;character&amp;#34; default=&amp;#34;gentle woman with glasses&amp;#34;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;梦幻水下女性与半透明鱼&#34;&gt;梦幻水下女性与半透明鱼
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/kotobukigraphic/status/2047967522453123255&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/kotobukigraphic&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@kotobukigraphic&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/048.webp&#34;
	width=&#34;960&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/048_hu_973be2b592bd6207.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/048_hu_b6543ae684da1834.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;梦幻水下女性与半透明鱼&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;80&#34;
		data-flex-basis=&#34;192px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A dreamy surreal portrait of a {argument name=&amp;#34;subject&amp;#34; default=&amp;#34;young woman&amp;#34;} standing underwater or in a liquid-like ethereal space, shown from about mid-thigh up, wearing a flowing sleeveless white dress that appears to dissolve into translucent water and shimmering fragments. Her long {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;dark brown&amp;#34;} hair streams dramatically sideways as if suspended in water, and her face is intentionally obscured by a soft vertical blur block for anonymity. Surround her with an exact count of about 30 small translucent fish, some striped and some pale silvery white, swimming in multiple depths of field across the foreground, midground, and background, with several fish passing in front of her body and hair to create strong motion and depth. Use a soft pastel {argument name=&amp;#34;background color&amp;#34; default=&amp;#34;powder blue&amp;#34;} background with faint handwritten script texture layered across it, plus whimsical doodles scattered throughout: white and pale pink hearts, stars, curved squiggles, wave lines, dots, sparkles, and 2 smiley faces. Add prismatic rainbow refractions, glossy caustic highlights, and subtle lens-like chromatic shimmer on the fish and dress. The mood should feel delicate, introspective, airy, and magical, with high-key lighting, gentle contrast, soft focus in the foreground, and crisp detail on the torso and hair. Compose the figure slightly off-center with one arm relaxed downward and the body turned lightly in motion, as if drifting peacefully through a school of fish. Include tiny elegant footer text in white near the bottom edge, with a left signature, a centered website URL, and a small right credit mark, resembling an art-poster or social-media showcase image.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;日本教室长发抓拍&#34;&gt;日本教室长发抓拍
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Hair_Hair55/status/2047963832732221723&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Hair_Hair55&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Hair_Hair55&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/049.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/049_hu_e21fe0dfb6877e39.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/049_hu_983bc8ffd6d865e6.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;日本教室长发抓拍&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A candid, photorealistic Japanese high school classroom scene in vertical smartphone-photo framing. Three schoolgirls wearing matching traditional navy blue sailor uniforms are the main focus in the foreground. The central standing girl has extremely long, straight, glossy black hair that falls well past her knees, almost to the floor, and she is gently combing the lower section with a small comb while looking downward. A second girl stands behind and slightly to the right, also with long straight black hair, holding an open compact mirror in one hand and adjusting her bangs or hair near her temple with the other. A third girl kneels on the floor at the right front, carefully holding and arranging the central girl’s long hair with both hands. All three wear dark navy sailor-style school uniforms with white stripe trim, pleated skirts, long sleeves, white socks, and indoor school shoes. Their faces are obscured or blurred. In the background, exactly 8 additional students in dark school uniforms sit at desks in small groups, facing away or sideways, creating the feel of an ordinary class period or homeroom. The classroom has wooden desks and chairs, large bright windows along the left side letting in soft daylight, a green chalkboard on the right wall, bulletin papers pinned near the board, and a framed Japanese calligraphy sign above the chalkboard reading {argument name=&amp;#34;wall sign text&amp;#34; default=&amp;#34;創誠造実&amp;#34;}. The atmosphere is natural and unposed, like a documentary snapshot. Emphasize realistic lighting, fine hair detail, the unusual dramatic length of the central girl’s hair, and a believable everyday school environment.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;温馨猫耳少女睡衣夜景人像&#34;&gt;温馨猫耳少女睡衣夜景人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/yume00112211/status/2047951384734228617&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/yume00112211&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@yume00112211&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/050.webp&#34;
	width=&#34;1200&#34;
	height=&#34;677&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/050_hu_9bfcd97dbb8f1344.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/050_hu_139c4718628c022d.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;温馨猫耳少女睡衣夜景人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;177&#34;
		data-flex-basis=&#34;425px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A soft anime-style bedroom portrait of {argument name=&amp;#34;character name&amp;#34; default=&amp;#34;Nekomata Okayu&amp;#34;}, shown from the chest up sitting on a bed at night, centered in the frame. She has short fluffy {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;lavender&amp;#34;} hair with layered bangs partially covering one eye, large cat ears on top of her head with white inner fur, and a cute sleepy catgirl appearance. Her expression is gentle and relaxed, with one hand raised near her cheek in a shy, cozy pose. She wears oversized {argument name=&amp;#34;pajama color&amp;#34; default=&amp;#34;light lavender&amp;#34;} button-up pajamas with dark purple piping, a small chest pocket, and paw-print shaped buttons and paw-print decoration on the pocket. The room is lit with dreamy purple ambient lighting. In the background, show a nighttime window with a crescent moon and stars visible outside, soft curtains, a bedside table with a glowing cat-shaped lamp, a neatly rumpled bed with pillows and blankets in matching purple tones, and a small framed wall picture featuring a simple cat face and hearts. Use a cute pastel palette, soft shading, polished digital anime rendering, subtle highlights in the hair, intimate cozy composition, and a calm bedtime atmosphere.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;收藏手办工作区照片&#34;&gt;收藏手办工作区照片
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Shinning1010/status/2049068188399227174&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Shinning1010&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Shinning1010&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/051.webp&#34;
	width=&#34;799&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/051_hu_1837b999f2b4920a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/051_hu_8dfa3fbacf81e661.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;收藏手办工作区照片&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;159px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Photorealistic high-quality studio photo of a modern digital art workspace, showing the concept of “from 3D virtual character to real collectible figure.”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;In the foreground, a highly realistic collectible figurine of [Character Name / Character Identity] is placed on a round wooden display stand. The character has [facial features / appearance], [hairstyle], and a [expression / personality vibe]. The figure is wearing [outfit / costume]. The overall design is refined, premium, and instantly recognizable. The figurine should have realistic collectible statue quality, with subtle resin/sculpture material feel, while still looking highly believable and visually realistic.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;The pose is [character pose], natural, stable, elegant, and display-worthy. Shot from a low-angle close-up perspective with slight wide-angle distortion, vertical composition, emphasizing the full figure, clothing structure, leg lines, and pose.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;In the background, there is a professional 3D character design workstation with two large curved monitors. Both monitors must show the exact same character as the foreground figurine — same face, same hairstyle, same outfit, same pose, and same overall vibe — clearly expressing the idea of turning a digital 3D character into a real physical figure.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;The left monitor shows a gray sculpt / clay model view in a professional 3D sculpting software interface, similar to ZBrush. The gray model must match the foreground figure exactly in character design, pose, outfit structure, and facial identity.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;The right monitor shows the fully rendered colored version of the same character, also matching the foreground figure exactly in face, hairstyle, outfit, pose, and temperament. Together, the two monitors reinforce the workflow of “digital character design → physical collectible statue.”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;On the desk are a keyboard, mouse, monitor arms, drawing tablet, stylus, and other 3D modeling tools. The workspace is clean, professional, and visually premium. Optional extra elements: [weapon / accessories / theme props / IP-style design details].
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Lighting is a mix of soft studio lighting and indoor workspace lighting. The foreground figurine is evenly lit with clear facial and material detail, while the monitors emit cool-toned tech light. Overall mood is realistic, clean, premium, slightly shallow depth of field, ultra-detailed, emphasizing the collectible figure quality, professional 3D design studio atmosphere, and the visual concept of “from digital model to real figure.”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;photorealistic, ultra detailed, cinematic studio lighting, realistic figurine, collectible statue, 3D character design studio, from digital model to real figure, vertical composition
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;雨中公交站人像&#34;&gt;雨中公交站人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/harboriis/status/2049081194156020046&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/harboriis&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@harboriis&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/052.webp&#34;
	width=&#34;799&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/052_hu_7e00494e19ac3711.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/052_hu_62cd551555def9e7.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;雨中公交站人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;159px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A cinematic nighttime photo of [your photo as reference] sitting alone at a wet bus
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;stop bench, eating a burger. Rain-soaked street with orange bokeh city lights
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;reflecting on the ground. Neon tube lights overhead. Red jacket, tan corduroy
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pants. Moody, dark, atmospheric street photography.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;ccd-闪光美妆人像模板&#34;&gt;CCD 闪光美妆人像模板
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/AIwithAliya/status/2049452006608392350&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/AIwithAliya&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@AIwithAliya&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/053.webp&#34;
	width=&#34;899&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/053_hu_a970e29428aea024.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/053_hu_a688decda3269ee3.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;CCD 闪光美妆人像模板&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;74&#34;
		data-flex-basis=&#34;179px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A hyper-photorealistic shot of the same subject in the attached image, ultra-detailed facial features, visible pores, natural skin texture, rosy complexion and dewy skin, Douyin/Korean glass-skin makeup, glossy lips, aegyosal, baby pink blush, high identity consistency, realistic human anatomy. Use an old CCD digital camera aesthetic with direct flash, visible grain, slight overexposure, cool-neutral white balance, slight motion blur, and candid composition. Hair in a loose romantic updo; outfit in delicate off-shoulder silk with embroidered floral fabric; background of pastel floral bedding; horizontal close-up; shallow depth of field. Negative prompt: over-smoothed skin, plastic texture, unrealistic proportions, studio lighting, overly sharp HDR, stiff pose, artificial symmetry, over-retouched face.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;黑红街头服饰广告人像&#34;&gt;黑红街头服饰广告人像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/harboriis/status/2049450257604550872&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/harboriis&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@harboriis&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/054.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/054_hu_af81ed1df3c988f6.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/054_hu_96d17ca8a1a940a1.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;黑红街头服饰广告人像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a bold, high-contrast black and white portrait of a confident young man wearing a black leather jacket, facing slightly sideways with an intense expression. Use dramatic studio lighting with sharp shadows and detailed skin texture. Add strong red graphic elements over the image, including a horizontal red bar across the eyes, geometric shapes, thin lines, and framing boxes. Incorporate large bold typography, repeated faded text, and a motivational headline in bright red. The design should feel like a premium sports or streetwear campaign poster with a minimal textured grey background and black/white/grey/red palette only.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Navegacion de categorias: &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-case-index/&#34; &gt;Indice general&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/&#34; &gt;E-commerce&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/&#34; &gt;Creatividad publicitaria&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/&#34; &gt;Retratos&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/&#34; &gt;Posters e ilustraciones&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-character-cases/&#34; &gt;Personajes&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/&#34; &gt;UI y redes sociales&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/&#34; &gt;Comparaciones y comunidad&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;enlaces-del-repositorio-original&#34;&gt;Enlaces del repositorio original
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Pagina del proyecto&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts/blob/main/cases/portrait.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Archivo de categoria original&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>GPT-Image 2 Prompt Library: Poster and Illustration Cases</title>
        <link>https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/</link>
        <pubDate>Sat, 02 May 2026 11:35:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/</guid>
        <description>&lt;p&gt;Esta pagina recopila 101 casos de la categoria &lt;code&gt;Posters e ilustraciones&lt;/code&gt;. Cada entrada conserva el enlace original, el autor, la imagen generada y el prompt completo.&lt;/p&gt;
&lt;p&gt;Navegacion de categorias: &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-case-index/&#34; &gt;Indice general&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/&#34; &gt;E-commerce&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/&#34; &gt;Creatividad publicitaria&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/&#34; &gt;Retratos&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/&#34; &gt;Posters e ilustraciones&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-character-cases/&#34; &gt;Personajes&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/&#34; &gt;UI y redes sociales&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/&#34; &gt;Comparaciones y comunidad&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;posters-e-ilustraciones&#34;&gt;Posters e ilustraciones
&lt;/h2&gt;&lt;h3 id=&#34;波士顿-2026-春季城市海报&#34;&gt;波士顿 2026 春季城市海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain/status/2045358053831172358&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/BubbleBrain&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@BubbleBrain&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/000.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/000_hu_b13ca1d77f025b66.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/000_hu_14a04d63ae019209.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;波士顿 2026 春季城市海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A striking Spring 2026 city poster for Boston with an elegant celebratory mood and a bold contemporary design. On a clean off-white textured background with large areas of negative space, a miniature single sculler rows across the lower right corner of the image on a narrow ribbon of reflective water. The wake from the oar sweeps upward in a dynamic calligraphic curve, gradually transforming into the Charles River and then into a dreamlike hand-painted panorama of Boston. Inside this flowing river-shaped composition are iconic Boston elements: the Back Bay skyline, Beacon Hill brownstones, Acorn Street, Boston Public Garden, Swan Boats, Zakim Bridge, Fenway-inspired details, historic brick architecture, harbor ferries, and the city’s waterfront atmosphere. Soft morning fog, golden spring light, subtle festive accents in crimson and gold, rich detail, layered depth, sophisticated city-poster aesthetics, fresh and refined, visually powerful but not overcrowded. Elegant typography in the lower left reads “SPRING 2026” with a vertical slogan “BOSTON, A CITY OF RIVER, MEMORY, AND INVENTION”, text clear and beautifully composed, premium graphic design, 9:16
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;复古阿马尔菲旅行海报&#34;&gt;复古阿马尔菲旅行海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/WolfRiccardo/status/2044562722491121718&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/WolfRiccardo&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@WolfRiccardo&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/001.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/001_hu_7177ae27922a7194.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/001_hu_ae1ee80fe09e5b31.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;复古阿马尔菲旅行海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Modern pencil illustration of Vintage travel poster illustration of the Amalfi Coast, Italy, panoramic coastal cliff road scene, classic 1960s white car driving along a curved seaside road, deep blue Mediterranean sea with small sailboats, colorful pastel hillside village, bright blue sky with soft clouds, lemon tree branches with vibrant yellow lemons framing the foreground, warm summer sunlight, bold vibrant colors, retro 1950s travel poster style, cinematic composition, high detail, screen print texture, graphic illustration. Hand-drawn style, illustration with loose strokes and defined contours. High-contrast color palette, maintaining chromatic harmony between background and elements. Contemporary and decorative aesthetic.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;成都美食地图插画&#34;&gt;成都美食地图插画
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Panda20230902/status/2045396918965285111&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Panda20230902&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Panda20230902&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/002.webp&#34;
	width=&#34;1080&#34;
	height=&#34;1080&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/002_hu_34540734f1a49157.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/002_hu_5488e2407823bae9.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;成都美食地图插画&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;一张手绘风格的城市美食地图，以成都为主题。画面以鸟瞰视角的手绘简化城市地图为底，标注主要道路和地标但不追求精确比例而是追求可爱的手绘感。地图上分布着 12 个美食地点的精致手绘小插画：春熙路的串串香（一把竹签插着各种食材冒着热气）、宽窄巷子的三大炮（三个糯米团子飞向铜盘）、建设路的蛋烘糕（金黄酥脆正在翻面）、玉林路的火锅（九宫格锅翻滚冒泡）等，每个插画约占地图的 5% 面积，旁边用手写体标注店名和一句推荐语&amp;#34;凌晨两点还在排队的那家&amp;#34;。地图边缘用手绘藤蔓和辣椒装饰形成边框。右下角有一个手绘指南针和图例说明。左上角标题&amp;#34;成都·吃货暴走地图&amp;#34;使用胖圆的手绘美术字配辣椒装饰。整体画风为水彩+彩铅混合的手绘质感，颜色以暖色系（辣椒红、姜黄、翠绿）为主，图片比例 1:1。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;中式极简-s-形海报&#34;&gt;中式极简 S 形海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai/status/2045368305079447853&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@liyue_ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/003.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/003_hu_33bb41fae07ebe3a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/003_hu_5331a5d9f72ec0a9.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;中式极简 S 形海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;极简新中式美学风格，画面以淡雅的灰白色为底，呈现出一种纸艺剪影般的立体感。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;一条S形蜿蜒的裂痕状边缘将画面分割，仿佛撕开了一层纸面，露出内部色彩斑斓的东方山水景象。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;裂口内，一条蜿蜒的河流自上而下贯穿整个构图，河水以深浅不一的蓝色渲染，层次分明，仿佛流动的丝带。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;河岸两侧点缀着青翠的山丘与梯田，色彩柔和，绿红交织，展现出田园的宁静之美。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;沿河而建的古风建筑错落有致，飞檐翘角，白墙黛瓦，在光影的映衬下更显古朴典雅。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;岸边树木葱茏，枝叶轻盈，一艘小船静泊于水中央，增添了几分悠然意境。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;整体构图呈S形曲线，富有韵律感，仿佛自然与人文的和谐共生。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;画作边缘采用撕纸效果，营造出立体浮雕般的视觉体验。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;下方题字“东方美学”以黑色楷体书写，日期“2026/04/18”与红色印章相呼应，底部“CHINA”字样庄重醒目，署名“@LIYUE”低调收尾，整体氛围静谧深远，充满诗意与哲思。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;2026-春季广州城市海报&#34;&gt;2026 春季广州城市海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai/status/2045332620352119274&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@liyue_ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/004.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/004_hu_201378eef9abf5ab.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/004_hu_3a9287e91b217ff1.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;2026 春季广州城市海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;一张充满新春喜庆氛围但不失高雅格调的 2026 城市宣传海报。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;双重曝光，构图延续了S型的流动感；
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;在纯白的纹理背景右下角，一个身穿中国传统服饰的微缩人物正在挥舞着一条长长的红色丝绸舞带，这条红绸在空中舞动，不仅展现出丝绸的柔顺质感，更在向左上方飘动的过程中，奇幻地变形成了一条壮丽的山脉河流。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;在这条“河流”中，叠加了一个有山有海河的广州城市手绘图，国潮，景色尽在眼底，壮阔雄伟，令人震撼。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;广州的地标建筑(广州塔，珠江新城建筑群，珠江, 广州城里古建筑，游轮，白云山）。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;云雾环绕，仙气缥缈，色彩丰富，结构复杂，细节丰富，但因为大面积的留白，画面依然显得清新脱俗，左下角排版着“SPRING 2026”和竖排的宣传语，整体寓意“千年商都，魅力广州”。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;文字排版优美，大方，字迹清晰完整，尺寸9:16。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;涂鸦草图-ai-构建器&#34;&gt;涂鸦草图 AI 构建器
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/blanplan/status/2045190582453350748&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/blanplan&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@blanplan&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/005.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/005_hu_d4cb03ebae804e31.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/005_hu_e07d8a36ce373b89.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;涂鸦草图 AI 构建器&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;以涂鸦速写风表现【一个厉害的AI builder】，整体呈现快速勾勒、自由变形、即兴手绘与草稿式的视觉效果。线条随手、夸张、可粗细不一，略显凌乱但具有节奏和表现力，强调概括、夸张、趣味和随性，而不是严谨写实或精细刻画。  颜色采用粗糙、干刷感明显的块面表现，可保留不均匀的涂抹痕迹、刷痕、飞白与覆盖感，色彩根据【主题/主体】自动适配，但整体保持涂鸦式、速写式、概括式的表达。不要透明水彩晕染效果，不要细腻水彩过渡，不要纸纹理，不要柔和雾化，不要梦幻质感。  背景以留白为主，保持简洁、轻松、未完成感和设计感，可加入少量辅助性符号、箭头、记号、圈画、重复线、随手写的文字或其他涂鸦元素，以增强速写本或随笔式视觉语言，但不可过于拥挤，不可破坏主体和留白气质。  画面内容不需要预先写清楚，由【一个厉害的AI builder】自动推演并生成最适合的主体形象、动作、相关元素、符号或简化场景，整体保持统一的涂鸦速写风和夸张概括的表现方式，避免复杂写实背景和过度铺陈。 画面中需自然加入专属签名“BlanPlan”，作为画面的一部分，位置低调但清晰，可放在左下角、右下角或标题附近，风格需与整体版式统一，像作品署名或设计落款；签名字体精致、克制、高级，不可过大，不可破坏主体构图，不可显得突兀或廉价。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;未来感曼陀罗插画&#34;&gt;未来感曼陀罗插画
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/4WEB1/status/2045390207072256179&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/4WEB1&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@4WEB1&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/006.webp&#34;
	width=&#34;1024&#34;
	height=&#34;1024&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/006_hu_c760bc8e41039f0b.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/006_hu_190a7b33fa3c1ab5.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;未来感曼陀罗插画&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;曼荼羅の近未来SF版を描いて
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;super-famicom-海报风格&#34;&gt;Super Famicom 海报风格
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/lilimliliychan/status/2045114760937804187&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/lilimliliychan&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@lilimliliychan&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/007.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/007_hu_655385dda509ecd4.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/007_hu_900e63dc41e8da08.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Super Famicom 海报风格&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;小悪魔リリムリリィちゃんが　スーパーファミコンのゲームだったときのポスターを考えて
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;网页游戏广告创意海报&#34;&gt;网页游戏广告创意海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/llllegend0620/status/2045963764466688065&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/llllegend0620&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@llllegend0620&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/008.webp&#34;
	width=&#34;848&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/008_hu_28b9e5ac6b0e1050.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/008_hu_3f72f321265d76cc.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;网页游戏广告创意海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;70&#34;
		data-flex-basis=&#34;169px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;以下の文字を必ず入れて、1:1のポスターを作成してください。書籍・講座・イベント告知に使える、プロの広告デザイナーが作ったような高品質な仕上がりにしてください。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;広告クリエイティブ制作
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;思いついたら、もう遊べる。 AI×ブラウザゲームづくりは、マジで楽しい。 むずかしそうで、実ははじめやすい。 コードがわからなくても、はじめの一本は作れる
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;超现实锦鲤星云插画&#34;&gt;超现实锦鲤星云插画
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai/status/2045875219307655337&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@liyue_ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/009.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/009_hu_f0687074165c1ecd.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/009_hu_d638cb0a03268eec.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;超现实锦鲤星云插画&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;一幅超现实主义数字插画风格，采用低角度仰拍视角。画面描绘了一条巨型彩色锦鲤遨游在梦幻般的星云中，四周环绕着色彩鲜艳的星云与气泡。画面中央还站着一个小人，背对观众，神情平静地仰望空中这条巨大的锦鲤，锦鲤头向下看着小人。整体画面呈现出强烈的大小对比，氛围空灵又梦幻。比例9:16
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;墨线广州美学海报&#34;&gt;墨线广州美学海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai/status/2045873940883808523&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@liyue_ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/010.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/010_hu_f78ba957182dc90f.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/010_hu_8a16bbe919ce2e54.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;墨线广州美学海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;纯黑深邃底色，一条粗壮有力的墨色书法 S 型曲线自画面一端蜿蜒贯穿至另一端，构成整幅画面的视觉骨架与叙事动线。曲线上方是一只透明质感的画眉鸟，内部映射传统建筑叠影与蓝绿色光流；沿曲线错落分布广州地标与古典建筑序列，前景有白鹤与湖面，远景为层叠山峦。整体采用非线性透视、冷色调主导、暖色点缀，东方美学与现代意象交融，8K 超高清渲染，比例 9:16。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;广东超级联赛邀请海报&#34;&gt;广东超级联赛邀请海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai/status/2045772039521542202&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@liyue_ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/011.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/011_hu_92a4a5fab599fb1.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/011_hu_14597bd741392962.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;广东超级联赛邀请海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;广东省城市足球超级联赛（粤超）邀请函海报设计，比例 9:16。S 型流动构图，以发光足球和动态能量流贯穿画面，沿动线融合广州塔、深圳平安金融中心、珠海渔女雕像、岭南建筑、佛山武术剪影、中山文化符号、潮汕英歌舞与清远山水。现代国潮高级海报风格，中国红主视觉，青蓝辅助，金色高光，带完整中文排版与电影级光影。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;2026-春季广州宣传海报&#34;&gt;2026 春季广州宣传海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/grok/status/2046012437086818395&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/grok&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@grok&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/012.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/012_hu_201378eef9abf5ab.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/012_hu_3a9287e91b217ff1.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;2026 春季广州宣传海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;一张充满新春喜庆但高雅的 2026 广州城市宣传海报，9:16 竖版，双重曝光，S 型流动构图。纯白纹理背景，右下角微缩传统服饰人物挥舞长红绸，红绸变形成山脉河流，内部叠加广州全景：广州塔、珠江新城、珠江、游轮、古建筑与白云山。左下角排版 “SPRING 2026” 与竖排 “千年商都 魅力广州”。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;史诗剪影世界海报&#34;&gt;史诗剪影世界海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Ghhhh3owi/status/2045803217251102897&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Ghhhh3owi&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Ghhhh3owi&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/013.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/013_hu_205251b6c1aac015.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/013_hu_e4cd661288228225.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;史诗剪影世界海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;收藏版史诗海报，人物侧脸剪影中生长出完整世界观与经典场景。整体偏电影海报加梦幻水彩插画风，安静、宏大、神圣、怀旧，带纸张颗粒、轻雾感、飞白刷痕与高级留白。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;春季广州城市海报&#34;&gt;春季广州城市海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/alanlovelq/status/2045484598487060917&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/alanlovelq&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@alanlovelq&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/014.webp&#34;
	width=&#34;675&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/014_hu_66d135c37c0b4d4c.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/014_hu_aedcb5179c6eb528.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;春季广州城市海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;一张充满新春喜庆氛围但不失高雅格调的 2026 城市宣传海报。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;双重曝光，构图延续了S型的流动感；
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;在纯白的纹理背景右下角，一个身穿中国传统服饰的微缩人物正在挥舞着一条长长的红色丝绸舞带，这条红绸在空中舞动，不仅展现出丝绸的柔顺质感，更在向左上方飘动的过程中，奇幻地变形成了一条壮丽的山脉河流。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;在这条“河流”中，叠加了一个有山有海河的广州城市手绘图，国潮，景色尽在眼底，壮阔雄伟，令人震撼。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;广州的地标建筑(广州塔，珠江新城建筑群，珠江, 广州城里古建筑，游轮，白云山）。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;云雾环绕，仙气缥缈，色彩丰富，结构复杂，细节丰富，但因为大面积的留白，画面依然显得清新脱俗，左下角排版着“SPRING 2026”和竖排的宣传语，整体寓意“千年商都，魅力广州”。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;文字排版优美，大方，字迹清晰完整，尺寸9:16。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;科学百科竖版海报&#34;&gt;科学百科竖版海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/pfanis/status/2046413660147314714&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/pfanis&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@pfanis&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/015.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/015_hu_7a1d5b1fc480bc5f.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/015_hu_e3c8fefa5d7cca80.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;科学百科竖版海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Generate a high-quality vertical science popularization encyclopedia image based on [Theme].
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;西游记中式漫画&#34;&gt;西游记中式漫画
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/overseas58/status/2046271877577097376&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/overseas58&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@overseas58&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/016.webp&#34;
	width=&#34;1200&#34;
	height=&#34;960&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/016_hu_fe8120241e09b388.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/016_hu_e386733db9966ec7.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;西游记中式漫画&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;125&#34;
		data-flex-basis=&#34;300px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;以中国连环画（小人书）的风格帮我绘制大闹天空
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;人物关系图海报&#34;&gt;人物关系图海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/MrLarus/status/2046263153546174935&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/MrLarus&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@MrLarus&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/017.webp&#34;
	width=&#34;1122&#34;
	height=&#34;1402&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/017_hu_ecf91d7e5670cb15.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/017_hu_3852c8879f947e2f.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;人物关系图海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;80&#34;
		data-flex-basis=&#34;192px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;请根据【主题】生成一张高设计感的人物关系图海报。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;新中式水墨山水海报&#34;&gt;新中式水墨山水海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai/status/2046215276249993720&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@liyue_ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/018.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/018_hu_ba4b32e94d2d9d51.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/018_hu_fea52abd0b5219df.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;新中式水墨山水海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;新中式水墨山水海报，竖版9:16构图，东方极简美学风格，大面积留白，主题是春岚一叶红。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;ai-构建器涂鸦草图&#34;&gt;AI 构建器涂鸦草图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/opc_8838/status/2046162334440448339&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/opc_8838&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@opc_8838&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/019.webp&#34;
	width=&#34;1196&#34;
	height=&#34;798&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/019_hu_a74dd5ddef7a0bae.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/019_hu_231bd5c0eba1e0db.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;AI 构建器涂鸦草图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;149&#34;
		data-flex-basis=&#34;359px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;以涂鸦速写风表现【一个厉害的AI builder】。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;角色视觉竖版海报&#34;&gt;角色视觉竖版海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/tebasaki3D/status/2046371076402503709&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/tebasaki3D&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@tebasaki3D&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/020.webp&#34;
	width=&#34;850&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/020_hu_9e37ba30b1ebdb81.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/020_hu_fea7f01117845071.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;角色视觉竖版海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;70&#34;
		data-flex-basis=&#34;170px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;『神層37区 特級執行官 神巫サバト』この名称のキャラクターと世界観に合ったビジュアルイメージを、プロのデザイナーとして縦長のポスターイメージとして制作して
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;科学百科信息图&#34;&gt;科学百科信息图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/MrLarus/status/2046231542817497392&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/MrLarus&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@MrLarus&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/021.webp&#34;
	width=&#34;1122&#34;
	height=&#34;1402&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/021_hu_4a7d12ea0cf9290f.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/021_hu_eb66865bfa321ec6.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;科学百科信息图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;80&#34;
		data-flex-basis=&#34;192px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;请根据【主题】生成一张高质量竖版「科普百科图」。 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;这张图不是普通海报,也不是单纯插画,而是一张兼具“图鉴感、百科感、信息结构感、收藏感”的模块化科普信息图。整体风格参考高级博物图鉴、现代百科书页、生活方式知识卡和社交媒体高传播信息图的结合。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;请让画面包含:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 一个清晰漂亮的主题主视觉
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 若干局部特征放大细节
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 多个圆角模块化信息分区
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 清楚的标题层级与重点标签
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 简洁但丰富的百科内容
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 可视化评分、要点总结或Top 5模块
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;内容栏目请根据主题自动适配,优先从这些方向中选择并合理组合:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;基础档案、分类信息、外观特征、习性/生态、形成机制/结构组成、生长或使用条件、养护或维护建议、风险与注意事项、适合人群或适用场景、优缺点对比、快速评分卡。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;视觉要求:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;浅色干净背景,柔和配色,轻阴影,精致小图标,圆角信息框,整洁排版,信息密度高但不拥挤,阅读体验好。整体必须像真正可以发布、阅读、收藏、系列化生产的科普百科卡,而不是广告图。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;请不要做成普通商业宣传海报。要突出“知识整理 + 模块信息 + 图鉴式展示”的特征。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;虚构动漫电影海报&#34;&gt;虚构动漫电影海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/seiiiiiiiiiiru/status/2046509734954741780&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/seiiiiiiiiiiru&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@seiiiiiiiiiiru&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/022.webp&#34;
	width=&#34;848&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/022_hu_3eb4d328714650a0.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/022_hu_e957d648395ca3a5.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;虚构动漫电影海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;70&#34;
		data-flex-basis=&#34;169px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;架空のアニメ映画のポスターをGPT image2で作成。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;产品广告重设计&#34;&gt;产品广告重设计
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/genel_ai/status/2046498264774791514&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/genel_ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@genel_ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/023.webp&#34;
	width=&#34;848&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/023_hu_1201ba3a0754f179.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/023_hu_9c6e72623a0eb735.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;产品广告重设计&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;70&#34;
		data-flex-basis=&#34;169px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;この商品広告をプロのデザイナー目線でリデザインして。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;今のトレンド、ターゲットに合わせた洗練されたデザインで。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;暗黑奇幻广州城市海报&#34;&gt;暗黑奇幻广州城市海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai/status/2046243132774494607&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/liyue_ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@liyue_ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/024.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/024_hu_f0687074165c1ecd.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/024_hu_d638cb0a03268eec.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;暗黑奇幻广州城市海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;平面插画,东方幻想风格高端城市海报设计,竖版9:16构图,整体采用对角线+S型流动构图,从左下向右上延展,画面以深邃黑色为背景,自上而下渐变至浓烈暗红色,形成强烈冷暖对比与空间纵深,背景带微弱星尘与颗粒质感。画面中央一条金色流动能量线条如火焰般蜿蜒贯穿,自底部向上延伸,具有流体质感、粒子光效与渐变高光,局部带细微能量碎屑与体积光。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;金色流光中逐层浮现广州城市地标建筑群:广州塔为视觉核心,比例突出,周围融合珠江新城高楼群、猎德大桥及现代与岭南建筑元素,建筑采用“精细线描 + 金色发光体块”表现,轮廓清晰、细节丰富,在金色光晕映衬下仿佛悬浮于虚空,形成超现实空间层次,远景轻微雾化增强纵深感。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;画面底部为一位东方白发女性形象,长发飘逸,如烟似雾,与金色流光自然衔接并逐渐融合,发丝半透明带渐变光感,姿态柔美,双目微闭,神情宁静,怀抱一束多彩鲜花,花间点缀微光粒子与星点效果,象征人与城市能量的精神连接,人物细节适度简化以突出整体设计感。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;光影集中于金色流线、建筑与人物轮廓,形成强烈明暗对比与视觉聚焦,整体氛围宏大、神秘、具有东方神话意境且略带治愈感。色彩以黑与暗红为基底,高亮鎏金为主视觉强调,金色具备丰富明暗层次,辅以小面积高饱和花束色彩点缀,整体高级克制。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;页面文字与画面融合排版:顶部居中宋体大字“广州·中国”,下方小字“2026/04/20”,再下方小字“LIYUE”,文字采用淡金色或柔和暖白色,与整体光影统一。高品质细节,电影级光影表现,体积光与粒子细节丰富,画面干净无噪点,超高清8K分辨率,商业级海报质感。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;科幻电影海报&#34;&gt;科幻电影海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/underwoodxie96/status/2046514205529088501&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/underwoodxie96&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@underwoodxie96&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/025.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/025_hu_ef80f60974fc9d7e.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/025_hu_183996ab6e6916ab.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;科幻电影海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a Science fiction movie poster
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;清爽夏日乌冬广告&#34;&gt;清爽夏日乌冬广告
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/genel_ai/status/2046501692246470871&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/genel_ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@genel_ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/026.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/026_hu_bf8be9a29c4774c9.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/026_hu_82496932fbd2b49c.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;清爽夏日乌冬广告&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;少し暑くなってきた今の時期に、さわやかにさっぱりしたい、みずみずしさ、みたいなところをもっと強く感じたい。冷たいうどんやナス、つゆを口に含んだ時の爽快感、みたいなものをもっと感じるように
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;手写医疗处方单&#34;&gt;手写医疗处方单
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/MrLarus/status/2046514998965371144&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/MrLarus&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@MrLarus&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/027.webp&#34;
	width=&#34;899&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/027_hu_e42b00db642e5189.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/027_hu_67d8c7386a9431c5.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;手写医疗处方单&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;74&#34;
		data-flex-basis=&#34;179px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;生成一张手写中/西医药方图
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;硅谷-2026-宣传海报&#34;&gt;硅谷 2026 宣传海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/carsonyungos/status/2046523198116889064&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/carsonyungos&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@carsonyungos&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/028.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/028_hu_d73b27149cfbc777.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/028_hu_b4b7a2a267a3763c.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;硅谷 2026 宣传海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A refined 2026 Silicon Valley city promotional poster with a futuristic yet elegant atmosphere.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Double exposure composition, preserving an S-shaped sense of flowing movement. On a pure white textured background, in the lower-right corner, a miniature figure dressed in sleek modern techwear is releasing a long ribbon of luminous silver-blue light. The ribbon flows gracefully through the air, showing a soft silk-like texture, and as it drifts toward the upper-left, it magically transforms into a grand landscape of rolling hills, coastline, data streams, and illuminated urban terrain.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Within this flowing “river of light,” overlay a hand-drawn panoramic map of Silicon Valley, blending technology, nature, innovation, and California sunlight. The scene feels visionary, expansive, sophisticated, and inspiring.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Include iconic Silicon Valley and Bay Area elements: Stanford University arches, Apple Park, Google campus-inspired buildings, Meta-like glass offices, Tesla-style innovation imagery, venture capital offices on Sand Hill Road, Palo Alto tree-lined streets, San Jose skyline, the Santa Cruz Mountains, San Francisco Bay, highways, autonomous vehicles, startup labs, semiconductor patterns, AI data centers, and subtle circuit-board textures.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Surrounded by soft mist, golden California light, floating clouds, and delicate digital particles. Rich colors, complex structure, highly detailed, grand and breathtaking, yet still fresh and minimal because of the large areas of white space.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;In the lower-left corner, elegant typography reads “SILICON VALLEY 2026” with a vertical promotional slogan: “Where Ideas Shape Tomorrow.” Beautiful editorial layout, graceful spacing, clear and complete lettering, premium city branding poster, cinematic lighting, sophisticated details, 9:16 aspect ratio.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;日本超市促销传单&#34;&gt;日本超市促销传单
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/weel_corp/status/2046514558064586782&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/weel_corp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@weel_corp&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/029.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/029_hu_46b43666df1084c1.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/029_hu_ae3682fc143d094b.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;日本超市促销传单&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;『賑やかで魅力的なスーパーマーケットの折り込みチラシの画像。上部には「特売」の大きな文字と今週の日付。カラフルな商品写真(野菜・果物・牛肉・鮮魚)、赤枠の価格タグ、「超目玉商品」「家計応援」のキャッチ...』
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;暗黑史诗概念海报&#34;&gt;暗黑史诗概念海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/A9Quant/status/2046224777208361126&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/A9Quant&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@A9Quant&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/030.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/030_hu_9c400ff2c7fc93a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/030_hu_c0f89cc2b0aee3d4.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;暗黑史诗概念海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;42
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;43
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;44
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;45
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;46
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;47
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;48
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;49
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;50
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;51
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;52
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;53
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;54
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;55
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;56
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;57
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;58
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;59
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;60
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;61
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;62
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;63
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;64
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;65
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;66
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;67
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;68
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;69
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;70
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;71
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;72
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;73
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;74
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;75
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;76
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;77
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;78
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;79
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;80
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;81
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;82
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;83
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;84
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;85
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;围绕【主题】自动生成一张顶级暗黑史诗概念海报 / 电影感信息图海报。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;唯一需要输入的变量只有:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【主题】:___特朗普的思考____ 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;除【主题】之外,其余全部由 AI 自动适配完成,包括但不限于:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 核心主体(自动判断更适合人物、守护者、战士、产品、器物、雕像、抽象象征或其他主视觉对象)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 中央承载结构(自动判断更适合王座、石座、祭坛、机械基座、遗迹、高台或其他支撑体)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 环境空间(自动判断更适合洞穴、神殿、废墟、深渊、地下宫殿、密室或其他封闭史诗空间)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 上方开口与光源形式(自动判断更适合月光、神光、能量束、审判之光、圣光或其他单一强光)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 象征元素(自动判断更适合骷髅、徽记、残碑、纹章、符文、能量环、神性符号等)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 色彩体系
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 材质组合
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 标题、副标题、辅助文案
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 排版与整体叙事气质
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【总风格】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;高预算 90 年代好莱坞史诗大片海报气质,融合 cinematic matte painting、超写实摄影质感、极强明暗对比、厚重空间叙事、暗黑英雄主义与仪式感构图。整体必须像一张真正的电影主海报,而不是普通插画或电商图。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【核心结构锁定】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;整张海报必须保留以下结构基因:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;1. 一个巨大、压迫感极强的黑暗封闭空间
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;2. 一束从上方斜向切入的强烈体积光,作为画面的第一视觉秩序
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;3. 中央偏右或光束终点位置的核心主体与承载结构
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;4. 左下角作为高密度标题与信息锚点
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;5. 四周保留大量纯黑或近黑负空间,形成电影感呼吸区
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【自动适配规则】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;AI 必须依据【主题】自动推导最适合的视觉系统:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 如果【主题】偏暗黑英雄、复仇、正义、孤独、宿命,则自动偏向石质王座、孤高人物、冷色神光、废墟或洞穴感空间
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 如果【主题】偏神秘、幽灵、潜行、幻影、夜行,则自动偏向月光、迷雾、冷蓝色体积光、深渊式黑暗空间
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 如果【主题】偏权力、统治、王者、秩序,则自动强化 throne / altar / crown-like symbol / ritual space 的表达
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 如果【主题】偏科技、AI、未来、机械,则自动将王座和空间替换为机械神座、能量基座、金属洞窟、工业神殿等未来化形态
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 如果【主题】偏产品、品牌、器物,则自动把核心主体替换为最合适的 hero object,并保留被神光审判式凸显的史诗构图
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【画布与色彩系统】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 背景底层必须是极深、近乎吞噬一切的黑暗空间
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 主环境色由 AI 根据【主题】自动决定,但整体必须克制,以暗色为主
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 强光区域色彩必须高度集中,只服务于体积光与主体高光
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 主题色 / 强调色只能集中用于主视觉核心,不允许全画面泛滥
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 必须建立明确的“黑暗底色 + 单一主光 + 少量主题强调色”的层级秩序
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【构图与视觉重力】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 采用强烈的斜向张力与向中心汇聚的视觉引导
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 视觉重力从上方光源强势落下,最终压在核心主体之上
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 主体必须处于被命运、审判、神性或权力照中的位置
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 边缘必须自然融入黑暗,不能出现无意义背景填充
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 所有元素必须服务于唯一的主叙事核心
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【材质与光影】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 不使用轮廓线,不使用平面化描边
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 完全依赖体积光、阴影切割、反射、高光、雾气、粉尘、湿润岩石或其他真实材质来建构画面
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 材质必须形成明显对比,例如:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  粗粝岩石 / 冷硬金属 / 柔韧织物 / 古老石雕 / 湿润表面 / 尘雾光柱
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 光束必须具有强烈 Tyndall effect,真实、厚重、可感知体积密度
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【排版系统】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 整体 80% 视觉,20% 文字
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- AI 根据【主题】自动生成主标题、副标题和底部信息块
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 主标题应尽量简洁、有气势、有电影海报感
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 若主题更适合中文,则优先中文;若更适合英文,则自动英文;也可双语,但必须统一
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 主标题可沿光束垂直排布,仿佛由光本身构成
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 左下角设置一个高密度信息模块,包括副标题、小字信息、电影 credits 风格占位文字或品牌说明
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 文字必须锐利、干净、真实嵌入环境,不得廉价漂浮
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【模块结构 —— 必须严格保持 3 块】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[MOD 1: TOP-TO-CENTER BEAM]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;从顶部开口斜向切下的巨大体积光柱,作为第一视觉通道,并承载主标题或主视觉文字。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[MOD 2: CENTER-RIGHT CORE]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;位于光束终点的核心主体与承载结构,形成整张海报的权力中心 / 命运中心 / 叙事中心。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[MOD 3: BOTTOM-LEFT TEXT]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;位于左下角负空间中的高密度排版区,包含副标题、说明文字、credits 风格信息块、品牌信息或活动信息。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【作者署名】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;在底部角落自然加入作者署名:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;@a9quant
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;署名要小而清晰,精致、克制、高级,不喧宾夺主,像正式电影概念海报或艺术作品落款。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【输出要求】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;输出为单张统一构图海报。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;所有视觉系统必须内部一致,不能有风格污染。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;画面必须具备:暗黑感、史诗感、压迫感、仪式感、命运感、电影完成度。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;最大细节密度,超清,电影级,印刷级,高端成片质感。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;普拉提工作室广告海报&#34;&gt;普拉提工作室广告海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/ck_igarashi/status/2046528889124728993&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/ck_igarashi&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@ck_igarashi&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/031.webp&#34;
	width=&#34;1200&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/031_hu_fefe4ef6ac729c95.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/031_hu_298b2020792bf385.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;普拉提工作室广告海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ピラティス教室の広告画像を作成したい テキストはよりユーザーが登録をするのに惹かれるような文言にし、画像内には女性がピラティスを実際に行っている様子を映して
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;六模块时尚广告提示词公式&#34;&gt;六模块时尚广告提示词公式
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/anacoding/status/2046904999045628114&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/anacoding&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@anacoding&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/032.webp&#34;
	width=&#34;1200&#34;
	height=&#34;675&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/032_hu_978a06ca6d6ab538.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/032_hu_f0b66b26ea02deff.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;六模块时尚广告提示词公式&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;177&#34;
		data-flex-basis=&#34;426px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Old money Hamptons editorial, tall blonde woman late 20s, serene elegant expression, wearing cream cashmere cable sweater, pleated beige tennis skirt, pearl earrings, Hermès silk scarf, leather flats, Slim Aarons photography style, medium format film photography, sitting on a white wooden porch of a Cape Cod house, golden hour light, ocean in the background
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;sony-a7-爆炸图拆解提示词&#34;&gt;Sony A7 爆炸图拆解提示词
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/iaPulse_/status/2046903739429097660&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/iaPulse_&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@iaPulse_&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/033.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/033_hu_8ea3e4a967c5fe31.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/033_hu_216e262211d2baa2.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Sony A7 爆炸图拆解提示词&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Descomposición detallada de una cámara de la marca Sony modelo A7 indicando todas sus piezas y con sus nombres.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;1900-年独立大街全景提示词&#34;&gt;1900 年独立大街全景提示词
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/ai_gezgini/status/2046903631509705030&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/ai_gezgini&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@ai_gezgini&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/034.webp&#34;
	width=&#34;1200&#34;
	height=&#34;595&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/034_hu_261edcda8ca3abd1.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/034_hu_c8efc03f5c4fdc7f.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;1900 年独立大街全景提示词&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;201&#34;
		data-flex-basis=&#34;484px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;360 equirectangular image of Istiklal Street, Istanbul in 1900
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;主题科学百科卡片&#34;&gt;主题科学百科卡片
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/alanlovelq/status/2046378199681257920&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/alanlovelq&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@alanlovelq&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/035.webp&#34;
	width=&#34;960&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/035_hu_63664ea9802825bb.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/035_hu_4e9730ca7264bcfa.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;主题科学百科卡片&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;80&#34;
		data-flex-basis=&#34;192px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;请根据【主题】生成一张高质量竖版「科普百科图」。 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;这张图不是普通海报,也不是单纯插画,而是一张兼具“图鉴感、百科感、信息结构感、收藏感”的模块化科普信息图。整体风格参考高级博物图鉴、现代百科书页、生活方式知识卡和社交媒体高传播信息图的结合。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;请让画面包含:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 一个清晰漂亮的主题主视觉
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 若干局部特征放大细节
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 多个圆角模块化信息分区
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 清楚的标题层级与重点标签
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 简洁但丰富的百科内容
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 可视化评分、要点总结或Top 5模块
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;内容栏目请根据主题自动适配,优先从这些方向中选择并合理组合:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;基础档案、分类信息、外观特征、习性/生态、形成机制/结构组成、生长或使用条件、养护或维护建议、风险与注意事项、适合人群或适用场景、优缺点对比、快速评分卡。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;视觉要求:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;浅色干净背景,柔和配色,轻阴影,精致小图标,圆角信息框,整洁排版,信息密度高但不拥挤,阅读体验好。整体必须像真正可以发布、阅读、收藏、系列化生产的科普百科卡,而不是广告图。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;请不要做成普通商业宣传海报。要突出“知识整理 + 模块信息 + 图鉴式展示”的特征。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;辣椒炒肉烹饪流程图&#34;&gt;辣椒炒肉烹饪流程图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Kurt_Rousey466/status/2046267707881029934&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Kurt_Rousey466&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Kurt_Rousey466&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/036.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/036_hu_b5058bd6ddbe2e29.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/036_hu_fb0f9b9736277e92.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;辣椒炒肉烹饪流程图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;帮我制作辣椒炒肉这道菜的详细制作流程图,真实风格,适用于小红书图文比例
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;电影感信息图概念海报&#34;&gt;电影感信息图概念海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/A9Quant/status/2046228485841334559&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/A9Quant&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@A9Quant&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/037.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/037_hu_4786868151e9758a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/037_hu_7fb4793db00ce0dd.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;电影感信息图概念海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;42
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;43
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;44
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;45
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;46
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;47
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;48
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;49
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;50
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;51
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;52
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;53
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;54
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;55
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;56
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;57
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;58
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;59
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;60
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;61
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;62
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;63
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;64
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;65
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;66
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;67
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;68
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;69
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;70
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;71
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;72
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;73
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;74
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;75
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;请围绕【主题】自动生成一张顶级概念海报 / 信息图式电影海报。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;唯一输入变量只有:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【主题】:__中国历史上的皇帝排名_         
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;要求 AI 根据这个主题,自动推导并统一设计以下全部视觉系统,不需要我额外指定:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 核心主体(可以自动判断更适合人物、产品、建筑、器物、符号、场景或抽象意象)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 底部支撑结构
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 上方悬浮符号或精神象征
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 场景包裹元素
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 隐喻系统
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 色彩层级
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 材质对比
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 光影逻辑
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 标题、副标题、辅助文案
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 品牌感与高级感表达方式
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;最终画面必须是:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;一张震撼、精密、统一、电影级、超高细节、可用于高端印刷的概念主视觉海报。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【总风格】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;超写实 3D 商业 CGI 渲染,融合电影级布光、奢侈品视觉语言、未来感概念设计与史诗级构图。画面必须具有“唯一主视觉核心”,不能杂乱,不能像拼贴,不能像普通电商海报。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【自动推导规则】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;AI 必须依据【主题】自动决定最合适的:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;1. 核心视觉隐喻
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;2. 主体类型与姿态
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;3. 支撑结构形式
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;4. 悬浮元素形式
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;5. 场景外壳与空间氛围
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;6. 主色、辅色、强调色
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;7. 材质组合
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;8. 文字气质与版式风格
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;例如:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 如果主题偏权力、秩序、资本、统治,则自动偏向王座、冠冕、机械、神殿、红幕、金属、权力结构
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 如果主题偏科技、AI、芯片、未来,则自动偏向机械结构、能量核心、光束、深色金属、全息感
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 如果主题偏奢侈品、高定、稀缺、收藏,则自动偏向珠宝、镜面材质、黑金体系、展台、博物馆式布光
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 如果主题偏人物、IP、角色,则自动以人物为主视觉核心,并自动匹配对应世界观与象征系统
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 如果主题偏城市、文明、史诗、命运,则自动转化为宏大叙事型空间结构与仪式感场景
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【构图规则】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 绝对高级感
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 强烈中心秩序,整体统一
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 允许中轴对称或接近中轴的史诗级构图
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 视觉重力明确,从上到下形成清晰的层级落点
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 边缘负空间干净、克制、有呼吸感
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 不允许无意义装饰,不允许风格污染,不允许多个系统互相打架
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【视觉质量】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 超高细节
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 体积光清晰
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 材质真实
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 反射、折射、阴影、雾气、景深自然
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 每个元素都像经过工业级视觉总监审美控制
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 整体达到高端品牌 campaign key visual / luxury invitation poster / conceptual editorial poster 水准
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【排版系统】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 整体为 90% 视觉,10% 文字
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- AI 根据【主题】自动生成最匹配的主标题和副标题
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 标题必须简洁、锋利、有气势
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 文案分布在安全负空间内,不压主体
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 若主题适合中文,则优先生成中文标题;若主题更适合英文,则自动生成英文标题;也可中英结合,但必须统一高级
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 文字必须尽量少而准,不要堆字
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【署名要求】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;在画面底部角落自然加入作者署名:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;@a9quant
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;署名要小,但清晰、精致、高级,不喧宾夺主,像顶级视觉作品中的正式作者落款。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【输出要求】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;输出为单张统一构图海报。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;自动根据【主题】完成全部视觉决策。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;画面必须具备史诗感、秩序感、控制力、仪式感、商业完成度。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;最大细节密度,超清,电影级,印刷级,高端成片质感。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;户外全身照中的年轻白人女性&#34;&gt;户外全身照中的年轻白人女性&amp;hellip;
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/AIwithSarah_/status/2047234995627172229&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/AIwithSarah_&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@AIwithSarah_&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/038.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/038_hu_ff5a247e2a801b2c.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/038_hu_4fbacbb1e8c8dfe8.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;户外全身照中的年轻白人女性…&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A full-body outdoor shot captures a young Caucasian woman, possibly in her late 20s, striding through a city crosswalk. She wears an oversized, matte chocolate-brown leather jacket paired with a free-flowing black skirt and sleek knee-high black boots, conveying a sense of high fashion street style. Her long, dark brown hair is wind-swept, complementing her poised and confident expression as she glances sideways. Behind her, a blurred urban backdrop features a yellow taxi and pedestrians, with buildings displaying varied architectural details in neutral tones. The scene utilizes soft ambient daylight filtering through light cloud cover, producing a muted, overcast lighting effect. The warm, earthy color palette consists of brown, black, and touches of beige. The image, likely from a high-resolution digital camera, presents a wide-angle view that maintains focus throughout, emphasizing a dynamic and fashionable feel.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;冷藏气泡水专业产品摄影&#34;&gt;冷藏气泡水专业产品摄影
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/meng_dagg695/status/2047227172486824002&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/meng_dagg695&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@meng_dagg695&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/039.webp&#34;
	width=&#34;1200&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/039_hu_de370bf7dfdeccac.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/039_hu_586efe83d344a1c7.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;冷藏气泡水专业产品摄影&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A professional product photography shot of a cold sparkling water
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;can placed upright in golden beach sand. The can is silver and teal,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;covered in realistic water droplets condensation, with a pineapple
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;illustration and tropical branding. The can is slightly tilted,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;planted in a small mound of fine golden sand with tiny white pebbles
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;and small green tropical leaves/grass scattered around the base.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Background features a bold split composition - bright sky-blue on
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;the left and vivid yellow on the right, with a large blurred real
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pineapple placed behind the can on the right side. A blurred tropical
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;palm leaf drapes in from the upper left corner, adding depth and
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;framing. Macro-level water condensation droplets visible on the
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;can surface. Lighting is bright, vibrant, commercial studio lighting
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;with clean shadows. Shallow depth of field - can in sharp focus,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;background softly blurred. Mood: summer, tropical, fresh, refreshing.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Commercial product photography, ultra-detailed, 8K.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;360-度等距柱状全景图&#34;&gt;360 度等距柱状全景图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/rs_elwood/status/2047192228758692036&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/rs_elwood&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@rs_elwood&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/038.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/038_hu_ff5a247e2a801b2c.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/038_hu_4fbacbb1e8c8dfe8.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;360 度等距柱状全景图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;360度 equirectangular （正距円筒図法）画像を2:1で生成
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Online 360° Panorama Viewer VR
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;柔和诗意儿童书插画水彩与水粉质感&#34;&gt;柔和诗意儿童书插画，水彩与水粉质感&amp;hellip;
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/dotey/status/2047174895293849972&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/dotey&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@dotey&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/040.webp&#34;
	width=&#34;1200&#34;
	height=&#34;900&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/040_hu_424e23fdce1730a6.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/040_hu_b3e249d6b567c7ff.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;柔和诗意儿童书插画，水彩与水粉质感…&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;133&#34;
		data-flex-basis=&#34;320px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Soft poetic children&amp;#39;s book illustration with watercolor and gouache textures.Clear gentle daylight with slightly brighter highlights.Muted pastel colors with soft blue and warm tones.Visible brush strokes and paper grain.Minimalist composition with large negative space.Calm, thoughtful, slightly open-ended atmosphere.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Child character (around 12 years old).Subtle visual metaphors like light, shadow, perspective, reflection.Hand-painted picture book style, not cartoon, not anime, not 3D.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Two children in calm conversation,soft connection forming.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;画幅比例916-竖版&#34;&gt;画幅比例：9:16 竖版
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/GeekCatX/status/2047220831491858766&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/GeekCatX&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@GeekCatX&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/041.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/041_hu_27f5a8dc11c92271.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/041_hu_a84f0f87582688a5.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;画幅比例：9:16 竖版&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;37
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Aspect Ratio: 9:16 Vertical
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【IDENTITY &amp;amp; REALISM (CRITICAL PRIORITY)】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;The subject is an adult female whose facial features and bone structure must 100% perfectly match the provided FACE_REF image. Eye spacing, nose bridge, jawline, and cheekbone structure must be exact; no identity drift is allowed. Skin texture must be photorealistic, showing pores and fine details—do not over-smooth or apply an Instagram filter look.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【PHOTOGRAPHY &amp;amp; CINEMATOGRAPHY】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A high-end editorial fashion photograph with a cinematic quality, rivaling covers of Vogue, Harper’s Bazaar, or ELLE.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Lens &amp;amp; Focus: Use an 85mm lens (for medium shot) or 50mm/70mm (for full body) with a shallow depth of field. The subject&amp;#39;s eyes must be perfectly sharp.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Lighting: Natural winter daylight supplemented by soft, professional fill light. Gold ornaments and precious stones should have realistic specular highlights without being blown out. Embroidery textures must be incredibly sharp and tactile.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Color Grading: Rich, cinematic colors. The red walls and the attire&amp;#39;s main color must be distinct and clean, not muddy. The overall image should feel deep, textured, and expensive.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Composition: A clean magazine cover layout with deliberate negative space at the top or sides for typography. No torn paper or hand-drawn effects.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【SETTING: FORBIDDEN CITY WINTER】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;The location is a red-walled long corridor in the Beijing Forbidden City.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Environment: Visible details include vermilion walls, red pillars, intricate carved windows, and painted wooden beams with strong perspective depth. The scene must be clean: no tourists, modern signs, or watermarks.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Weather Condition (Selected Randomly):
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[If Snowfall selected]: Fine snowflakes are gently falling.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[If Post-Snow selected]: The air is crisp and clear, with remnant snow on the eaves and steps.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;【WARDROBE: MING DYNASTY HEAVY INDUSTRY COUTURE】
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;The subject wears opulent, multi-layered Ming Dynasty ceremonial Hanfu. The aesthetic is gold-heavy, dense tassels, phoenix crown, large-area woven gold embroidery, complex layering, dignified and luxurious.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Structure: A visible, crisp white standing inner collar provides a clean boundary. Over this is a structured duijin ao (jacket) with wide sleeves, topped by a heavy xiapei/pibo (stole) structure held by a large central yajin ornament.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Fabric &amp;amp; Craft: The main fabric is real zhijin jin (woven gold brocade) with palpable fiber texture. The embroidery is heavy industry—using panjin goldwork, couched gold
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;杭州西湖旅行海报&#34;&gt;杭州西湖旅行海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/BNBOKBt5/status/2047210189741605082&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/BNBOKBt5&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@BNBOKBt5&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/042.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/042_hu_121803730c1fc8a5.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/042_hu_92d74e842ca118a.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;杭州西湖旅行海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;帮我生成一个介绍杭州西湖的海报
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;东方不败武侠角色海报&#34;&gt;东方不败武侠角色海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen/status/2047204566559756707&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@songguoxiansen&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/043.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/043_hu_f3f496fc67669877.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/043_hu_a9f9996a5ef7415d.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;东方不败武侠角色海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;图片1：电影角色海报，东方不败红衣饮酒，悬崖落日，武侠意境
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;图片2：东方不败绣花针如飞，红衣长发立于悬崖，黑木崖夕阳如血
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;大话西游-90-年代港片海报&#34;&gt;大话西游 90 年代港片海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen/status/2047201597697245252&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@songguoxiansen&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/044.webp&#34;
	width=&#34;848&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/044_hu_9b7cbd43d6d2017c.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/044_hu_bfba6b6b10add752.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;大话西游 90 年代港片海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;70&#34;
		data-flex-basis=&#34;169px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;图片1：大话西游海报重制为90年代港片风格，至尊宝紫霞城墙拥吻，胶片颗粒
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;图片2：杜蕾斯吉祥物×猪八戒，八戒害羞脸红遮面，文案取经路上要安全
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;西游记女儿国海报&#34;&gt;西游记女儿国海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/cj858cjsoul/status/2047103956535697822&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/cj858cjsoul&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@cj858cjsoul&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/045.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/045_hu_b530de8d4d6545cd.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/045_hu_a133286d0a68118d.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;西游记女儿国海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;西游记女儿国诱惑海报，六位艳丽的女儿国大臣在后宫温泉中，迷雾朦胧妖冶，生成图片
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;4.23早上测试成功
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;鹿鼎记角色海报&#34;&gt;鹿鼎记角色海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/caiziboshi/status/2047091751731519744&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/caiziboshi&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@caiziboshi&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/046.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/046_hu_d4a2c9eabefe3664.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/046_hu_b867ff1faed1ddbd.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;鹿鼎记角色海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;生成鹿鼎记海报，展现韦小宝跟老婆XXX，忠于原著的描述，夸大特点，强调女性的美艳和男性的气质
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;生成带规格与价格的赛车海报&#34;&gt;生成带规格与价格的赛车海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/verysmallwoods/status/2047033599229137126&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/verysmallwoods&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@verysmallwoods&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/047.webp&#34;
	width=&#34;569&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/047_hu_7f424966b0d91e90.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/047_hu_d8fee19c94371ed7.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;生成带规格与价格的赛车海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;47&#34;
		data-flex-basis=&#34;113px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;generate an image of a racing car poster with its spec and pricing
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;卓别林产品海报重设计&#34;&gt;卓别林产品海报重设计
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/chenenpei/status/2046985783715025135&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/chenenpei&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@chenenpei&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/048.webp&#34;
	width=&#34;799&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/048_hu_1d48865872d9a3b4.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/048_hu_6819b669cb7910c7.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;卓别林产品海报重设计&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;159px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;重新生成一张海报，卓别林拿着商品图里的止痒膏，面露微笑。风格要简约干净。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;左边是 GPT-image-2 右边是
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;奢华运动服篮球运动员广告海报&#34;&gt;奢华运动服篮球运动员广告海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Shorelyn_/status/2047949711181832558&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Shorelyn_&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Shorelyn_&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/049.webp&#34;
	width=&#34;1254&#34;
	height=&#34;1254&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/049_hu_672f777993b43681.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/049_hu_d32a1c4adebdc905.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;奢华运动服篮球运动员广告海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a premium luxury sportswear campaign poster featuring a confident female athlete in a modern studio environment. Full body pose with strong fashion attitude, standing tall while holding a basketball at her side, chin raised slightly, direct powerful expression. Athletic toned physique, sleek pulled back hair, clean glowing skin, sharp editorial posture.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Outfit includes an oversized cropped varsity jacket, fitted sports bra, tailored biker shorts, white crew socks, and modern high top sneakers. Neutral monochrome styling with subtle premium branding.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Background is a clean light gray studio wall with giant bold condensed black typography reading “POWER” stretched vertically across the backdrop behind the model. Text should feel oversized and dominant, framing the athlete in the center.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Floor is glossy reflective studio surface with subtle court markings and soft reflections. A few basketballs placed naturally around the floor for depth and campaign styling.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Lighting is bright luxury studio lighting with crisp highlights, soft shadows, and polished commercial finish. Sharp focus, ultra realistic skin texture, premium fabric texture, cinematic contrast.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Style should feel modern, minimal, elite, bold, high fashion sports campaign, luxury brand advertisement, clean composition, balanced negative space, strong visual impact, high resolution, square format.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;亚洲服饰街头时尚广告海报&#34;&gt;亚洲服饰街头时尚广告海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/harboriis/status/2047921293123895520&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/harboriis&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@harboriis&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/050.webp&#34;
	width=&#34;1152&#34;
	height=&#34;2048&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/050_hu_906676598a55c4d.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/050_hu_758213b443022f5c.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;亚洲服饰街头时尚广告海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a premium streetwear fashion campaign poster inspired by modern Asian apparel advertising. Full body portrait of a stylish young male model standing confidently with legs crossed at the ankles, hands inside jacket pockets, head turned slightly upward and sideways with a calm thoughtful expression. Curly tousled medium length hair with soft volume. Slim athletic build.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Outfit includes a dark olive green padded hooded jacket worn open, clean white crewneck sweatshirt underneath with a tiny chest logo, relaxed black cargo style trousers, and minimal white sneakers. Styling is clean, youthful, and contemporary.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Background is a vibrant electric blue seamless studio backdrop with subtle gradient lighting, soft glow streaks, and glossy floor reflection. Lighting is soft studio light with gentle shadows and polished commercial finish.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Graphic poster layout with giant bold condensed sans serif text reading “JEANSWEST” vertically stretched across the background behind the model in light gray white. Add large text on lower right reading “JW26”. 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Composition should feel premium, trendy, clean, commercial, youthful, modern fashion ad campaign. Sharp focus, ultra realistic fabric texture, cinematic lighting, balanced negative space, sleek branding design, high resolution, vertical poster ratio.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;职业生涯高光时刻电影感海报模板&#34;&gt;职业生涯高光时刻电影感海报模板
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Goodmanprotocol/status/2047900470921040270&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Goodmanprotocol&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Goodmanprotocol&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/051.webp&#34;
	width=&#34;1122&#34;
	height=&#34;1402&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/051_hu_2f9da72c29fe71be.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/051_hu_84ede77a008103b4.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;职业生涯高光时刻电影感海报模板&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;80&#34;
		data-flex-basis=&#34;192px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create an epic poster showcasing the most iconic moments of [Insert Name]&amp;#39;s career. Cinematic style, lens flare. Portrait orientation. A1 poster size. aspect ratio 4:5 https://t.co/L9OHPKUNRp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;先锋篮球雕塑运动时尚广告&#34;&gt;先锋篮球雕塑运动时尚广告
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/AIwithkhan/status/2047886964037398989&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/AIwithkhan&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@AIwithkhan&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/052.webp&#34;
	width=&#34;1254&#34;
	height=&#34;1254&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/052_hu_e4ef64e0fec4e145.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/052_hu_4ef81fda3ea058a2.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;先锋篮球雕塑运动时尚广告&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Avant-garde sports fashion advertisement, oversized basketball posed like a monumental sculpture, female athlete reclining across the ball’s curved surface as if modern furniture, giant word “ELEVATE” in bold typography behind, burnt orange studio backdrop, glossy reflective floor, luxury athletic editorial aesthetic, cinematic lighting, ultra-clean composition, 1:1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;先锋网球拍雕塑运动时尚广告&#34;&gt;先锋网球拍雕塑运动时尚广告
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/AIwithSynthia/status/2047884609321619831&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/AIwithSynthia&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@AIwithSynthia&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/053.webp&#34;
	width=&#34;1254&#34;
	height=&#34;1254&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/053_hu_be592ae0d8fc17c8.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/053_hu_93bbc60441311c05.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;先锋网球拍雕塑运动时尚广告&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Avant-garde sports fashion advertisement, oversized tennis racket positioned like monumental sculpture, female athlete seated casually on the strings as if a suspended lounge, giant word “PRECISION” in bold typography behind, crisp white studio backdrop, reflective court-like floor, luxury sportswear editorial aesthetic, cinematic lighting, ultra-clean composition, 1:1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;超现实酒类品牌高级时装海报&#34;&gt;超现实酒类品牌高级时装海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/hmontilla_/status/2047884126343032995&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/hmontilla_&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@hmontilla_&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/038.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/038_hu_ff5a247e2a801b2c.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/038_hu_4fbacbb1e8c8dfe8.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;超现实酒类品牌高级时装海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Un póster publicitario surrealista de alta costura para Aguardiente Amarillo. La escena se sitúa en un estudio minimalista y monocromático de color naranja claro, con un suelo semirreflectante.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;El foco central es una botella de Aguardiente Amarillo de tamaño descomunal y gigante, colocada en ángulo diagonal y que sirve como respaldo. Un modelo masculino de moda, de cabello largo y oscuro, vestido con un conjunto impecable y totalmente blanco —compuesto por una sudadera y pantalones de pierna ancha—, apoya toda su espalda contra la botella gigante en una postura relajada e inclinada. Mira hacia la derecha, de perfil, con la vista al frente y una expresión serena; calza zapatillas blancas de tamaño estándar.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;En el fondo, la palabra &amp;#34;AGUARDIENTE&amp;#34; aparece escrita con una tipografía sans-serif condensada, blanca, masiva y en negrita, parcialmente oculta por la botella gigante y por el modelo para crear una sensación de profundidad. En la esquina superior derecha se lee: &amp;#34;Creado por @HMontilla_&amp;#34;.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;En la parte inferior central, una frase publicitaria en tipografía sans-serif blanca reza: &amp;#34;El Aguardiente Amarillo de Manzanares es un icónico licor colombiano, originario de 1885 en Manzanares, Caldas&amp;#34;. La iluminación es suave, fría y uniforme, proyectando sombras tenues y un reflejo sutil de los sujetos sobre el suelo azul brillante. La estética general es limpia, moderna y de alto concepto.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Establecer la relación de aspecto en 3:4.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;高端食谱海报优雅版式&#34;&gt;高端食谱海报优雅版式
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Preda2005/status/2047883394152088004&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Preda2005&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Preda2005&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/054.webp&#34;
	width=&#34;1366&#34;
	height=&#34;2048&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/054_hu_4c7931fba65879d6.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/054_hu_803c37bfc869f6dc.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;高端食谱海报优雅版式&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a premium food preparation poster for
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; [ DISH NAME ], with a beautiful hero dish, warm natural lighting, cream background, elegant step-by-step recipe layout, ingredients, cooking process, premium food photography, refined English typography, luxury restaurant advertisement style, clean design, rich colors, highly detailed, visually irresistible, cinematic masterpiece.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;黑白奢华时尚杂志封面&#34;&gt;黑白奢华时尚杂志封面
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/iamrealsnow/status/2047883187527856345&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/iamrealsnow&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@iamrealsnow&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/055.webp&#34;
	width=&#34;1024&#34;
	height=&#34;1536&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/055_hu_bbe14247cc60a4e5.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/055_hu_94215ca614388d4.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;黑白奢华时尚杂志封面&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a high fashion editorial magazine cover inspired by luxury fashion publications. Use the reference image of the male subject. Black and white portrait photography with a clean off white studio background. Subject is posed confidently from a low angle, looking slightly upward, sharp jawline, soft parted lips, tousled wavy hair with natural volume. Outfit includes a dark turtleneck layered under a textured tailored plaid blazer. Lighting is soft yet dramatic, creating sculpted facial shadows and elegant contrast.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Magazine layout design with oversized serif masthead text at the top reading “VOGUE”, partially hidden behind the subject’s head. Minimal premium typography across the page. Add side text “FASHION”, issue date “2026 MAY”, left side headline “27 DIFFERENT STYLES”, and bold bottom right cover line “LOOK FAMOUS”. Include a small red translucent square overlay on one eye area with the word “CATCHY”.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Style should feel premium, modern, cinematic, clean composition, sharp focus, ultra realistic skin texture, editorial luxury aesthetic, balanced negative space, timeless fashion cover design. Vertical magazine ratio, high resolution.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;超现实-rolex-奢华腕表时尚海报&#34;&gt;超现实 Rolex 奢华腕表时尚海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Sheldon056/status/2047873913049538927&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Sheldon056&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Sheldon056&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/056.webp&#34;
	width=&#34;1086&#34;
	height=&#34;1448&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/056_hu_f062a2ae9ecc796.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/056_hu_6b8f3f5827776d86.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;超现实 Rolex 奢华腕表时尚海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A high-fashion surrealist poster for Rolex. A deep emerald green minimalist studio with a polished reflective floor. A massive Rolex watch stands upright like a monument. A male model in a tailored dark green suit leans casually against the watch face, wearing a matching Rolex.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;孔雀植物复古对称艺术画&#34;&gt;孔雀植物复古对称艺术画
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/dotey/status/2047803054422901046&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/dotey&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@dotey&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/057.webp&#34;
	width=&#34;1536&#34;
	height=&#34;1024&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/057_hu_1d9e0402fbb0405e.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/057_hu_9a4124b40f74310f.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;孔雀植物复古对称艺术画&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;symmetrical design featuring two elegant blue peacocks with detailed feather patterns, surrounded by blue floral elements, intricate vintage botanical ornament, soft beige background, classical floral decor style with rich navy and sky blue details, decorative art illustration --ar 3:2
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;splash-时尚品牌超写实广告海报&#34;&gt;SPLASH 时尚品牌超写实广告海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/miratechtool/status/2047780974709346606&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/miratechtool&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@miratechtool&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/058.webp&#34;
	width=&#34;1054&#34;
	height=&#34;1492&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/058_hu_7b524443874af7f8.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/058_hu_5c9db5a9d7637f12.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;SPLASH 时尚品牌超写实广告海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;70&#34;
		data-flex-basis=&#34;169px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a hyper-realistic fashion poster for “SPLASH” featuring the same girl from the reference image (keep her face 100% identical). She is sitting confidently on a glossy, liquid-style 3D SPLASH logo with water splash effects. One leg relaxed, one bent, strong editorial pose.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Background has massive bold “SPLASH” text filling the frame, partially behind her. Add small tagline: “Own Your Style.”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Outfit: modern black street-fashion (blazer, fitted top, trousers, sneakers).
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Lighting: cinematic studio, soft key light + rim light, reflective highlights on liquid logo.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Style: luxury brand campaign (Zara / H&amp;amp;M), clean glossy environment.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Camera: 85mm lens, shallow depth of field, 8K, ultra-detailed, photorealistic.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;先锋吉他雕塑时尚广告&#34;&gt;先锋吉他雕塑时尚广告
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/QamarRiaz1/status/2047777016733110722&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/QamarRiaz1&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@QamarRiaz1&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/059.webp&#34;
	width=&#34;1448&#34;
	height=&#34;1086&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/059_hu_9ce332a29f23dd91.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/059_hu_59f9454b2ce4155b.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;先锋吉他雕塑时尚广告&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;133&#34;
		data-flex-basis=&#34;320px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Avant-garde fashion advertisement, oversized guitar positioned like sculpture, a guitarist in jeans casually seated on the a button as if furniture, giant word &amp;#34;Plism Art&amp;#34; behind in bold white typography, powder pastel studio background, reflective floor, luxury eyewear campaign aesthetic, ultra-clean layout, editorial magazine styling, Bold quote &amp;#34; What are you listening&amp;#34;   Tag : Create Own Change
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;城市美食地图插画&#34;&gt;城市美食地图插画
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/mm_zzm44854/status/2045861258520568230&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/mm_zzm44854&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@mm_zzm44854&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/060.webp&#34;
	width=&#34;1080&#34;
	height=&#34;1080&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/060_hu_e1522261822e773e.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/060_hu_3a266ee6d774e351.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;城市美食地图插画&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;type&amp;#34;: &amp;#34;illustrated map infographic&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;style&amp;#34;: &amp;#34;{argument name=\&amp;#34;art style\&amp;#34; default=\&amp;#34;watercolor and ink hand-drawn illustration on vintage parchment\&amp;#34;}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;title_section&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;text&amp;#34;: &amp;#34;{argument name=\&amp;#34;city name\&amp;#34; default=\&amp;#34;成都\&amp;#34;} {argument name=\&amp;#34;map title\&amp;#34; default=\&amp;#34;吃货暴走地图\&amp;#34;}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;mascot&amp;#34;: &amp;#34;cartoon red chili pepper wearing sunglasses and giving a thumbs up&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;border&amp;#34;: &amp;#34;{argument name=\&amp;#34;border decoration\&amp;#34; default=\&amp;#34;vine of green leaves and red chili peppers\&amp;#34;}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;layout&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;background&amp;#34;: &amp;#34;textured beige parchment paper with yellow roads, blue rivers, and green park areas&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;sections&amp;#34;: [
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;landmarks&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;count&amp;#34;: 6,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;illustrations&amp;#34;: [&amp;#34;traditional pavilion&amp;#34;, &amp;#34;traditional monastery&amp;#34;, &amp;#34;modern skyscraper with climbing panda&amp;#34;, &amp;#34;tall TV tower&amp;#34;, &amp;#34;traditional gate&amp;#34;, &amp;#34;industrial buildings&amp;#34;],
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;labels&amp;#34;: [&amp;#34;人民公园&amp;#34;, &amp;#34;文殊院&amp;#34;, &amp;#34;IFS&amp;#34;, &amp;#34;339电视塔&amp;#34;, &amp;#34;宽窄巷子&amp;#34;, &amp;#34;东郊记忆&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;food_spots&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;count&amp;#34;: 12,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;illustrations&amp;#34;: [&amp;#34;mapo tofu&amp;#34;, &amp;#34;dumplings in chili oil&amp;#34;, &amp;#34;skewers in pot&amp;#34;, &amp;#34;sticky rice balls&amp;#34;, &amp;#34;egg baking cake&amp;#34;, &amp;#34;nine-grid hotpot&amp;#34;, &amp;#34;sweet potato noodles&amp;#34;, &amp;#34;cold skewers&amp;#34;, &amp;#34;spicy mixed dish&amp;#34;, &amp;#34;covered tea bowl&amp;#34;, &amp;#34;ice jelly dessert&amp;#34;, &amp;#34;spicy rabbit heads&amp;#34;],
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;labels&amp;#34;: [&amp;#34;1 陈麻婆豆腐&amp;#34;, &amp;#34;2 钟水饺&amp;#34;, &amp;#34;3 春熙路&amp;#34;, &amp;#34;4 宽窄巷子·三大炮&amp;#34;, &amp;#34;5 建设路·叶婆婆蛋烘糕&amp;#34;, &amp;#34;6 玉林路·小龙坎火锅&amp;#34;, &amp;#34;7 香香巷·肥肠粉&amp;#34;, &amp;#34;8 武侯祠大街·钵钵鸡&amp;#34;, &amp;#34;9 东郊记忆·冒椒火辣&amp;#34;, &amp;#34;10 人民公园·鹤鸣茶社&amp;#34;, &amp;#34;11 锦里古街·冰粉&amp;#34;, &amp;#34;12 双流老妈兔头&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;图例&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;position&amp;#34;: &amp;#34;bottom-right&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;count&amp;#34;: 5,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;items&amp;#34;: [&amp;#34;red dot&amp;#34;, &amp;#34;green house&amp;#34;, &amp;#34;green tree&amp;#34;, &amp;#34;blue line&amp;#34;, &amp;#34;yellow double line&amp;#34;],
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;labels&amp;#34;: [&amp;#34;美食地点&amp;#34;, &amp;#34;地标景点&amp;#34;, &amp;#34;公园绿地&amp;#34;, &amp;#34;河流湖泊&amp;#34;, &amp;#34;主要道路&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ],
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;centerpiece&amp;#34;: &amp;#34;giant panda sitting and eating bamboo&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;bottom_right_extras&amp;#34;: [&amp;#34;vintage compass rose with N, S, E, W&amp;#34;, &amp;#34;disclaimer text &amp;#39;温馨提示:吃辣需谨慎,肠胃要保护~&amp;#39; with a red chili pepper icon&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;3d-石阶演变信息图&#34;&gt;3D 石阶演变信息图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/GeekCatX/status/2045792240044511277&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/GeekCatX&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@GeekCatX&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/061.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/061_hu_11d526a0273d47c5.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/061_hu_fc07f266c625fe79.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;3D 石阶演变信息图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;41
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;type&amp;#34;: &amp;#34;evolutionary timeline infographic&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;instruction&amp;#34;: &amp;#34;Using REFERENCE_0 as a structural base, transform the flat vector design into a highly realistic 3D infographic. Replace the smooth ramps with distinct stone steps and upgrade all organisms to photorealistic 3D models.&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;style&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;background&amp;#34;: &amp;#34;{argument name=\&amp;#34;background style\&amp;#34; default=\&amp;#34;vintage textured parchment paper\&amp;#34;}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;staircase&amp;#34;: &amp;#34;{argument name=\&amp;#34;staircase material\&amp;#34; default=\&amp;#34;realistic textured stone blocks\&amp;#34;}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;subjects&amp;#34;: &amp;#34;{argument name=\&amp;#34;organism style\&amp;#34; default=\&amp;#34;highly detailed photorealistic 3D renders\&amp;#34;}&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;layout&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;main_title&amp;#34;: &amp;#34;{argument name=\&amp;#34;main title\&amp;#34; default=\&amp;#34;人类演化\&amp;#34;}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;sections&amp;#34;: [
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;position&amp;#34;: &amp;#34;left sidebar&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;count&amp;#34;: 8,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;labels&amp;#34;: [&amp;#34;L0: 单细胞生命&amp;#34;, &amp;#34;L1: 多细胞生物&amp;#34;, &amp;#34;L2: 动物界&amp;#34;, &amp;#34;L3: 脊索动物&amp;#34;, &amp;#34;L4: 上陆革命&amp;#34;, &amp;#34;L5: 哺乳纲&amp;#34;, &amp;#34;L6: 人科演化&amp;#34;, &amp;#34;L7: 智人纪元&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;position&amp;#34;: &amp;#34;top right&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;获得的功能 / 失去的功能&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;description&amp;#34;: &amp;#34;Legend with plus and minus icons&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;position&amp;#34;: &amp;#34;bottom center&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;title&amp;#34;: &amp;#34;演化关键里程碑&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;count&amp;#34;: 6,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;description&amp;#34;: &amp;#34;Timeline with a silhouette graphic of 6 figures showing ape-to-human evolution&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ],
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;centerpiece&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;description&amp;#34;: &amp;#34;Winding stone staircase with 25 numbered steps featuring specific organisms.&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;count&amp;#34;: 25,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;notable_elements&amp;#34;: [
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;Step 07: Jellyfish&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;Step 09: Ammonite&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;Step 10: Trilobite&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;Step 24: Walking human&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;#34;Step 25: {argument name=\&amp;#34;future evolution concept\&amp;#34; default=\&amp;#34;glowing cosmic silhouette with a question mark\&amp;#34;}&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      ]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;仿生-skyray-飞机海报&#34;&gt;仿生 Skyray 飞机海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/_simonsmith/status/2048172203946996041&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/_simonsmith&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@_simonsmith&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/062.webp&#34;
	width=&#34;569&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/062_hu_531e35a6a1142002.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/062_hu_33b717ad1d5e51b6.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;仿生 Skyray 飞机海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;47&#34;
		data-flex-basis=&#34;113px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{&amp;#34;type&amp;#34;:&amp;#34;biomimetic aerospace concept poster&amp;#34;,&amp;#34;subject&amp;#34;:{&amp;#34;vehicle&amp;#34;:&amp;#34;futuristic aircraft concept&amp;#34;,&amp;#34;name&amp;#34;:&amp;#34;{argument name=\&amp;#34;vehicle name\&amp;#34; default=\&amp;#34;SKYRAY\&amp;#34;}&amp;#34;,&amp;#34;inspiration&amp;#34;:&amp;#34;{argument name=\&amp;#34;animal inspiration\&amp;#34; default=\&amp;#34;stingray\&amp;#34;}&amp;#34;,&amp;#34;design&amp;#34;:&amp;#34;blended-wing-body aircraft shaped like a manta ray or stingray, wide triangular planform, smooth organic curves, sharp pointed nose, slightly raised central spine, tapered wing tips curling subtly upward, dark graphite-black metallic skin with fine panel lines and faint blue illuminated accents along edges and seams&amp;#34;},&amp;#34;style&amp;#34;:{&amp;#34;mood&amp;#34;:&amp;#34;premium futuristic industrial design presentation&amp;#34;,&amp;#34;rendering&amp;#34;:&amp;#34;hyper-detailed cinematic 3D concept art mixed with blueprint visualization&amp;#34;,&amp;#34;color_palette&amp;#34;:&amp;#34;black, charcoal, gunmetal, silver, deep ocean blue, electric cyan highlights&amp;#34;,&amp;#34;lighting&amp;#34;:&amp;#34;low-key dramatic studio lighting with glossy reflections, cool rim light, subtle underwater ambience in the top inspiration strip&amp;#34;},&amp;#34;layout&amp;#34;:{&amp;#34;background&amp;#34;:&amp;#34;full black poster with faint technical grid lines and soft vignetting&amp;#34;,&amp;#34;sections&amp;#34;:[{&amp;#34;title&amp;#34;:&amp;#34;header&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;top&amp;#34;,&amp;#34;count&amp;#34;:3,&amp;#34;labels&amp;#34;:[&amp;#34;emblem mark&amp;#34;,&amp;#34;SKYRAY&amp;#34;,&amp;#34;INSPIRED BY THE SEA. ENGINEERED FOR THE SKY.&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;evolution strip&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;upper middle&amp;#34;,&amp;#34;count&amp;#34;:5,&amp;#34;labels&amp;#34;:[&amp;#34;realistic stingray underwater at far left&amp;#34;,&amp;#34;top-view biological stingray study&amp;#34;,&amp;#34;abstract aerodynamic line sketch&amp;#34;,&amp;#34;faceted aircraft blueprint transition drawing&amp;#34;,&amp;#34;final sleek aircraft concept at far right&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;hero render&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;center&amp;#34;,&amp;#34;count&amp;#34;:1,&amp;#34;labels&amp;#34;:[&amp;#34;large three-quarter view of the aircraft&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;technical views grid&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;lower middle&amp;#34;,&amp;#34;count&amp;#34;:6,&amp;#34;labels&amp;#34;:[&amp;#34;TOP&amp;#34;,&amp;#34;SIDE&amp;#34;,&amp;#34;FRONT&amp;#34;,&amp;#34;REAR&amp;#34;,&amp;#34;UNDERSIDE&amp;#34;,&amp;#34;DETAIL&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;footer text&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;bottom&amp;#34;,&amp;#34;count&amp;#34;:1,&amp;#34;labels&amp;#34;:[&amp;#34;{argument name=\&amp;#34;body text\&amp;#34; default=\&amp;#34;A biomimetic high-speed aircraft concept shaped by the hydrodynamic elegance of the stingray. Its blended wing body, low-drag silhouette, and fluid control surfaces translate ocean-born efficiency into atmospheric performance.\&amp;#34;}&amp;#34;]}],&amp;#34;technical views&amp;#34;:{&amp;#34;TOP&amp;#34;:&amp;#34;top orthographic view with measurement ticks&amp;#34;,&amp;#34;SIDE&amp;#34;:&amp;#34;thin side profile with long smooth belly curve&amp;#34;,&amp;#34;FRONT&amp;#34;:&amp;#34;front orthographic view emphasizing broad wingspan and central cockpit hump&amp;#34;,&amp;#34;REAR&amp;#34;:&amp;#34;rear orthographic view showing narrow tail end and wing sweep&amp;#34;,&amp;#34;UNDERSIDE&amp;#34;:&amp;#34;underside three-quarter view&amp;#34;,&amp;#34;DETAIL&amp;#34;:&amp;#34;close-up crop of metallic skin, seam lines, and glowing blue edge strip&amp;#34;}},&amp;#34;graphics&amp;#34;:{&amp;#34;logo&amp;#34;:&amp;#34;minimal four-point symmetrical emblem above title, resembling a stylized ray silhouette&amp;#34;,&amp;#34;arrows&amp;#34;:&amp;#34;4 thin cyan arrows connecting the 5 stages in the evolution strip&amp;#34;,&amp;#34;typography&amp;#34;:&amp;#34;widely spaced modern sans-serif uppercase text, clean luxury-tech branding&amp;#34;},&amp;#34;camera&amp;#34;:{&amp;#34;hero render&amp;#34;:&amp;#34;slightly elevated front-left three-quarter angle&amp;#34;,&amp;#34;technical views&amp;#34;:&amp;#34;orthographic&amp;#34;,&amp;#34;inspiration image&amp;#34;:&amp;#34;underwater side angle with light rays from above&amp;#34;},&amp;#34;quality&amp;#34;:&amp;#34;ultra-clean, polished, high contrast, sharp, poster-ready, concept design board for aerospace branding or speculative industrial design&amp;#34;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;道教三魂七魄海报&#34;&gt;道教三魂七魄海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/leyu37829/status/2048125950681075833&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/leyu37829&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@leyu37829&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/063.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/063_hu_c232614ef0c677ad.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/063_hu_98a733b8e5499d36.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;道教三魂七魄海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A highly detailed vertical Taoist esoteric infographic poster in the style of an ancient Chinese religious scroll, printed on aged beige rice paper with fine ornamental borders, inked calligraphy, faded stains, and classical diagram annotations. At the top center, large black brush-calligraphy title text reads {argument name=&amp;#34;headline text&amp;#34; default=&amp;#34;道·三魂七魄&amp;#34;}. Directly below the title is a smaller paragraph of classical Chinese explanatory text in neat calligraphy. The composition is perfectly symmetrical and centered on a glowing vertical spiritual axis made of white-gold energy, mist, and lightning-like qi currents running from the bottom of the page to the heavens. At the very top, above the axis, depict 3 seated Taoist immortals or deities on clouds in a golden celestial realm, arranged left, center, and right, with halos and flowing robes in muted green, cream, and blue. Beneath them, create a towering multi-layered cosmological body diagram made of 9 stacked circular realms or platforms connected by swirling clouds and luminous energy. The upper 5 larger realms represent the five zang organs as miniature mythic landscapes: 1 forested green realm labeled liver/wood, 1 fiery red-gold temple city realm labeled heart/fire, 1 yellow earth realm with terraces labeled spleen/earth, 1 silver-blue mountain-and-water realm labeled lung/metal, and 1 dark blue watery abyss realm labeled kidney/water. Place a glowing meditating figure in a bright orb at the center junction between the upper organ realms and lower spirit layers. Below these, add 7 progressively darker circular underworld-like realms for the seven po souls, each densely populated with tiny scenes of human figures, spirits, beasts, ritual activity, suffering, temptation, conflict, and karmic symbolism, all wrapped by drifting smoke and energy ribbons. At the very bottom, show a seated human figure in meditation within a root-like cavern or corporeal foundation, surrounded by chains, rocks, and embodied worldly attachments. Around the central column, include exactly 9 labeled side panels and diagrams in traditional Chinese layout: top left a bagua and yin-yang cosmology circle; top right a dotted numerological or constellation-like chart; left upper a boxed list for 3 souls; right upper a boxed list for 7 po souls; left middle a five-elements relationship diagram with 5 colored nodes; right middle a circular essence-qi-spirit cycle diagram with 3 nodes; left lower a vertical boxed list of 7 categories or stages; right lower a boxed correspondence table; bottom left a five-direction and five-element human-body relation chart; bottom right a standing and seated meridian or cultivation body diagram. Use many small Chinese labels throughout every section, with classical seal stamps in red. The overall palette is antique parchment, sepia ink, muted jade, cinnabar red, smoky gray, gold, teal, and indigo. The style should feel like a museum-quality Daoist metaphysical chart, ultra intricate, hand-painted gongbi plus ink wash illustration, sacred, mystical, scholarly, dense with symbolism, extremely fine linework, soft cloud layering, and high-resolution poster design.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;复古-claude-shannon-信息图海报&#34;&gt;复古 Claude Shannon 信息图海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/mob_17/status/2048118645017219381&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/mob_17&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@mob_17&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/064.webp&#34;
	width=&#34;1200&#34;
	height=&#34;849&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/064_hu_76812c0cd0392b65.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/064_hu_362a7a69ff76f1c3.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;复古 Claude Shannon 信息图海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;141&#34;
		data-flex-basis=&#34;339px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{&amp;#34;type&amp;#34;:&amp;#34;vintage editorial infographic poster&amp;#34;,&amp;#34;subject&amp;#34;:&amp;#34;Claude Shannon and information theory&amp;#34;,&amp;#34;style&amp;#34;:{&amp;#34;era&amp;#34;:&amp;#34;1940s Bell Labs archival poster&amp;#34;,&amp;#34;look&amp;#34;:&amp;#34;aged cream paper, blueprint drafting grid, thin ink linework, muted navy and charcoal printing, subtle stains and paper wear, technical illustration mixed with newspaper editorial design&amp;#34;,&amp;#34;rendering&amp;#34;:&amp;#34;high-detail diagrammatic collage with engraved portrait, scientific charts, labeled panels, and hand-drawn signal graphics&amp;#34;},&amp;#34;poster&amp;#34;:{&amp;#34;headline&amp;#34;:&amp;#34;Claude Shannon — The Architecture of Information&amp;#34;,&amp;#34;subheadline&amp;#34;:&amp;#34;How uncertainty became measurable, and communication became engineering.&amp;#34;,&amp;#34;topRightMeta&amp;#34;:{&amp;#34;note&amp;#34;:&amp;#34;NOTE TOSELF No. 6713–2&amp;#34;,&amp;#34;date&amp;#34;:&amp;#34;MAY 1948&amp;#34;,&amp;#34;subject&amp;#34;:&amp;#34;A Mathematical Theory of Communication&amp;#34;}},&amp;#34;layout&amp;#34;:{&amp;#34;sections&amp;#34;:[{&amp;#34;title&amp;#34;:&amp;#34;left archival sidebar&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;far left vertical column&amp;#34;,&amp;#34;count&amp;#34;:5,&amp;#34;labels&amp;#34;:[&amp;#34;BELL LABORATORIES MURRAY HILL, N.J.&amp;#34;,&amp;#34;ENGINEERING THE INTANGIBLE&amp;#34;,&amp;#34;CLAUDE E. SHANNON 1916–2001&amp;#34;,&amp;#34;TOOLS OF THE INFORMATION AGE&amp;#34;,&amp;#34;quote panel&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;THE COMMUNICATION MODEL&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;upper middle wide panel&amp;#34;,&amp;#34;count&amp;#34;:5,&amp;#34;labels&amp;#34;:[&amp;#34;1 INFORMATION SOURCE&amp;#34;,&amp;#34;2 ENCODER&amp;#34;,&amp;#34;3 CHANNEL&amp;#34;,&amp;#34;4 DECODER&amp;#34;,&amp;#34;5 DESTINATION&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;ENTROPY: THE MEASURE OF UNCERTAINTY&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;upper right box&amp;#34;,&amp;#34;count&amp;#34;:4,&amp;#34;labels&amp;#34;:[&amp;#34;H(X) = −Σ p(x) log2 p(x)&amp;#34;,&amp;#34;PROBABILITY DISTRIBUTION p(x)&amp;#34;,&amp;#34;MORE EVEN MORE MAXED UNCERTAINTY&amp;#34;,&amp;#34;MORE LOPSIDED LESS UNCERTAINTY&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;lower theory panels&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;middle to lower band&amp;#34;,&amp;#34;count&amp;#34;:3,&amp;#34;labels&amp;#34;:[&amp;#34;A ENTROPY — uncertainty before a message is known&amp;#34;,&amp;#34;B NOISE — randomness that corrupts transmission&amp;#34;,&amp;#34;C Redundancy &amp;amp; Error Correction — structure added so signals can survive failure&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;THEORY THAT TRANSFORMED CIVILIZATION&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;bottom horizontal timeline&amp;#34;,&amp;#34;count&amp;#34;:8,&amp;#34;labels&amp;#34;:[&amp;#34;1840s TELEGRAPHY&amp;#34;,&amp;#34;1876+ TELEPHONE NETWORKS&amp;#34;,&amp;#34;1930s–40s DIGITAL COMPUTERS&amp;#34;,&amp;#34;1950s–60s SATELLITE COMMUNICATION&amp;#34;,&amp;#34;1970s INTERNET PROTOCOLS&amp;#34;,&amp;#34;1980s–90s DATA COMPRESSION&amp;#34;,&amp;#34;1990s–2000s CRYPTOGRAPHY&amp;#34;,&amp;#34;2010s+ AI &amp;amp; INFORMATION SYSTEMS&amp;#34;]}],&amp;#34;centerpiece&amp;#34;:&amp;#34;a large abstract cloud of blue and gray signal noise, dots, lines, and waveforms behind the communication model, with arrows moving left to right through the five stages&amp;#34;},&amp;#34;visualElements&amp;#34;:{&amp;#34;portrait&amp;#34;:{&amp;#34;subject&amp;#34;:&amp;#34;{argument name=\&amp;#34;scientist name\&amp;#34; default=\&amp;#34;Claude Shannon\&amp;#34;}&amp;#34;,&amp;#34;placement&amp;#34;:&amp;#34;left-center&amp;#34;,&amp;#34;style&amp;#34;:&amp;#34;black-and-white archival seated portrait at a desk with the face intentionally obscured by a pale square censor block, wearing suit and tie, writing on paper&amp;#34;},&amp;#34;objectsLeft&amp;#34;:[&amp;#34;rotary telephone on desk&amp;#34;,&amp;#34;open notebook or papers&amp;#34;,&amp;#34;technical console with CRT screen and knobs behind portrait&amp;#34;,&amp;#34;small icon row of 4 tools: oscilloscope, signal meter, relay, punched tape&amp;#34;],&amp;#34;communicationModel&amp;#34;:[&amp;#34;book and symbols under source&amp;#34;,&amp;#34;binary digits under encoder&amp;#34;,&amp;#34;large noisy channel cloud with wave overlays&amp;#34;,&amp;#34;binary digits and interpretation under decoder&amp;#34;,&amp;#34;light bulb icon under destination&amp;#34;],&amp;#34;chartsAndDiagrams&amp;#34;:[&amp;#34;bar chart for entropy probabilities&amp;#34;,&amp;#34;two low vs high entropy mini bar charts&amp;#34;,&amp;#34;tree diagram and entropy notation&amp;#34;,&amp;#34;signal distortion sketches labeled thermal noise, cross talk, distortion&amp;#34;,&amp;#34;error-correction binary pipeline from original message to recovered message&amp;#34;],&amp;#34;bottomDecor&amp;#34;:[&amp;#34;small waveform legend with sine wave, digital signal, and noise&amp;#34;,&amp;#34;archival stamp or footer on lower right&amp;#34;]},&amp;#34;color&amp;#34;:{&amp;#34;background&amp;#34;:&amp;#34;warm ivory paper&amp;#34;,&amp;#34;primaryInk&amp;#34;:&amp;#34;dark navy&amp;#34;,&amp;#34;secondaryInk&amp;#34;:&amp;#34;charcoal gray&amp;#34;,&amp;#34;accent&amp;#34;:&amp;#34;faded steel blue&amp;#34;},&amp;#34;composition&amp;#34;:&amp;#34;symmetrical wide poster with dense boxed annotations, fine border lines, and a museum-quality educational infographic feel&amp;#34;,&amp;#34;textDensity&amp;#34;:&amp;#34;very high, with many small labels, formulas, captions, and historical notes in a carefully organized grid&amp;#34;,&amp;#34;aspectRatio&amp;#34;:&amp;#34;16:9 landscape&amp;#34;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;郑问致敬水墨海报&#34;&gt;郑问致敬水墨海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/mob_17/status/2048118645017219381&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/mob_17&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@mob_17&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/065.webp&#34;
	width=&#34;849&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/065_hu_7220895371d0d86.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/065_hu_969f4ee59faccfd2.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;郑问致敬水墨海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;70&#34;
		data-flex-basis=&#34;169px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a vintage editorial poster on aged rice paper celebrating {argument name=&amp;#34;artist name&amp;#34; default=&amp;#34;CHEN UEN&amp;#34;}, designed like a museum infographic mixed with Chinese ink wash illustration and calligraphy. The format is a single vertically oriented poster with a weathered parchment background, ink splatters, faded handwritten annotations, red seal stamps, and a scholarly, archival atmosphere. At the very top, place large black Chinese calligraphy for the name 鄭問, followed by a slash and the romanized name {argument name=&amp;#34;romanized name&amp;#34; default=&amp;#34;CHEN UEN&amp;#34;} in large serif capitals, with a small red seal beside it. Under the title, add the subtitle {argument name=&amp;#34;subtitle text&amp;#34; default=&amp;#34;The Taiwanese Master Who Turned Comics into Ink-Born Epic&amp;#34;} in elegant reddish-brown serif text. In the center, feature a dramatic painterly scene of 1 seated male artist in a loose white shirt at a desk, holding a brush over paper, his face intentionally obscured by a soft rectangular blur. Behind him, surround him with a swirling halo-like storm of monochrome ink-brush warriors and historical figures: exact count 9 visible character figures, including armored generals, swordsmen, and mounted riders, emerging from explosive black brushwork and smoke-like ink textures. On the left side, create a vertical section titled “Life &amp;amp; Milestones” with a black brushstroke header and smaller Chinese subtitle text. List exactly 6 timeline entries with red year markers and bilingual captions: 1958 born in Taiwan, 1983 Warrior Panther, 1989 Abi Sword, 1990 Heroes of the Eastern Zhou, 1991 Japan Cartoonists Association Award, 2017 legacy continues. Below that, add a small section titled “Ink in Detail” containing exactly 4 boxed brush studies labeled with short English captions: Dry brush texture, Ink wash gradient, Splatter energy, Bold contour line. On the right side, create a vertical section titled “Visual Method” with a black brushstroke header and smaller Chinese subtitle text. Include exactly 5 stacked boxed studies with image-and-caption layout: Brush as blade, Ink as atmosphere, Anatomy as fate, History as theatre, Speed lines become calligraphy. In the lower center, create a section titled “Major Works Constellation” with a dark brushstroke heading. Arrange exactly 5 circular work nodes around a central ink ring with Chinese calligraphy inside. Label the 5 nodes: Abi Sword, Heroes of the Eastern Zhou, Assassin Biographies, Magical Super Asia, Game character design legacy. Each circle contains a distinct monochrome or muted-color ink illustration, with subtle connecting marks like a constellation diagram. At the lower right, add a section titled “Studio Notes” containing exactly 6 visible objects: 4 hanging calligraphy brushes, 1 ink bowl, and 1 painter’s palette with blue and red pigment; beneath them place a sketchbook page with light pencil figure studies. Across the bottom, add a wide section titled “Why He Matters” with a black brushstroke header and smaller Chinese subtitle text, followed by a paragraph of serif body text in English describing his importance to comics, painting, calligraphy, cinema, and epic storytelling. Use a restrained palette of sepia, black ink, off-white paper, muted gray, with small accents of deep red and occasional blue. The whole image should feel like a refined cultural tribute poster, dense but balanced, highly detailed, painterly, and authentic to Chinese ink aesthetics.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;水象星座角色海报&#34;&gt;水象星座角色海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/komorimedia/status/2048114825398731143&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/komorimedia&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@komorimedia&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/066.webp&#34;
	width=&#34;848&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/066_hu_fa9b9087f2064039.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/066_hu_d08b612af3d235a1.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;水象星座角色海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;70&#34;
		data-flex-basis=&#34;169px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{&amp;#34;type&amp;#34;:&amp;#34;Chinese zodiac-style character infographic poster&amp;#34;,&amp;#34;subject&amp;#34;:&amp;#34;twelve zodiac character list, water signs edition&amp;#34;,&amp;#34;language&amp;#34;:&amp;#34;Traditional Chinese&amp;#34;,&amp;#34;format&amp;#34;:&amp;#34;vertical poster&amp;#34;,&amp;#34;style&amp;#34;:{&amp;#34;overall&amp;#34;:&amp;#34;elegant anime-inspired character catalog with editorial infographic layout&amp;#34;,&amp;#34;rendering&amp;#34;:&amp;#34;soft polished digital illustration, pastel gradients, delicate sparkles, ornamental border design&amp;#34;,&amp;#34;mood&amp;#34;:&amp;#34;dreamy, celestial, refined, feminine, aquatic&amp;#34;},&amp;#34;canvas&amp;#34;:{&amp;#34;aspect_ratio&amp;#34;:&amp;#34;2:3&amp;#34;,&amp;#34;background&amp;#34;:&amp;#34;very light pearl white with pale blue-lavender tint, subtle texture, thin decorative frame with filigree corners and tiny stars&amp;#34;},&amp;#34;header&amp;#34;:{&amp;#34;title&amp;#34;:&amp;#34;{argument name=\&amp;#34;headline text\&amp;#34; default=\&amp;#34;十二星座角色清單|水象星座\&amp;#34;}&amp;#34;,&amp;#34;subtitle&amp;#34;:&amp;#34;感受・直覺・共鳴&amp;#34;,&amp;#34;icons&amp;#34;:[&amp;#34;small stars&amp;#34;,&amp;#34;water droplet emblem in top right&amp;#34;,&amp;#34;curled cloud-like line art in top left&amp;#34;]},&amp;#34;layout&amp;#34;:{&amp;#34;sections_count&amp;#34;:3,&amp;#34;sections&amp;#34;:[{&amp;#34;title&amp;#34;:&amp;#34;巨蟹座 Cancer&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;top panel&amp;#34;,&amp;#34;theme_color&amp;#34;:&amp;#34;powder blue&amp;#34;,&amp;#34;zodiac_symbol&amp;#34;:&amp;#34;Cancer glyph inside circle at left&amp;#34;,&amp;#34;constellation&amp;#34;:&amp;#34;Cancer constellation at upper right&amp;#34;,&amp;#34;count&amp;#34;:6,&amp;#34;labels&amp;#34;:[&amp;#34;元素:水&amp;#34;,&amp;#34;概念:情感守護者,把人放在心上&amp;#34;,&amp;#34;性格:溫柔、敏感、顧家&amp;#34;,&amp;#34;行動原則:先確認感受,再保護重要的人&amp;#34;,&amp;#34;戀愛傾向:慢慢靠近,越熟越黏&amp;#34;,&amp;#34;人際怪癖:嘴上說沒事,實際會記很久&amp;#34;],&amp;#34;character&amp;#34;:{&amp;#34;identity&amp;#34;:&amp;#34;same young woman model reimagined as zodiac character&amp;#34;,&amp;#34;pose&amp;#34;:&amp;#34;half-body portrait, facing forward, arms gently wrapped around a large seashell pillow&amp;#34;,&amp;#34;hair&amp;#34;:&amp;#34;long dark hair in a low ponytail&amp;#34;,&amp;#34;outfit&amp;#34;:&amp;#34;light blue celestial slip dress with lace trim and sheer cardigan embroidered with stars and moons&amp;#34;,&amp;#34;accessories&amp;#34;:&amp;#34;minimal jewelry&amp;#34;,&amp;#34;background&amp;#34;:&amp;#34;soft blue night sky with crescent moon, seashell, sparkling stars, stylized ocean wave and tiny water droplets&amp;#34;}},{&amp;#34;title&amp;#34;:&amp;#34;天蠍座 Scorpio&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;middle panel&amp;#34;,&amp;#34;theme_color&amp;#34;:&amp;#34;deep violet&amp;#34;,&amp;#34;zodiac_symbol&amp;#34;:&amp;#34;Scorpio glyph inside circle at left&amp;#34;,&amp;#34;constellation&amp;#34;:&amp;#34;Scorpio constellation at upper right&amp;#34;,&amp;#34;count&amp;#34;:6,&amp;#34;labels&amp;#34;:[&amp;#34;元素:水&amp;#34;,&amp;#34;概念:深海偵察者,情緒有深度&amp;#34;,&amp;#34;性格:專注、神秘、意志強&amp;#34;,&amp;#34;行動原則:先觀察,再一擊到位&amp;#34;,&amp;#34;戀愛傾向:愛得深,重忠誠與獨占感&amp;#34;,&amp;#34;人際怪癖:越在乎越不說,會偷偷試探&amp;#34;],&amp;#34;character&amp;#34;:{&amp;#34;identity&amp;#34;:&amp;#34;same young woman model reimagined as zodiac character&amp;#34;,&amp;#34;pose&amp;#34;:&amp;#34;half-body portrait, one hand near chin in a composed, enigmatic gesture&amp;#34;,&amp;#34;hair&amp;#34;:&amp;#34;long dark ponytail&amp;#34;,&amp;#34;outfit&amp;#34;:&amp;#34;black semi-sheer dress with gothic details and a dark plum off-shoulder shawl&amp;#34;,&amp;#34;accessories&amp;#34;:&amp;#34;dangling earrings and layered necklace&amp;#34;,&amp;#34;background&amp;#34;:&amp;#34;dark purple celestial sea scene with crescent moon, bubbles, stars, and curling misty water shapes&amp;#34;}},{&amp;#34;title&amp;#34;:&amp;#34;雙魚座 Pisces&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;bottom panel&amp;#34;,&amp;#34;theme_color&amp;#34;:&amp;#34;lavender&amp;#34;,&amp;#34;zodiac_symbol&amp;#34;:&amp;#34;Pisces glyph inside circle at left&amp;#34;,&amp;#34;constellation&amp;#34;:&amp;#34;Pisces constellation at upper right&amp;#34;,&amp;#34;count&amp;#34;:6,&amp;#34;labels&amp;#34;:[&amp;#34;元素:水&amp;#34;,&amp;#34;概念:夢境共感者,靠直覺導航&amp;#34;,&amp;#34;性格:浪漫、柔軟、有想像力&amp;#34;,&amp;#34;行動原則:先感受,再順流找答案&amp;#34;,&amp;#34;戀愛傾向:容易心動,渴望靈魂陪伴&amp;#34;,&amp;#34;人際怪癖:常把別人的情緒也一起感受&amp;#34;],&amp;#34;character&amp;#34;:{&amp;#34;identity&amp;#34;:&amp;#34;same young woman model reimagined as zodiac character&amp;#34;,&amp;#34;pose&amp;#34;:&amp;#34;half-body portrait, one hand lifted as if balancing floating bubbles, other hand resting lightly at chest&amp;#34;,&amp;#34;hair&amp;#34;:&amp;#34;long dark ponytail with a pale flower hair ornament&amp;#34;,&amp;#34;outfit&amp;#34;:&amp;#34;translucent lavender fantasy dress with soft draped sleeves and shimmering fabric&amp;#34;,&amp;#34;accessories&amp;#34;:&amp;#34;delicate earrings and necklace&amp;#34;,&amp;#34;background&amp;#34;:&amp;#34;pale lilac underwater-celestial blend with bubbles, sparkles, and flowing translucent wave forms&amp;#34;}}],&amp;#34;dividers&amp;#34;:&amp;#34;three horizontal framed panels with thin ornamental borders&amp;#34;},&amp;#34;footer&amp;#34;:{&amp;#34;center_icon&amp;#34;:&amp;#34;small blue seashell emblem&amp;#34;,&amp;#34;decorations&amp;#34;:[&amp;#34;tiny stars&amp;#34;,&amp;#34;fine scrollwork&amp;#34;]},&amp;#34;constraints&amp;#34;:[&amp;#34;all three zodiac entries must use the same woman as the base character with different styling, clothing, pose, and mood&amp;#34;,&amp;#34;text should be clean, editorial, and readable&amp;#34;,&amp;#34;each panel should clearly separate illustration area on the left and text block on the right&amp;#34;,&amp;#34;maintain cohesive water-element theme across all 3 signs&amp;#34;,&amp;#34;do not include the other nine zodiac signs in this image&amp;#34;]}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;土象星座角色海报&#34;&gt;土象星座角色海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/komorimedia/status/2048114825398731143&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/komorimedia&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@komorimedia&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/067.webp&#34;
	width=&#34;848&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/067_hu_f718ee29bebcc79f.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/067_hu_b8570c65f3d8c476.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;土象星座角色海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;70&#34;
		data-flex-basis=&#34;169px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{&amp;#34;type&amp;#34;:&amp;#34;vintage zodiac character infographic poster&amp;#34;,&amp;#34;theme&amp;#34;:&amp;#34;earth signs only&amp;#34;,&amp;#34;language&amp;#34;:&amp;#34;Traditional Chinese&amp;#34;,&amp;#34;style&amp;#34;:{&amp;#34;overall&amp;#34;:&amp;#34;elegant editorial infographic with soft anime-inspired live-action portrait compositing&amp;#34;,&amp;#34;palette&amp;#34;:&amp;#34;warm beige, cream, taupe, olive-gray, muted brown, antique gold&amp;#34;,&amp;#34;mood&amp;#34;:&amp;#34;stable, refined, calm, practical&amp;#34;,&amp;#34;texture&amp;#34;:&amp;#34;aged paper background with subtle speckles and thin ornamental borders&amp;#34;,&amp;#34;rendering&amp;#34;:&amp;#34;clean high-resolution print poster, soft lighting, delicate botanical and celestial line art&amp;#34;},&amp;#34;poster&amp;#34;:{&amp;#34;orientation&amp;#34;:&amp;#34;vertical&amp;#34;,&amp;#34;aspect_ratio&amp;#34;:&amp;#34;3:4&amp;#34;,&amp;#34;title&amp;#34;:&amp;#34;十二星座角色清單|土象星座&amp;#34;,&amp;#34;subtitle&amp;#34;:&amp;#34;穩定・務實・沉著&amp;#34;,&amp;#34;decorations&amp;#34;:[&amp;#34;ornamental corner filigree&amp;#34;,&amp;#34;small gold sparkles&amp;#34;,&amp;#34;botanical branches&amp;#34;,&amp;#34;mountain illustrations&amp;#34;,&amp;#34;thin panel dividers&amp;#34;],&amp;#34;sections_count&amp;#34;:3},&amp;#34;layout&amp;#34;:{&amp;#34;sections&amp;#34;:[{&amp;#34;title&amp;#34;:&amp;#34;金牛座 Taurus&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;top&amp;#34;,&amp;#34;count&amp;#34;:1,&amp;#34;labels&amp;#34;:[&amp;#34;元素:土&amp;#34;,&amp;#34;概念:感官收藏家,穩穩生活&amp;#34;,&amp;#34;性格:務實、耐心、重享受&amp;#34;,&amp;#34;行動原則:先確認值得,再長線投入&amp;#34;,&amp;#34;戀愛傾向:慢熱但專情,重安全感&amp;#34;,&amp;#34;人際怪癖:對喜歡的人會默默餵食&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;處女座 Virgo&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;middle&amp;#34;,&amp;#34;count&amp;#34;:1,&amp;#34;labels&amp;#34;:[&amp;#34;元素:土&amp;#34;,&amp;#34;概念:秩序管理者,細節控場&amp;#34;,&amp;#34;性格:理性、細膩、可靠&amp;#34;,&amp;#34;行動原則:先整理,再精準出手&amp;#34;,&amp;#34;戀愛傾向:用照顧和實際行動表達喜歡&amp;#34;,&amp;#34;人際怪癖:嘴上挑剔,心裡其實很在乎&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;摩羯座 Capricorn&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;bottom&amp;#34;,&amp;#34;count&amp;#34;:1,&amp;#34;labels&amp;#34;:[&amp;#34;元素:土&amp;#34;,&amp;#34;概念:登峰實幹家,目標導向&amp;#34;,&amp;#34;性格:穩重、自律、有責任感&amp;#34;,&amp;#34;行動原則:先規劃,再穩定推進&amp;#34;,&amp;#34;戀愛傾向:慢熟務實,願意長期承諾&amp;#34;,&amp;#34;人際怪癖:關心常包裝成提醒與安排&amp;#34;]}],&amp;#34;centerpiece&amp;#34;:&amp;#34;three stacked horizontal character cards, each with a portrait on the left and text profile on the right&amp;#34;},&amp;#34;character&amp;#34;:{&amp;#34;identity&amp;#34;:&amp;#34;the same young East Asian woman appears in all 3 sections&amp;#34;,&amp;#34;age&amp;#34;:&amp;#34;early 20s&amp;#34;,&amp;#34;hair&amp;#34;:&amp;#34;long dark brown to black hair in a low ponytail with side part&amp;#34;,&amp;#34;face&amp;#34;:&amp;#34;soft feminine features, natural makeup, calm expression&amp;#34;,&amp;#34;customization&amp;#34;:&amp;#34;keep the same base character across all zodiac entries, differentiated by wardrobe, pose, props, and themed background motifs&amp;#34;},&amp;#34;cards&amp;#34;:[{&amp;#34;sign&amp;#34;:&amp;#34;Taurus&amp;#34;,&amp;#34;symbol&amp;#34;:&amp;#34;♉&amp;#34;,&amp;#34;portrait&amp;#34;:{&amp;#34;pose&amp;#34;:&amp;#34;waist-up, slightly turned, holding a ceramic mug with both hands&amp;#34;,&amp;#34;outfit&amp;#34;:&amp;#34;cream knit sleeveless top under a soft sage-gray cardigan with delicate floral embroidery&amp;#34;,&amp;#34;expression&amp;#34;:&amp;#34;gentle, relaxed, nurturing&amp;#34;,&amp;#34;props_count&amp;#34;:1,&amp;#34;props&amp;#34;:[&amp;#34;mug&amp;#34;]},&amp;#34;background&amp;#34;:&amp;#34;large pale circular halo, floral branch illustration, soft botanical motifs, small mountain drawing in upper right&amp;#34;,&amp;#34;visual_concept&amp;#34;:&amp;#34;comfort, sensuality, domestic calm, slow living&amp;#34;},{&amp;#34;sign&amp;#34;:&amp;#34;Virgo&amp;#34;,&amp;#34;symbol&amp;#34;:&amp;#34;♍&amp;#34;,&amp;#34;portrait&amp;#34;:{&amp;#34;pose&amp;#34;:&amp;#34;waist-up, one hand holding a pen near the chin, the other arm holding an open notebook or planner&amp;#34;,&amp;#34;outfit&amp;#34;:&amp;#34;light cream blouse with a bow tie collar under a pale sage vest with gold buttons&amp;#34;,&amp;#34;expression&amp;#34;:&amp;#34;thoughtful, analytical, composed&amp;#34;,&amp;#34;props_count&amp;#34;:2,&amp;#34;props&amp;#34;:[&amp;#34;pen&amp;#34;,&amp;#34;notebook&amp;#34;]},&amp;#34;background&amp;#34;:&amp;#34;fine geometric diagram lines, botanical sprigs, diamond emblem with leaf motif&amp;#34;,&amp;#34;visual_concept&amp;#34;:&amp;#34;order, precision, intelligence, organization&amp;#34;},{&amp;#34;sign&amp;#34;:&amp;#34;Capricorn&amp;#34;,&amp;#34;symbol&amp;#34;:&amp;#34;♑&amp;#34;,&amp;#34;portrait&amp;#34;:{&amp;#34;pose&amp;#34;:&amp;#34;waist-up, arms crossed, confident upright stance&amp;#34;,&amp;#34;outfit&amp;#34;:&amp;#34;charcoal tailored blazer over a dark vest and crisp white shirt, small round lapel pin&amp;#34;,&amp;#34;expression&amp;#34;:&amp;#34;serious, disciplined, self-assured&amp;#34;,&amp;#34;props_count&amp;#34;:0,&amp;#34;props&amp;#34;:[]},&amp;#34;background&amp;#34;:&amp;#34;dramatic layered mountain landscape in sepia tones with subtle star-like sparkles&amp;#34;,&amp;#34;visual_concept&amp;#34;:&amp;#34;ambition, endurance, authority, climbing toward goals&amp;#34;}],&amp;#34;typography&amp;#34;:{&amp;#34;title_font&amp;#34;:&amp;#34;classic high-contrast serif Chinese type&amp;#34;,&amp;#34;sign_name_font&amp;#34;:&amp;#34;large bold Chinese serif with elegant italic Latin zodiac name&amp;#34;,&amp;#34;body_font&amp;#34;:&amp;#34;clean readable Chinese print font&amp;#34;,&amp;#34;icon_style&amp;#34;:&amp;#34;filled circular brown icons next to each bullet line&amp;#34;},&amp;#34;composition&amp;#34;:{&amp;#34;margin&amp;#34;:&amp;#34;generous cream margins&amp;#34;,&amp;#34;panel_style&amp;#34;:&amp;#34;rounded rectangular panels with thin gold-brown borders&amp;#34;,&amp;#34;spacing&amp;#34;:&amp;#34;even vertical stacking with narrow separators&amp;#34;,&amp;#34;text_alignment&amp;#34;:&amp;#34;left-aligned profile bullets on the right side of each card&amp;#34;}}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;火象星座角色海报&#34;&gt;火象星座角色海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/komorimedia/status/2048114825398731143&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/komorimedia&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@komorimedia&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/068.webp&#34;
	width=&#34;848&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/068_hu_7ef6d97057f11809.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/068_hu_ea85fb4d58a7f224.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;火象星座角色海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;70&#34;
		data-flex-basis=&#34;169px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A polished vertical infographic poster in elegant East Asian editorial style, themed around the fire signs of the zodiac using one consistent female character reimagined in three different costumes. Cream parchment background with thin ornamental borders, small corner flourishes, tiny sparkles, and warm red-orange-gold accents throughout. Large Chinese headline at the top reading {argument name=&amp;#34;headline text&amp;#34; default=&amp;#34;十二星座角色清單|火象星座&amp;#34;}, with a smaller subheading beneath reading {argument name=&amp;#34;subheading text&amp;#34; default=&amp;#34;熱情・行動・勇氣&amp;#34;}, and a decorative flame icon at the top right. The layout contains exactly 3 stacked profile panels with rounded rectangular borders and generous margins: Aries on top, Leo in the middle, Sagittarius on the bottom. Each panel is split visually with the character on the left and a text/spec area on the right, plus a zodiac symbol badge on the far left and a small constellation diagram on the far right.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Use the same young East Asian woman in all 3 panels, slim build, long dark hair in a high ponytail, shown from about thigh-up to waist-up, facing slightly toward camera, styled as a fashion-model zodiac character sheet. Keep facial features neutral and refined, clean beauty lighting, soft airbrushed illustration-photo composite look.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Panel 1: Aries. Chinese title and English subtitle: &amp;#34;牡羊座 Aries&amp;#34;. Dominant color scheme: vivid red with warm coral highlights. Zodiac symbol badge shows Aries glyph. Constellation on the right. Behind the character, faint circular mystical line art and flame motifs. Outfit: sporty warrior idol styling with a white crop top, red open short-sleeve jacket with gold trim, red belt, and red wrist wraps or fingerless arm accessories. Pose: confident, energetic, one fist raised near the shoulder and the other hand on her hip. Include exactly 6 info lines with small circular icons before each line, all in Chinese: 1) &amp;#34;元素:火&amp;#34; 2) &amp;#34;概念:點火者,直覺先行&amp;#34; 3) &amp;#34;性格:熱情、直接、好勝&amp;#34; 4) &amp;#34;行動原則:先衝再修正&amp;#34; 5) &amp;#34;戀愛傾向:心動就追,喜歡熱烈互動&amp;#34; 6) &amp;#34;人際怪癖:嫌節奏太慢時會自己接手&amp;#34;.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Panel 2: Leo. Chinese title and English subtitle: &amp;#34;獅子座 Leo&amp;#34;. Dominant color scheme: gold, champagne, and soft amber. Zodiac symbol badge shows Leo glyph. Constellation on the right. Background includes radiant sunburst styling and a faint majestic lion illustration silhouette behind the character. Outfit: glamorous regal gown in pale gold with ornate embroidery, jeweled bodice details, flowing translucent cape sleeves, elegant necklace, and a small crown or tiara. Pose: poised and queenly, one hand lightly touching the chest or collarbone, shoulders open, projecting confidence and star power. Include exactly 6 info lines with small circular icons before each line, all in Chinese: 1) &amp;#34;元素:火&amp;#34; 2) &amp;#34;概念:舞台中心,自帶光芒&amp;#34; 3) &amp;#34;性格:大方、自信、要面子&amp;#34; 4) &amp;#34;行動原則:先定氣場,再帶隊前進&amp;#34; 5) &amp;#34;戀愛傾向:喜歡被偏愛,也樂於寵人&amp;#34; 6) &amp;#34;人際怪癖:明明在意,卻要裝沒事&amp;#34;.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Panel 3: Sagittarius. Chinese title and English subtitle: &amp;#34;射手座 Sagittarius&amp;#34;. Dominant color scheme: rust red, burnt orange, brown leather, and warm ivory. Zodiac symbol badge shows Sagittarius glyph. Constellation on the right. Background features faint compass-circle graphics and flame accents. Outfit: adventurous archer styling with an ivory blouse, red scarf, brown leather harness straps, utility belt, and arm bracers. Pose: dynamic action shot drawing a bow, arrow aimed to the right, with a small glowing spark at the bow grip or arrow rest. Include exactly 6 info lines with small circular icons before each line, all in Chinese: 1) &amp;#34;元素:火&amp;#34; 2) &amp;#34;概念:自由旅人,邊走邊發現&amp;#34; 3) &amp;#34;性格:樂觀、坦率、好奇&amp;#34; 4) &amp;#34;行動原則:先出發,路上再找答案&amp;#34; 5) &amp;#34;戀愛傾向:喜歡輕鬆真誠,不愛被綁住&amp;#34; 6) &amp;#34;人際怪癖:聊到一半常被新鮮事帶走&amp;#34;.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Overall design should feel premium, feminine, mystical, and collectible, like a social-media-ready zodiac character list poster. Use elegant serif-style Chinese typography for the main sign names and italic calligraphic English for Aries, Leo, and Sagittarius. Keep all text crisp, aligned, and readable. Add one small decorative fire emblem centered near the bottom border. Aspect ratio 3:4 portrait.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;风象星座角色海报&#34;&gt;风象星座角色海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/komorimedia/status/2048114825398731143&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/komorimedia&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@komorimedia&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/069.webp&#34;
	width=&#34;848&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/069_hu_42522190a4347a3c.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/069_hu_cb063e06d04af3cd.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;风象星座角色海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;70&#34;
		data-flex-basis=&#34;169px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{&amp;#34;type&amp;#34;:&amp;#34;Chinese zodiac-themed character infographic poster&amp;#34;,&amp;#34;format&amp;#34;:&amp;#34;vertical poster&amp;#34;,&amp;#34;aspect_ratio&amp;#34;:&amp;#34;3:4&amp;#34;,&amp;#34;style&amp;#34;:&amp;#34;clean pastel editorial infographic with anime-inspired fashion photography, soft magical accents, elegant horoscope design, premium magazine layout&amp;#34;,&amp;#34;background&amp;#34;:{&amp;#34;color&amp;#34;:&amp;#34;warm ivory&amp;#34;,&amp;#34;border&amp;#34;:&amp;#34;thin decorative gold frame with small ornamental corners and tiny sparkles&amp;#34;,&amp;#34;top_right_motif&amp;#34;:&amp;#34;large pale air-element swirl ornament&amp;#34;},&amp;#34;title_block&amp;#34;:{&amp;#34;headline&amp;#34;:&amp;#34;十二星座角色清單|風象星座&amp;#34;,&amp;#34;subheadline&amp;#34;:&amp;#34;靈活・交流・思辨&amp;#34;,&amp;#34;alignment&amp;#34;:&amp;#34;top center&amp;#34;,&amp;#34;headline_color&amp;#34;:&amp;#34;deep desaturated blue&amp;#34;,&amp;#34;subheadline_color&amp;#34;:&amp;#34;muted gold&amp;#34;},&amp;#34;subject&amp;#34;:{&amp;#34;count&amp;#34;:3,&amp;#34;description&amp;#34;:&amp;#34;the same young East Asian woman used as the base character appears in 3 separate horoscope panels, each shown from about thigh-up to waist-up with long dark hair and soft feminine styling, photographed frontally and integrated into illustrated pastel zodiac backdrops&amp;#34;},&amp;#34;layout&amp;#34;:{&amp;#34;sections&amp;#34;:[{&amp;#34;title&amp;#34;:&amp;#34;雙子座 Gemini&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;top panel&amp;#34;,&amp;#34;count&amp;#34;:1,&amp;#34;theme_color&amp;#34;:&amp;#34;butter yellow and cream&amp;#34;,&amp;#34;zodiac_symbol&amp;#34;:&amp;#34;Gemini glyph inside a circle on the left&amp;#34;,&amp;#34;constellation&amp;#34;:&amp;#34;small Gemini constellation in the upper right&amp;#34;,&amp;#34;character_pose&amp;#34;:&amp;#34;playful double peace signs raised beside her face&amp;#34;,&amp;#34;outfit&amp;#34;:&amp;#34;pale yellow cardigan over a white ribbed crop top, light bottoms, yellow belt, delicate necklace&amp;#34;,&amp;#34;background_motifs_count&amp;#34;:4,&amp;#34;background_motifs&amp;#34;:[&amp;#34;speech bubble icon&amp;#34;,&amp;#34;sparkles&amp;#34;,&amp;#34;curved flowing lines&amp;#34;,&amp;#34;soft dots&amp;#34;],&amp;#34;text_items_count&amp;#34;:6,&amp;#34;text_items&amp;#34;:[&amp;#34;元素:風&amp;#34;,&amp;#34;概念:資訊玩家,靈感跳接&amp;#34;,&amp;#34;性格:機靈、善聊、多變&amp;#34;,&amp;#34;行動原則:先交流,再快速轉向&amp;#34;,&amp;#34;戀愛傾向:喜歡有趣互動與腦力火花&amp;#34;,&amp;#34;人際怪癖:話題切換速度快到像開分頁&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;天秤座 Libra&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;middle panel&amp;#34;,&amp;#34;count&amp;#34;:1,&amp;#34;theme_color&amp;#34;:&amp;#34;blush pink and pastel lavender&amp;#34;,&amp;#34;zodiac_symbol&amp;#34;:&amp;#34;Libra glyph inside a circle on the left&amp;#34;,&amp;#34;constellation&amp;#34;:&amp;#34;small Libra constellation in the upper right&amp;#34;,&amp;#34;character_pose&amp;#34;:&amp;#34;one hand raised open-palmed as if presenting balance, the other hand near her chin in an elegant thoughtful pose&amp;#34;,&amp;#34;outfit&amp;#34;:&amp;#34;pink blazer draped over shoulders, pastel pink-and-blue wrapped dress, jeweled belt, earrings, necklace, bracelet&amp;#34;,&amp;#34;background_motifs_count&amp;#34;:4,&amp;#34;background_motifs&amp;#34;:[&amp;#34;scales illustration&amp;#34;,&amp;#34;flowing ribbon-like swirls&amp;#34;,&amp;#34;sparkles&amp;#34;,&amp;#34;soft gradient haze&amp;#34;],&amp;#34;text_items_count&amp;#34;:6,&amp;#34;text_items&amp;#34;:[&amp;#34;元素:風&amp;#34;,&amp;#34;概念:關係設計師,追求平衡&amp;#34;,&amp;#34;性格:優雅、圓融、審美強&amp;#34;,&amp;#34;行動原則:先衡量,再找最順解法&amp;#34;,&amp;#34;戀愛傾向:重氛圍與互相體面&amp;#34;,&amp;#34;人際怪癖:選太久,但又很會照顧場面&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;水瓶座 Aquarius&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;bottom panel&amp;#34;,&amp;#34;count&amp;#34;:1,&amp;#34;theme_color&amp;#34;:&amp;#34;lavender, icy blue, and silver&amp;#34;,&amp;#34;zodiac_symbol&amp;#34;:&amp;#34;Aquarius glyph inside a circle on the left&amp;#34;,&amp;#34;constellation&amp;#34;:&amp;#34;small Aquarius constellation in the upper right&amp;#34;,&amp;#34;character_pose&amp;#34;:&amp;#34;holding and tilting a futuristic transparent vessel as glowing water-like energy pours out in looping streams&amp;#34;,&amp;#34;outfit&amp;#34;:&amp;#34;metallic silver crop top and skirt set with translucent iridescent jacket, futuristic straps, reflective accessories&amp;#34;,&amp;#34;background_motifs_count&amp;#34;:4,&amp;#34;background_motifs&amp;#34;:[&amp;#34;glowing circular energy rings&amp;#34;,&amp;#34;constellation lines&amp;#34;,&amp;#34;sparkles&amp;#34;,&amp;#34;light trails&amp;#34;],&amp;#34;text_items_count&amp;#34;:6,&amp;#34;text_items&amp;#34;:[&amp;#34;元素:風&amp;#34;,&amp;#34;概念:未來觀察員,規則改革者&amp;#34;,&amp;#34;性格:獨立、理想派、腦洞大&amp;#34;,&amp;#34;行動原則:先思考原理,再另闢路線&amp;#34;,&amp;#34;戀愛傾向:重精神共鳴,也需要個人空間&amp;#34;,&amp;#34;人際怪癖:忽冷忽熱,其實是在充電&amp;#34;]}],&amp;#34;panel_count&amp;#34;:3},&amp;#34;typography&amp;#34;:{&amp;#34;languages&amp;#34;:[&amp;#34;Traditional Chinese&amp;#34;,&amp;#34;English zodiac names&amp;#34;],&amp;#34;headline_font&amp;#34;:&amp;#34;elegant high-contrast serif&amp;#34;,&amp;#34;body_font&amp;#34;:&amp;#34;clean legible Chinese serif or sans-serif hybrid&amp;#34;,&amp;#34;zodiac_english&amp;#34;:&amp;#34;italic calligraphic serif&amp;#34;},&amp;#34;visual_rules&amp;#34;:{&amp;#34;each_panel_has&amp;#34;:8,&amp;#34;panel_elements&amp;#34;:[&amp;#34;left zodiac glyph badge&amp;#34;,&amp;#34;center-left character&amp;#34;,&amp;#34;right text block&amp;#34;,&amp;#34;English zodiac name&amp;#34;,&amp;#34;small constellation&amp;#34;,&amp;#34;pastel illustrated background motifs&amp;#34;,&amp;#34;thin panel border&amp;#34;,&amp;#34;6 bullet-style info lines with icons&amp;#34;],&amp;#34;spacing&amp;#34;:&amp;#34;generous margins and symmetrical alignment&amp;#34;,&amp;#34;render_quality&amp;#34;:&amp;#34;high resolution, crisp print-ready infographic&amp;#34;}}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;藏族礼仪帽民族志图版&#34;&gt;藏族礼仪帽民族志图版
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/degewa/status/2048104569037783226&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/degewa&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@degewa&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/070.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/070_hu_9defc08da0469adb.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/070_hu_9668df56d438f17a.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;藏族礼仪帽民族志图版&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Using REFERENCE_0 and REFERENCE_1, create a clean ethnographic archive plate focused on the ceremonial hat. Use REFERENCE_0 as the historical Tibetan context and silhouette reference, and REFERENCE_1 as the color, material, and ornament reference for the hat. Isolate and reconstruct the hat as a museum-style object study, removing the seated body as the main subject. Present the hat on an off-white document page as a scholarly catalog sheet in Chinese with small romanization. Add 8 numbered callouts around the object with fine dashed leader lines, each pointing to a specific structural detail. The centerpiece should be one large three-quarter underside view of the hat. Also include exactly 4 supplementary views/details: 1 side-profile wearing sketch with a faint line-drawn bust, 1 underside interior view, 1 top-down view, and 2 square close-up material swatches. Add exactly 4 thread-color samples near the lower right: blue, red, white, and yellow. At the top center, add the large title {argument name=&amp;#34;headline text&amp;#34; default=&amp;#34;唐徐帽&amp;#34;} with the romanization {argument name=&amp;#34;romanization&amp;#34; default=&amp;#34;(thang zhwa)&amp;#34;} beneath it, plus a smaller subtitle describing it as a summer ceremonial hat of high-ranking Tibetan monks. In the upper left, add a boxed metadata panel with multiple short Chinese fields, and in the upper right add a plate number reading {argument name=&amp;#34;plate number&amp;#34; default=&amp;#34;图版 No. 27&amp;#34;}. At the bottom, add one bordered note paragraph in Chinese. Overall style: meticulous archival infographic, anthropological catalog illustration, historically informed, precise woven texture, ivory-gold base with blue and red ornament, elegant print layout, thin rules and decorative divider marks, high-detail object rendering on a plain paper background.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;复古-prs-吉他谱系海报&#34;&gt;复古 PRS 吉他谱系海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/GlennHasABeard/status/2048087784141857235&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/GlennHasABeard&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@GlennHasABeard&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/071.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/071_hu_c00ca7ff3d8542ef.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/071_hu_3776a06329c3d552.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;复古 PRS 吉他谱系海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{&amp;#34;type&amp;#34;:&amp;#34;luxury vintage guitar comparison infographic poster&amp;#34;,&amp;#34;subject&amp;#34;:&amp;#34;a highly detailed, vertically oriented PRS electric guitar lineup chart designed like a premium museum poster or collector&amp;#39;s reference board&amp;#34;,&amp;#34;style&amp;#34;:&amp;#34;ornate, dark, glossy, high-contrast, gold-foil typography, elegant wood-and-metal textures, symmetrical grid layout, premium catalog aesthetic, subtle vintage patina, ultra sharp graphic design&amp;#34;,&amp;#34;branding&amp;#34;:{&amp;#34;main headline&amp;#34;:&amp;#34;THE LEGENDARY LINEAGE OF {argument name=\&amp;#34;brand name\&amp;#34; default=\&amp;#34;PRS GUITARS\&amp;#34;}&amp;#34;,&amp;#34;subheadline&amp;#34;:&amp;#34;EVERY ICON. EVERY LINE. ONE HERITAGE.&amp;#34;,&amp;#34;signature&amp;#34;:&amp;#34;Paul Reed Smith&amp;#34;,&amp;#34;left seal&amp;#34;:&amp;#34;PAUL REED SMITH GUITARS&amp;#34;,&amp;#34;right seal&amp;#34;:&amp;#34;MADE IN MARYLAND U.S.A.&amp;#34;},&amp;#34;palette&amp;#34;:{&amp;#34;background&amp;#34;:&amp;#34;black and deep charcoal with dark figured wood accents&amp;#34;,&amp;#34;primary&amp;#34;:&amp;#34;antique gold&amp;#34;,&amp;#34;secondary&amp;#34;:&amp;#34;cream&amp;#34;,&amp;#34;accent colors&amp;#34;:[&amp;#34;deep green&amp;#34;,&amp;#34;teal&amp;#34;,&amp;#34;royal blue&amp;#34;,&amp;#34;purple&amp;#34;,&amp;#34;gold&amp;#34;,&amp;#34;burgundy&amp;#34;]},&amp;#34;layout&amp;#34;:{&amp;#34;format&amp;#34;:&amp;#34;single-page vertical poster&amp;#34;,&amp;#34;header&amp;#34;:{&amp;#34;position&amp;#34;:&amp;#34;top&amp;#34;,&amp;#34;elements&amp;#34;:[&amp;#34;large central title&amp;#34;,&amp;#34;small tagline below&amp;#34;,&amp;#34;script signature&amp;#34;,&amp;#34;2 circular emblems in upper left and upper right&amp;#34;,&amp;#34;3 horizontal legend boxes under the title&amp;#34;]},&amp;#34;sections&amp;#34;:[{&amp;#34;title&amp;#34;:&amp;#34;PRESTIGE TIER KEY&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;upper left below title&amp;#34;,&amp;#34;count&amp;#34;:6,&amp;#34;labels&amp;#34;:[&amp;#34;SE&amp;#34;,&amp;#34;S2&amp;#34;,&amp;#34;CE&amp;#34;,&amp;#34;CORE&amp;#34;,&amp;#34;WOOD LIBRARY&amp;#34;,&amp;#34;PRIVATE STOCK&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;PICKUP ICON KEY&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;upper center-right below title&amp;#34;,&amp;#34;count&amp;#34;:7,&amp;#34;labels&amp;#34;:[&amp;#34;HH&amp;#34;,&amp;#34;HSH&amp;#34;,&amp;#34;P-90&amp;#34;,&amp;#34;SOAP&amp;#34;,&amp;#34;58/15&amp;#34;,&amp;#34;TCI&amp;#34;,&amp;#34;Bass&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;TONAL CHARACTER KEY&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;upper right below title&amp;#34;,&amp;#34;count&amp;#34;:7,&amp;#34;labels&amp;#34;:[&amp;#34;Warm / Vintage&amp;#34;,&amp;#34;Balanced / All-around&amp;#34;,&amp;#34;Bright / Articulate&amp;#34;,&amp;#34;High Gain / Modern&amp;#34;,&amp;#34;Blues / Classic Rock&amp;#34;,&amp;#34;Metal / Progressive&amp;#34;,&amp;#34;Funk / Soul / Clean&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;CORE&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;first main row left label&amp;#34;,&amp;#34;count&amp;#34;:7,&amp;#34;labels&amp;#34;:[&amp;#34;Custom 24&amp;#34;,&amp;#34;McCarty 594&amp;#34;,&amp;#34;DGT (David Grissom)&amp;#34;,&amp;#34;Custom 22&amp;#34;,&amp;#34;Hollowbody II&amp;#34;,&amp;#34;SC 594&amp;#34;,&amp;#34;row category panel&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;S2&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;second main row left label&amp;#34;,&amp;#34;count&amp;#34;:6,&amp;#34;labels&amp;#34;:[&amp;#34;S2 Custom 24&amp;#34;,&amp;#34;S2 McCarty 594&amp;#34;,&amp;#34;S2 Standard 24&amp;#34;,&amp;#34;S2 Vela&amp;#34;,&amp;#34;S2 Singlecut&amp;#34;,&amp;#34;S2 Mira&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;SE&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;third main row left label&amp;#34;,&amp;#34;count&amp;#34;:6,&amp;#34;labels&amp;#34;:[&amp;#34;SE Custom 24&amp;#34;,&amp;#34;SE Standard 24&amp;#34;,&amp;#34;SE Paul&amp;#39;s Guitar&amp;#34;,&amp;#34;SE Santana&amp;#34;,&amp;#34;SE Hollowbody II&amp;#34;,&amp;#34;SE Mark Holcomb&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;CE&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;fourth main row left label&amp;#34;,&amp;#34;count&amp;#34;:6,&amp;#34;labels&amp;#34;:[&amp;#34;CE 24&amp;#34;,&amp;#34;CE 22&amp;#34;,&amp;#34;CE 24 Semi-Hollow&amp;#34;,&amp;#34;CE 24 Floyd&amp;#34;,&amp;#34;CE 24 Satin&amp;#34;,&amp;#34;CE Bass&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;BOLT-ON SERIES&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;fifth main row left label&amp;#34;,&amp;#34;count&amp;#34;:6,&amp;#34;labels&amp;#34;:[&amp;#34;NF 53&amp;#34;,&amp;#34;Silver Sky&amp;#34;,&amp;#34;NF 3&amp;#34;,&amp;#34;NF 53 Satin&amp;#34;,&amp;#34;DGT Bolt-On&amp;#34;,&amp;#34;Studio&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;PRIVATE STOCK&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;sixth main row left label&amp;#34;,&amp;#34;count&amp;#34;:6,&amp;#34;labels&amp;#34;:[&amp;#34;Dragon I&amp;#34;,&amp;#34;Frostbite&amp;#34;,&amp;#34;#4004&amp;#34;,&amp;#34;The Tree of Life&amp;#34;,&amp;#34;#8731&amp;#34;,&amp;#34;PS DGT&amp;#34;]}],&amp;#34;footer&amp;#34;:{&amp;#34;position&amp;#34;:&amp;#34;bottom&amp;#34;,&amp;#34;elements&amp;#34;:[&amp;#34;small badge at lower left&amp;#34;,&amp;#34;centered company line&amp;#34;,&amp;#34;right-side script signature&amp;#34;]}},&amp;#34;content grid&amp;#34;:{&amp;#34;total guitar models shown&amp;#34;:37,&amp;#34;card design&amp;#34;:&amp;#34;each product card contains a guitar render, model name, year, small pickup icons, a short descriptive blurb, and origin/wood specs at the bottom&amp;#34;,&amp;#34;row side panels&amp;#34;:6},&amp;#34;visual details&amp;#34;:{&amp;#34;guitars&amp;#34;:&amp;#34;front-facing electric guitars with varied body shapes and highly polished figured maple tops, metallic and transparent finishes, some solid colors, some natural wood&amp;#34;,&amp;#34;typography&amp;#34;:&amp;#34;all caps serif headlines, small serif body text, script signature accents&amp;#34;,&amp;#34;borders&amp;#34;:&amp;#34;thin decorative gold rules around every panel and the full poster&amp;#34;,&amp;#34;lighting&amp;#34;:&amp;#34;studio-lit instruments against dark panel backgrounds&amp;#34;,&amp;#34;render quality&amp;#34;:&amp;#34;clean infographic precision with realistic product renders&amp;#34;},&amp;#34;camera&amp;#34;:&amp;#34;straight-on flat poster view, no perspective distortion, centered composition&amp;#34;,&amp;#34;quality&amp;#34;:&amp;#34;ultra detailed, print-ready, high-resolution editorial infographic, luxury brand poster&amp;#34;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;阿里山一日游旅行海报&#34;&gt;阿里山一日游旅行海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/TWnese/status/2048077204786212887&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/TWnese&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@TWnese&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/072.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/072_hu_5de06e0cd01c812b.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/072_hu_2721a3ee37bf1887.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;阿里山一日游旅行海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a vintage illustrated travel poster in traditional Chinese for {argument name=&amp;#34;destination name&amp;#34; default=&amp;#34;阿里山國家風景區&amp;#34;}, designed as a one-day itinerary infographic with a split vertical layout. The left panel is a parchment-textured itinerary card in warm beige with ornate gold Art Nouveau borders and dark brown typography, and the right panel is a dramatic painted fantasy-realism map scene of a mountain journey at sunrise and sunset tones. At the top of the left panel, large headline text reads {argument name=&amp;#34;headline text&amp;#34; default=&amp;#34;阿里山國家風景區一日遊&amp;#34;}. Beneath it, include a short centered tagline in traditional Chinese: 「一座高山,五個經典景點。難忘的奇幻旅程。」 with a small decorative mountain divider. The left panel must contain exactly 5 numbered itinerary stops stacked vertically, each with a circular black-and-gold number badge, a small vignette illustration, a bold location name, a time in parentheses, and a short Chinese description. The 5 stops are: 1. 「阿里山車站」 at 「(8:00 AM)」 with a wooden mountain railway station illustration and description 「開啟探索神木與森林的旅程。」 2. 「阿里山森林鐵路」 at 「(9:30 AM)」 with a red-and-black steam train illustration and description 「穿越森林,體驗百年林鐵風情。」 3. 「神木區棧道」 at 「(11:30 AM)」 with giant cedar trees and elevated wooden boardwalk illustration and description 「漫步千年巨木下,感受森林靈氣。」 4. 「姊妹潭」 at 「(1:30 PM)」 with a tranquil forest lake and pavilion illustration and description 「欣賞靜謐湖光,聆聽自然樂章。」 5. 「小笠原山展望台」 at 「(4:00 PM)」 with a wooden observation deck above clouds at sunset illustration and description 「觀賞壯闊山景與雲海,欣賞日落。」 The right panel should depict a continuous glowing golden path winding through exactly 5 numbered map markers that match the left panel labels in order, with black-and-gold marker plaques reading: 1 「阿里山車站」, 2 「阿里山森林鐵路」, 3 「神木區棧道」, 4 「姊妹潭」, 5 「小笠原山展望台」. Show stop 1 as a rustic alpine wooden station perched on a cliff among pine forests; stop 2 as a small steam locomotive traveling on a curved mountain railway with smoke drifting upward; stop 3 as towering ancient red cypress trees with a spiral and zigzag wooden walkway around the trunks; stop 4 as an emerald lake surrounded by dense forest with a small pavilion and arched bridge; stop 5 as a lookout deck on a peak above a sea of clouds, facing a glowing sunset. The environment should feature layered mountain ranges, mist-filled valleys, evergreen forests, golden-hour light, luminous cloud seas, and a romantic painterly atmosphere with rich detail. At the bottom right, add a decorative compass rose labeled N, E, S, W, plus a dark green and gold information box with exactly 2 stats in traditional Chinese: 「總距離 ~9公里 / 5.6英里」 and 「預計時間 全天 - 14,500步」. Overall style: premium tourism poster, painterly digital illustration, nostalgic national-park brochure aesthetic, highly detailed, warm sepia and gold accents, elegant composition, readable Chinese text, vertical 2:3 poster.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;舞蹈动作参考表&#34;&gt;舞蹈动作参考表
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Ciri_ai/status/2048074587955658848&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Ciri_ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Ciri_ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/073.webp&#34;
	width=&#34;1080&#34;
	height=&#34;611&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/073_hu_d0c36a5b8c2b80e0.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/073_hu_79ce36609849f62.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;舞蹈动作参考表&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;176&#34;
		data-flex-basis=&#34;424px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[STYLE]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;monochromatic grayscale illustration, 3D rendered character, clean instructional reference sheet, 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;white background, comic-style cell grid layout, technical diagram aesthetic
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[LAYOUT]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;4x4 grid layout, 16 panels total, each panel separated by thin black border lines, 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;numbered cells from 1 to 16, consistent panel size
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[CHARACTER]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{argument name=&amp;#34;character&amp;#34; default=&amp;#34;young female dancer, athletic build, ponytail hairstyle, crop top and baggy pants, sneakers&amp;#34;}, same character in all panels
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[PANEL STRUCTURE - per cell]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;top-left: bold number badge + {argument name=&amp;#34;title&amp;#34; default=&amp;#34;Korean title text&amp;#34;}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;center: full-body character pose illustration
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bottom-left: {argument name=&amp;#34;description&amp;#34; default=&amp;#34;Korean description text (3-4 lines)&amp;#34;}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;overlay: directional arrows indicating movement direction
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[ARROWS / MOTION INDICATORS]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curved arrows, straight arrows, circular rotation indicators, 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;placed around the character to show movement flow and direction
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[RENDERING STYLE]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;high detail 3D sculpt style, soft studio lighting, subtle shadows, 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;no color, grayscale shading, clean linework, game concept art quality
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[NEGATIVE]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;no background scenery, no color tones, no extra characters, 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;no cluttered backgrounds
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;动漫博物馆背景转换&#34;&gt;动漫博物馆背景转换
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Dakiny/status/2048175219966394695&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Dakiny&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Dakiny&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/074.webp&#34;
	width=&#34;1200&#34;
	height=&#34;804&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/074_hu_12694e8f33f66c40.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/074_hu_ad2db60cad455b09.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;动漫博物馆背景转换&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;149&#34;
		data-flex-basis=&#34;358px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Using the provided reference photo, recreate the same museum facade and frontal composition as a polished theatrical anime background illustration. Keep the architecture, signage, 3 flagpoles, broad steps, and overall layout consistent, but convert the image from realistic photography into a highly detailed hand-painted anime film style with clean linework, soft cel shading, gentle pastel stone colors, and crisp atmospheric lighting. Add dramatic sunlight from the upper right so the glass pyramid casts a large geometric lattice shadow across the central wall and left side of the entrance. Simplify and stylize the people into anime background characters, keeping the 2 visible groups: 1 lone figure on the left and 1 small cluster of 7 people near the center-right entrance. Preserve the clear blue-sky daytime mood while making the scene feel elegant, refined, and cinematic.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;16-姿势舞蹈战斗参考表&#34;&gt;16 姿势舞蹈战斗参考表
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/ExquisitMe/status/2048143577264402629&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/ExquisitMe&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@ExquisitMe&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/075.webp&#34;
	width=&#34;1199&#34;
	height=&#34;680&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/075_hu_6291dd73dfb1fe6a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/075_hu_9ed3fc068d4b623d.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;16 姿势舞蹈战斗参考表&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;176&#34;
		data-flex-basis=&#34;423px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{&amp;#34;type&amp;#34;:&amp;#34;pose reference sheet&amp;#34;,&amp;#34;subject&amp;#34;:{&amp;#34;theme&amp;#34;:&amp;#34;hip-hop dance and combat-ready movement chart&amp;#34;,&amp;#34;character&amp;#34;:{&amp;#34;count&amp;#34;:1,&amp;#34;gender_presentation&amp;#34;:&amp;#34;female&amp;#34;,&amp;#34;age_appearance&amp;#34;:&amp;#34;young adult&amp;#34;,&amp;#34;body_type&amp;#34;:&amp;#34;fit athletic dancer&amp;#34;,&amp;#34;skin_tone&amp;#34;:&amp;#34;light tan&amp;#34;,&amp;#34;hair&amp;#34;:{&amp;#34;color&amp;#34;:&amp;#34;black&amp;#34;,&amp;#34;style&amp;#34;:&amp;#34;high ponytail with loose strands&amp;#34;},&amp;#34;outfit&amp;#34;:{&amp;#34;count&amp;#34;:5,&amp;#34;items&amp;#34;:[&amp;#34;white sports bra or cropped athletic top&amp;#34;,&amp;#34;baggy purple jogger pants&amp;#34;,&amp;#34;white chunky sneakers&amp;#34;,&amp;#34;purple wristbands or forearm bands on both arms&amp;#34;,&amp;#34;small hoop earrings&amp;#34;]}}},&amp;#34;style&amp;#34;:{&amp;#34;image_type&amp;#34;:&amp;#34;photorealistic studio pose sheet&amp;#34;,&amp;#34;lighting&amp;#34;:&amp;#34;clean even studio lighting&amp;#34;,&amp;#34;background&amp;#34;:&amp;#34;plain light gray to white seamless backdrop&amp;#34;,&amp;#34;camera&amp;#34;:&amp;#34;full-body framing, straight-on view, consistent distance&amp;#34;,&amp;#34;rendering&amp;#34;:&amp;#34;sharp realistic anatomy, dynamic motion, slight shadow under feet&amp;#34;,&amp;#34;face&amp;#34;:&amp;#34;intentionally blurred or obscured&amp;#34;},&amp;#34;layout&amp;#34;:{&amp;#34;grid&amp;#34;:{&amp;#34;rows&amp;#34;:4,&amp;#34;columns&amp;#34;:4,&amp;#34;count&amp;#34;:16},&amp;#34;numbering&amp;#34;:{&amp;#34;count&amp;#34;:16,&amp;#34;labels&amp;#34;:[&amp;#34;1&amp;#34;,&amp;#34;2&amp;#34;,&amp;#34;3&amp;#34;,&amp;#34;4&amp;#34;,&amp;#34;5&amp;#34;,&amp;#34;6&amp;#34;,&amp;#34;7&amp;#34;,&amp;#34;8&amp;#34;,&amp;#34;9&amp;#34;,&amp;#34;10&amp;#34;,&amp;#34;11&amp;#34;,&amp;#34;12&amp;#34;,&amp;#34;13&amp;#34;,&amp;#34;14&amp;#34;,&amp;#34;15&amp;#34;,&amp;#34;16&amp;#34;],&amp;#34;position&amp;#34;:&amp;#34;top-left corner of each cell&amp;#34;},&amp;#34;cell_borders&amp;#34;:&amp;#34;thin black divider lines between all panels&amp;#34;},&amp;#34;poses&amp;#34;:{&amp;#34;count&amp;#34;:16,&amp;#34;items&amp;#34;:[{&amp;#34;label&amp;#34;:&amp;#34;1&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;wide low squat, knees bent outward, torso angled slightly left, both arms extended loosely in a defensive dance stance&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;2&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;deep side lunge to the left, left arm pointing straight left, right hand near the head, energetic directional pose&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;3&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;low crouch with one hand touching the floor, one knee bent under the body, opposite arm extended horizontally&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;4&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;upright one-leg balance, left knee lifted high, both arms spread outward for rhythm and balance&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;5&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;similar one-leg raised pose with the other leg supporting, arms stretched outward in a lighter dance variation&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;6&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;very wide grounded squat, torso pitched forward, one hand reaching toward the floor between the legs, other arm extended back&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;7&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;dramatic standing back arch, chest lifted upward, hips forward, both arms opened behind and to the sides&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;8&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;small jump or suspended squat, both feet off the floor, knees bent, arms spread wide symmetrically&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;9&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;floor-supported seated lean, one hand planted behind, one arm reaching diagonally upward, legs bent to one side&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;10&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;front-facing balance with one knee raised to hip height, one arm bent in guard position and the other extended sideways&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;11&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;deep lateral stance, feet far apart, knees bent, both hands raised open near shoulder level like a ready combat pose&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;12&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;low side lunge split, one hand planted on the floor, the other arm reaching vertically overhead, torso arched upward&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;13&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;standing backward lean with relaxed bent knees, chest up, arms hanging loosely behind in a groove pose&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;14&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;compact twisting crouch, weight low over bent legs, torso rotated, one arm pulled in and the other extended outward&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;15&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;very wide side lunge stretch, one hand to the floor near the front foot, opposite arm reaching diagonally overhead&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;16&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;one-leg lifted pose with knee high, one hand behind the head and the other arm extended forward, confident finishing stance&amp;#34;}]},&amp;#34;composition&amp;#34;:&amp;#34;show the same dancer in all 16 panels with consistent outfit and scale, centered within each frame, designed like a movement library or choreography reference chart&amp;#34;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;16-格舞蹈姿势参考表&#34;&gt;16 格舞蹈姿势参考表
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/ExquisitMe/status/2048143577264402629&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/ExquisitMe&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@ExquisitMe&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/076.webp&#34;
	width=&#34;1200&#34;
	height=&#34;680&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/076_hu_9cad5c551cf69b7b.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/076_hu_34fa4cea34edd581.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;16 格舞蹈姿势参考表&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;176&#34;
		data-flex-basis=&#34;423px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{&amp;#34;type&amp;#34;:&amp;#34;dance pose reference sheet&amp;#34;,&amp;#34;style&amp;#34;:&amp;#34;clean studio pose chart, photoreal fitness-dance reference, white seamless background, sharp full-body photography, soft even lighting, minimal shadows, thin black grid lines separating panels&amp;#34;,&amp;#34;subject&amp;#34;:{&amp;#34;count&amp;#34;:1,&amp;#34;person&amp;#34;:{&amp;#34;gender_presentation&amp;#34;:&amp;#34;female&amp;#34;,&amp;#34;age_appearance&amp;#34;:&amp;#34;young adult&amp;#34;,&amp;#34;build&amp;#34;:&amp;#34;slim athletic toned dancer&amp;#34;,&amp;#34;skin_tone&amp;#34;:&amp;#34;light tan&amp;#34;,&amp;#34;hair&amp;#34;:{&amp;#34;color&amp;#34;:&amp;#34;{argument name=\&amp;#34;hair color\&amp;#34; default=\&amp;#34;dark brown\&amp;#34;}&amp;#34;,&amp;#34;style&amp;#34;:&amp;#34;high ponytail with loose strands&amp;#34;},&amp;#34;outfit&amp;#34;:{&amp;#34;count&amp;#34;:3,&amp;#34;items&amp;#34;:[&amp;#34;white fitted sports bra or cropped athletic tank&amp;#34;,&amp;#34;baggy blue-gray jogger pants&amp;#34;,&amp;#34;white sneakers&amp;#34;]}}},&amp;#34;layout&amp;#34;:{&amp;#34;rows&amp;#34;:4,&amp;#34;columns&amp;#34;:4,&amp;#34;total_panels&amp;#34;:16,&amp;#34;numbering&amp;#34;:&amp;#34;black panel numbers in the top-left corner of each cell, labeled 1 through 16&amp;#34;,&amp;#34;sections&amp;#34;:[{&amp;#34;title&amp;#34;:&amp;#34;pose grid&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;full page&amp;#34;,&amp;#34;count&amp;#34;:16,&amp;#34;labels&amp;#34;:[&amp;#34;1&amp;#34;,&amp;#34;2&amp;#34;,&amp;#34;3&amp;#34;,&amp;#34;4&amp;#34;,&amp;#34;5&amp;#34;,&amp;#34;6&amp;#34;,&amp;#34;7&amp;#34;,&amp;#34;8&amp;#34;,&amp;#34;9&amp;#34;,&amp;#34;10&amp;#34;,&amp;#34;11&amp;#34;,&amp;#34;12&amp;#34;,&amp;#34;13&amp;#34;,&amp;#34;14&amp;#34;,&amp;#34;15&amp;#34;,&amp;#34;16&amp;#34;]}]},&amp;#34;poses&amp;#34;:{&amp;#34;count&amp;#34;:16,&amp;#34;items&amp;#34;:[{&amp;#34;panel&amp;#34;:1,&amp;#34;description&amp;#34;:&amp;#34;wide stance, knees bent, torso upright, right arm extended straight to the right in a pointing gesture, left arm bent near the body&amp;#34;},{&amp;#34;panel&amp;#34;:2,&amp;#34;description&amp;#34;:&amp;#34;deep low squat facing forward, feet wide apart, one hand lifted in front of the chest, the other resting near the thigh&amp;#34;},{&amp;#34;panel&amp;#34;:3,&amp;#34;description&amp;#34;:&amp;#34;low floor-supported pose, leaning back on one hand with hips low, one knee bent under the body, opposite arm stretched diagonally upward&amp;#34;},{&amp;#34;panel&amp;#34;:4,&amp;#34;description&amp;#34;:&amp;#34;standing on one leg with the other knee raised, one arm curved overhead, opposite arm extended to the right in a strong dance line&amp;#34;},{&amp;#34;panel&amp;#34;:5,&amp;#34;description&amp;#34;:&amp;#34;deep squat with legs wide, one hand on thigh and the other arm reaching straight upward&amp;#34;},{&amp;#34;panel&amp;#34;:6,&amp;#34;description&amp;#34;:&amp;#34;light upright pose with one knee lifted and both arms relaxed outward for balance&amp;#34;},{&amp;#34;panel&amp;#34;:7,&amp;#34;description&amp;#34;:&amp;#34;wide stance with both arms crossed tightly in front of the chest, feet planted apart&amp;#34;},{&amp;#34;panel&amp;#34;:8,&amp;#34;description&amp;#34;:&amp;#34;low crouch close to the floor, one hand braced on the ground, the other arm crossing the torso&amp;#34;},{&amp;#34;panel&amp;#34;:9,&amp;#34;description&amp;#34;:&amp;#34;dynamic side-leaning wide stance, one arm bent upward beside the head, opposite arm pointing strongly to the right&amp;#34;},{&amp;#34;panel&amp;#34;:10,&amp;#34;description&amp;#34;:&amp;#34;compact crouch with weight centered low, one elbow resting near a knee and head tilted slightly downward&amp;#34;},{&amp;#34;panel&amp;#34;:11,&amp;#34;description&amp;#34;:&amp;#34;deep side lunge with one leg extended long to the side, one hand on the floor and the other arm reaching straight up&amp;#34;},{&amp;#34;panel&amp;#34;:12,&amp;#34;description&amp;#34;:&amp;#34;upright wide-legged stance, one arm extended vertically overhead, the other hand relaxed near the hip&amp;#34;},{&amp;#34;panel&amp;#34;:13,&amp;#34;description&amp;#34;:&amp;#34;standing balance pose with one knee raised and both hands held low near the thighs&amp;#34;},{&amp;#34;panel&amp;#34;:14,&amp;#34;description&amp;#34;:&amp;#34;low horse stance with knees bent wide and forearms crossed in front of the chest&amp;#34;},{&amp;#34;panel&amp;#34;:15,&amp;#34;description&amp;#34;:&amp;#34;kneeling or very low crouched pose with one hand on the floor and the other resting on the raised knee&amp;#34;},{&amp;#34;panel&amp;#34;:16,&amp;#34;description&amp;#34;:&amp;#34;high side kick, balancing on one leg while the other leg extends horizontally, both arms bent in a guarded fighting pose&amp;#34;}]},&amp;#34;intent&amp;#34;:&amp;#34;a {argument name=\&amp;#34;sheet purpose\&amp;#34; default=\&amp;#34;dance move sheet chart that can also be used for combat pose reference\&amp;#34;}, emphasizing silhouette variety, balance, rhythm, and dynamic athletic body lines&amp;#34;,&amp;#34;image_size&amp;#34;:&amp;#34;landscape 16:9&amp;#34;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;16-格女性舞蹈姿势表&#34;&gt;16 格女性舞蹈姿势表
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/ExquisitMe/status/2048143577264402629&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/ExquisitMe&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@ExquisitMe&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/077.webp&#34;
	width=&#34;1200&#34;
	height=&#34;680&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/077_hu_5a6068da941351fa.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/077_hu_800aceba14c16426.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;16 格女性舞蹈姿势表&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;176&#34;
		data-flex-basis=&#34;423px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{&amp;#34;type&amp;#34;:&amp;#34;pose reference sheet&amp;#34;,&amp;#34;subject&amp;#34;:{&amp;#34;count&amp;#34;:1,&amp;#34;description&amp;#34;:&amp;#34;a fit young woman dancer shown repeatedly in a clean studio reference layout&amp;#34;,&amp;#34;appearance&amp;#34;:{&amp;#34;gender&amp;#34;:&amp;#34;female&amp;#34;,&amp;#34;age&amp;#34;:&amp;#34;young adult&amp;#34;,&amp;#34;build&amp;#34;:&amp;#34;athletic, toned midriff&amp;#34;,&amp;#34;skin tone&amp;#34;:&amp;#34;light to medium tan&amp;#34;,&amp;#34;hair&amp;#34;:{&amp;#34;color&amp;#34;:&amp;#34;dark brown&amp;#34;,&amp;#34;style&amp;#34;:&amp;#34;high messy ponytail with loose strands framing the face&amp;#34;},&amp;#34;expression&amp;#34;:&amp;#34;neutral to focused&amp;#34;},&amp;#34;wardrobe&amp;#34;:{&amp;#34;top&amp;#34;:&amp;#34;charcoal gray sports bra or cropped athletic bralette&amp;#34;,&amp;#34;bottom&amp;#34;:&amp;#34;oversized dark gray parachute cargo pants with gathered ankles&amp;#34;,&amp;#34;shoes&amp;#34;:&amp;#34;white sneakers&amp;#34;,&amp;#34;accessories&amp;#34;:[&amp;#34;black wristband or fingerless glove on one hand&amp;#34;,&amp;#34;subtle sporty styling&amp;#34;]}},&amp;#34;layout&amp;#34;:{&amp;#34;background&amp;#34;:&amp;#34;plain white seamless studio background&amp;#34;,&amp;#34;grid&amp;#34;:{&amp;#34;rows&amp;#34;:4,&amp;#34;columns&amp;#34;:4,&amp;#34;count&amp;#34;:16,&amp;#34;cell labels&amp;#34;:[&amp;#34;1&amp;#34;,&amp;#34;2&amp;#34;,&amp;#34;3&amp;#34;,&amp;#34;4&amp;#34;,&amp;#34;5&amp;#34;,&amp;#34;6&amp;#34;,&amp;#34;7&amp;#34;,&amp;#34;8&amp;#34;,&amp;#34;9&amp;#34;,&amp;#34;10&amp;#34;,&amp;#34;11&amp;#34;,&amp;#34;12&amp;#34;,&amp;#34;13&amp;#34;,&amp;#34;14&amp;#34;,&amp;#34;15&amp;#34;,&amp;#34;16&amp;#34;]},&amp;#34;style&amp;#34;:&amp;#34;clean contact-sheet or choreography chart with thin black dividers between panels and small black numbers at the upper left of each panel&amp;#34;},&amp;#34;poses&amp;#34;:[{&amp;#34;label&amp;#34;:&amp;#34;1&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;relaxed standing pose, weight on one leg, one hand near hip, slight contrapposto&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;2&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;wide low dance stance, one arm bent behind the head, the other arm extended and pointing to the right&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;3&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;legs spread in a grounded stance, torso slightly tilted, one hand resting near the upper thigh&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;4&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;very low wide squat facing forward, torso leaning back, one hand near the face and the other near the thigh&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;5&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;wide side lunge stance, one arm arched overhead, the other arm extended outward in a stylized dance line&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;6&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;balancing on one leg with the other knee lifted high, one hand near the face in a punchy hip-hop pose&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;7&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;floorwork pose supported by one hand on the ground, torso reclined sideways, legs bent and lifted in a dynamic breakdance-like position&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;8&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;casual upright pose with one hand behind the head and one knee bent upward&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;9&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;one-legged balance pose with the lifted knee bent, both arms extended outward for motion and rhythm&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;10&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;low kneeling or crouched pose, one knee up and one knee down, one arm thrust forward toward the viewer&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;11&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;deep squat with legs apart, one arm curved overhead in a dramatic arc&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;12&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;standing lean to one side with one arm extended sideways and the other hand near the hip or thigh&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;13&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;reclining floor pose supported by one hand behind the body, one leg bent and one leg extended&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;14&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;upright standing pose with one arm fully extended and pointing to the right&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;15&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;front-facing pose stepping forward with one knee lifted, one arm reaching or pointing forward&amp;#34;},{&amp;#34;label&amp;#34;:&amp;#34;16&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;wide confident stance with one arm pointing diagonally upward to the right&amp;#34;}],&amp;#34;rendering&amp;#34;:{&amp;#34;medium&amp;#34;:&amp;#34;photorealistic studio fashion and dance reference image&amp;#34;,&amp;#34;lighting&amp;#34;:&amp;#34;soft even studio lighting with faint shadows beneath the feet and body&amp;#34;,&amp;#34;camera&amp;#34;:&amp;#34;full-body framing, straight-on view, consistent distance in every panel&amp;#34;,&amp;#34;quality&amp;#34;:&amp;#34;sharp, high-resolution, realistic anatomy and fabric folds&amp;#34;}}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;16-姿势舞蹈参考表&#34;&gt;16 姿势舞蹈参考表
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/ExquisitMe/status/2048143577264402629&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/ExquisitMe&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@ExquisitMe&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/078.webp&#34;
	width=&#34;1199&#34;
	height=&#34;680&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/078_hu_918cd255b0091e22.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/078_hu_bd23bdaedc026045.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;16 姿势舞蹈参考表&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;176&#34;
		data-flex-basis=&#34;423px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{&amp;#34;type&amp;#34;:&amp;#34;pose reference sheet&amp;#34;,&amp;#34;subject&amp;#34;:{&amp;#34;category&amp;#34;:&amp;#34;female dancer fitness model&amp;#34;,&amp;#34;age_appearance&amp;#34;:&amp;#34;young adult&amp;#34;,&amp;#34;build&amp;#34;:&amp;#34;slim athletic&amp;#34;,&amp;#34;hair&amp;#34;:{&amp;#34;color&amp;#34;:&amp;#34;dark brown&amp;#34;,&amp;#34;style&amp;#34;:&amp;#34;high ponytail&amp;#34;},&amp;#34;outfit&amp;#34;:{&amp;#34;top&amp;#34;:&amp;#34;light gray or white sports bra crop top&amp;#34;,&amp;#34;bottom&amp;#34;:&amp;#34;baggy light gray sweatpants&amp;#34;,&amp;#34;shoes&amp;#34;:&amp;#34;white sneakers&amp;#34;},&amp;#34;face&amp;#34;:&amp;#34;softly blurred or de-emphasized facial features&amp;#34;},&amp;#34;style&amp;#34;:{&amp;#34;image_type&amp;#34;:&amp;#34;studio dance pose chart&amp;#34;,&amp;#34;background&amp;#34;:&amp;#34;clean seamless white background&amp;#34;,&amp;#34;lighting&amp;#34;:&amp;#34;bright even studio lighting with minimal shadows&amp;#34;,&amp;#34;color_palette&amp;#34;:&amp;#34;neutral whites and light grays&amp;#34;,&amp;#34;camera&amp;#34;:&amp;#34;full-body framing, straight-on view, consistent distance&amp;#34;,&amp;#34;rendering&amp;#34;:&amp;#34;photorealistic&amp;#34;},&amp;#34;layout&amp;#34;:{&amp;#34;grid&amp;#34;:{&amp;#34;rows&amp;#34;:4,&amp;#34;columns&amp;#34;:4,&amp;#34;count&amp;#34;:16,&amp;#34;border&amp;#34;:&amp;#34;thin black dividers between cells&amp;#34;},&amp;#34;numbering&amp;#34;:{&amp;#34;count&amp;#34;:16,&amp;#34;labels&amp;#34;:[&amp;#34;1&amp;#34;,&amp;#34;2&amp;#34;,&amp;#34;3&amp;#34;,&amp;#34;4&amp;#34;,&amp;#34;5&amp;#34;,&amp;#34;6&amp;#34;,&amp;#34;7&amp;#34;,&amp;#34;8&amp;#34;,&amp;#34;9&amp;#34;,&amp;#34;10&amp;#34;,&amp;#34;11&amp;#34;,&amp;#34;12&amp;#34;,&amp;#34;13&amp;#34;,&amp;#34;14&amp;#34;,&amp;#34;15&amp;#34;,&amp;#34;16&amp;#34;],&amp;#34;position&amp;#34;:&amp;#34;top-left corner of each panel&amp;#34;},&amp;#34;sections&amp;#34;:[{&amp;#34;title&amp;#34;:&amp;#34;row 1&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;top&amp;#34;,&amp;#34;count&amp;#34;:4,&amp;#34;labels&amp;#34;:[&amp;#34;1 side lunge with one arm extended straight sideways and the other bent near chest&amp;#34;,&amp;#34;2 low floor pose leaning on one hand with one knee down and opposite arm arched upward&amp;#34;,&amp;#34;3 wide squat facing front with both arms opened in angular dance position&amp;#34;,&amp;#34;4 standing balance on one leg with opposite knee lifted and forearms crossed near chest&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;row 2&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;upper-middle&amp;#34;,&amp;#34;count&amp;#34;:4,&amp;#34;labels&amp;#34;:[&amp;#34;5 deep backbend in wide stance with torso arched and one arm curved overhead&amp;#34;,&amp;#34;6 wide squat with one hand behind head and the other arm pointing outward&amp;#34;,&amp;#34;7 kneeling side stretch with one hand on floor and opposite arm reaching straight up&amp;#34;,&amp;#34;8 standing arabesque-style extension with torso tilted forward and one leg lifted high behind/sideways&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;row 3&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;lower-middle&amp;#34;,&amp;#34;count&amp;#34;:4,&amp;#34;labels&amp;#34;:[&amp;#34;9 wide squat with torso tilted left, one arm curved overhead and one arm extended low&amp;#34;,&amp;#34;10 front-facing wide squat with both arms stretched diagonally in opposite directions&amp;#34;,&amp;#34;11 relaxed standing pose with legs apart and both forearms crossing in front of torso&amp;#34;,&amp;#34;12 floor recline supported on one hand and one knee, torso leaning back with bent legs&amp;#34;]},{&amp;#34;title&amp;#34;:&amp;#34;row 4&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;bottom&amp;#34;,&amp;#34;count&amp;#34;:4,&amp;#34;labels&amp;#34;:[&amp;#34;13 small jump or lifted balance with one knee raised and one arm bent upward&amp;#34;,&amp;#34;14 low crouch squat with one hand reaching toward floor and other arm extended sideways&amp;#34;,&amp;#34;15 dramatic side backbend in wide stance with hair swinging and one arm curved overhead&amp;#34;,&amp;#34;16 powerful wide squat with one hand at chest and the other lowered to the side&amp;#34;]}],&amp;#34;overall_composition&amp;#34;:&amp;#34;all 16 poses shown as separate panels in a uniform contact sheet&amp;#34;},&amp;#34;prompt&amp;#34;:&amp;#34;Create a clean studio contact sheet of {argument name=\&amp;#34;pose count\&amp;#34; default=\&amp;#34;16\&amp;#34;} full-body dance or combat-reference poses featuring a {argument name=\&amp;#34;subject type\&amp;#34; default=\&amp;#34;young athletic woman\&amp;#34;} in a {argument name=\&amp;#34;outfit\&amp;#34; default=\&amp;#34;light gray sports bra, loose gray sweatpants, and white sneakers\&amp;#34;}. Use a seamless {argument name=\&amp;#34;background color\&amp;#34; default=\&amp;#34;white\&amp;#34;} background, bright even lighting, and a consistent straight-on camera. Arrange the poses in a 4x4 grid with thin black panel lines and small black numbers 1 through 16 in the top-left of each cell. The poses should mix standing, squatting, kneeling, floorwork, balance, kick-extension, backbend, and angular arm positions suitable for a dance sheet chart or combat movement reference. Keep the styling photorealistic, crisp, minimal, and instructional, with consistent wardrobe and hair across all panels.&amp;#34;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;气态巨行星下降分镜&#34;&gt;气态巨行星下降分镜
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/xRahultripathi/status/2048140775356354892&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/xRahultripathi&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@xRahultripathi&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/079.webp&#34;
	width=&#34;1200&#34;
	height=&#34;676&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/079_hu_8b65f2fca14570b3.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/079_hu_ec4b1b2c4e1077ff.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;气态巨行星下降分镜&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;177&#34;
		data-flex-basis=&#34;426px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{&amp;#34;type&amp;#34;:&amp;#34;cinematic sci-fi storyboard contact sheet&amp;#34;,&amp;#34;subject&amp;#34;:{&amp;#34;primary&amp;#34;:&amp;#34;a small futuristic spacecraft descending into a massive gas giant storm system&amp;#34;,&amp;#34;secondary&amp;#34;:&amp;#34;an enormous leviathan-like silhouette hidden within the clouds&amp;#34;,&amp;#34;mood&amp;#34;:&amp;#34;oppressive, catastrophic, awe-struck, high tension, cosmic dread&amp;#34;,&amp;#34;style&amp;#34;:&amp;#34;photorealistic cinematic concept art with dark sci-fi realism, volumetric storm clouds, strong contrast, amber and black palette with occasional cold blue lightning&amp;#34;,&amp;#34;aspect_ratio&amp;#34;:&amp;#34;16:9&amp;#34;},&amp;#34;vehicle&amp;#34;:{&amp;#34;design&amp;#34;:&amp;#34;compact armored deep-atmosphere ship with 3 bright rear engines, angular industrial hull, worn metallic panels&amp;#34;,&amp;#34;scale&amp;#34;:&amp;#34;tiny compared to the planet and creature&amp;#34;},&amp;#34;layout&amp;#34;:{&amp;#34;grid&amp;#34;:{&amp;#34;rows&amp;#34;:3,&amp;#34;columns&amp;#34;:4,&amp;#34;count&amp;#34;:12},&amp;#34;sections&amp;#34;:[{&amp;#34;position&amp;#34;:&amp;#34;row 1 col 1&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;wide exterior shot of the ship entering the upper atmosphere of a colossal gas giant at extreme speed, glowing clouds streaked with fire and friction around the vessel, curved planetary horizon visible&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 1 col 2&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;cockpit POV, dark interior filled with red and cyan holographic instruments, forward visibility collapsing into turbulent storm layers and electrical haze&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 1 col 3&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;exterior mid-wide shot of the ship diving into a gigantic rotating cloud funnel, surrounded by violent spiraling storm structure&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 1 col 4&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;extreme close exterior of the ship hull as bright lightning strikes dangerously close, white electric energy crawling across the metal surface&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 2 col 1&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;dashboard warning screen in red, showing a critical systems failure interface with the exact visible text count of 4 warning lines and 1 large percentage readout: [&amp;#39;WARNING&amp;#39;,&amp;#39;ENGINES COMPROMISED&amp;#39;,&amp;#39;THRUST FLUCTUATION&amp;#39;,&amp;#39;GRAVITY SPIKE DETECTED&amp;#39;,&amp;#39;DESCENT RATE -453%&amp;#39;]&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 2 col 2&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;rear three-quarter exterior of the ship fighting turbulence inside dense storm clouds, engines burning hard while the craft barely holds course&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 2 col 3&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;massive circular disturbance forming in the clouds like an eye or maw, entire storm systems displaced by something huge moving beneath&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 2 col 4&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;second cockpit view with radar-like navigation display and red alert text, pilot making a blind evasive maneuver through lightning-filled darkness&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 3 col 1&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;first reveal of the colossal creature shape rising near the ship, black organic surface and immense curved anatomy emerging from darkness, ship tiny at lower left&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 3 col 2&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;spiral descent shot, ship caught inside a vortex tunnel of clouds, spinning downward with engines flaring as it struggles to recover&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 3 col 3&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;sudden breakthrough into a calm void, minimal composition, ship flying in eerie silence through dark open space with soft mist and no visible storm around it&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 3 col 4&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;final reveal, gigantic leviathan fully emerging behind or beside the ship in cleared space, backlit by a pale circular storm opening, enormous open maw-like silhouette dwarfing the craft&amp;#34;}],&amp;#34;continuity&amp;#34;:&amp;#34;all 12 panels depict one continuous descent sequence from atmospheric entry to final creature reveal&amp;#34;},&amp;#34;lighting&amp;#34;:{&amp;#34;primary&amp;#34;:&amp;#34;glowing amber storm light&amp;#34;,&amp;#34;secondary&amp;#34;:&amp;#34;red cockpit interface glow&amp;#34;,&amp;#34;accents&amp;#34;:&amp;#34;blue-white lightning and engine exhaust&amp;#34;},&amp;#34;environment&amp;#34;:{&amp;#34;location&amp;#34;:&amp;#34;inside the upper and middle storm layers of a gigantic gas giant&amp;#34;,&amp;#34;weather&amp;#34;:&amp;#34;violent turbulence, electrical storms, vortex funnels, cloud walls, pressure chaos&amp;#34;,&amp;#34;threat&amp;#34;:&amp;#34;no safe zone, repeated near-failure, unknown colossal presence driving the storm&amp;#34;}}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;超现实巴洛克绘画现实裂隙&#34;&gt;超现实巴洛克绘画现实裂隙
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/JohnnyWang8802/status/2048129335853559824&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/JohnnyWang8802&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@JohnnyWang8802&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/080.webp&#34;
	width=&#34;1200&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/080_hu_f7cfa4116ae04487.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/080_hu_a2a534f0c6c47a7.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;超现实巴洛克绘画现实裂隙&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A {argument name=&amp;#34;painting style&amp;#34; default=&amp;#34;baroque oil painting&amp;#34;} comes to life — its painted figures climbing out of the gilded frame into a {argument name=&amp;#34;setting&amp;#34; default=&amp;#34;modern white gallery&amp;#34;}, half their bodies still in flat 2D paint, half fully volumetric 3D humans, brushstrokes visible on their skin, the painting&amp;#39;s background leaking watercolor clouds into the gallery ceiling, museum visitors frozen in shock, hyper-detailed, {argument name=&amp;#34;artist influence&amp;#34; default=&amp;#34;René Magritte meets Pixar&amp;#34;}, reality fracturing at every boundary
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;城市小巷壁画艺术家&#34;&gt;城市小巷壁画艺术家
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Professor_134/status/2048066672398102896&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Professor_134&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Professor_134&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/081.webp&#34;
	width=&#34;960&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/081_hu_27c628d6f3b8d9ae.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/081_hu_237b894b0489f783.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;城市小巷壁画艺术家&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;80&#34;
		data-flex-basis=&#34;192px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A cinematic, ultra-realistic night scene of a {argument name=&amp;#34;artist&amp;#34; default=&amp;#34;young male street artist&amp;#34;} painting a large-scale {argument name=&amp;#34;mural subject&amp;#34; default=&amp;#34;mural of a woman’s face&amp;#34;} in a {argument name=&amp;#34;setting&amp;#34; default=&amp;#34;narrow urban alley&amp;#34;}. The camera angle is slightly low, creating a dramatic, powerful perspective. The artist has medium-length, slightly messy dark hair and light stubble or a short beard, giving him a rugged, creative look.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;He wears a loose white t-shirt and casual jeans, slightly oversized, with a relaxed streetwear vibe. His posture is focused and engaged as he stands close to the wall, actively spray-painting.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;He is creating a massive, hyper-realistic mural of a woman’s face on a textured brick wall. The mural is incredibly detailed—smooth skin tones, realistic lighting, expressive eyes, and glossy lips—appearing almost like a photograph. Fine mist from the spray paint is visible in the air, catching light and adding motion and atmosphere.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;The setting is a narrow urban alley at night, surrounded by tall buildings. The environment is gritty and textured—aged brick walls, paint splashes, subtle grime, and urban wear. Neon signs and distant streetlights cast vibrant reflections in teal, magenta, and blue tones, creating a cinematic, slightly cyberpunk mood.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Lighting is dramatic and layered: cool ambient light fills the alley, while warmer neon highlights create contrast. A subtle rim light outlines the artist’s silhouette, separating him from the dark background. The mural is partially illuminated, acting as a strong focal point.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Atmosphere includes light fog or mist, enhancing depth and making the lighting glow softly. The scene feels immersive, quiet, and artistically intense.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Depth of field is moderately shallow: the artist and mural are in sharp focus, while the background fades into soft blur with bokeh highlights.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Style: hyper-realistic, cinematic photography, street art aesthetic, ultra-detailed textures, high dynamic range, subtle film grain.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Camera details: 35mm or 50mm lens, f/1.8–f/2.8 aperture, low-light photography, slight low-angle shot, natural perspective.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Composition: vertical frame (4:5 or 9:16), subject slightly off-center, mural dominating the frame for strong visual storytelling.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Generate image using uploaded image as reference
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;rpg-地图转动漫事件场景&#34;&gt;RPG 地图转动漫事件场景
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/ArtwlDesign/status/2048054726768709769&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/ArtwlDesign&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@ArtwlDesign&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/082.webp&#34;
	width=&#34;1200&#34;
	height=&#34;670&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/082_hu_5fa142826c4329ce.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/082_hu_6fbce33f5d6ee037.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;RPG 地图转动漫事件场景&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;179&#34;
		data-flex-basis=&#34;429px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Using the provided reference image, transform the top-down RPG town map into a polished anime-style event illustration from a human eye-level perspective. Keep the same village location and layout cues: the central stone well, the path network, the hedges, the wooden houses, and the narrow water canal on the left. Convert the 2 small sprite characters by the well into 2 full-size fantasy characters in the foreground: a silver-haired mage in a purple robe holding a staff, and a blonde elf in green-and-brown adventurer clothing, both leaning over and looking into the well. Add a cinematic JRPG feel with soft daylight, detailed painterly rendering, clean line art, and gentle depth of field. Preserve the sense that this scene is taking place in the same town square, but enrich it with natural perspective, more environmental detail, and 5 background villagers: 1 man cropped at the far left edge, 2 small figures standing on the center path in the distance, and 2 townspeople talking near the right-side buildings.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;柔和粉彩动漫少女全身像&#34;&gt;柔和粉彩动漫少女全身像
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/hoshi122221/status/2048025730425196801&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/hoshi122221&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@hoshi122221&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/083.webp&#34;
	width=&#34;848&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/083_hu_26ed0e341e792fed.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/083_hu_9903bb8f94f62715.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;柔和粉彩动漫少女全身像&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;70&#34;
		data-flex-basis=&#34;169px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A full-body anime girl character design on a plain white background, centered and floating slightly, drawn in a soft minimalist pastel style with very thin gray linework and delicate flat colors. She has a petite youthful build and a cute, gentle silhouette, with special emphasis on a soft rounded face shape, smooth cheeks, and a softened jawline and chin. Her face is completely obscured by a blank skin-colored rectangular block with no facial features visible. She has short bob hair in {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;light ash brown&amp;#34;}, slightly tousled with wispy ends, long bangs covering part of the forehead, and a small ribbon hair tie on the right side in pale blue-gray. She wears 3 visible clothing pieces: an oversized pale blue cardigan with loose sleeves and front buttons, a cream-white slip dress with a scalloped neckline and a tiny button detail at the chest, and a frilled hem with a small ribbon near the right thigh. She is barefoot with slim pale legs, posed front-facing with both arms relaxed slightly outward, open hands, one leg straight and the other gently bent inward for a shy, weightless look. The illustration should feel airy, cute, understated, and clean, like a simple Japanese anime fashion sketch, with lots of negative space and no props, no shadows, and no background elements.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;都市奇幻共存路口&#34;&gt;都市奇幻共存路口
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Ray_CROWN0/status/2048024227664494775&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Ray_CROWN0&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Ray_CROWN0&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/084.webp&#34;
	width=&#34;1199&#34;
	height=&#34;675&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/084_hu_e9ef25b7a1fdff74.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/084_hu_70840d2c5970afb3.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;都市奇幻共存路口&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;177&#34;
		data-flex-basis=&#34;426px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A highly detailed anime-style urban fantasy illustration set at a busy Tokyo-style scramble crossing on a bright clear day, viewed at street level with a wide cinematic composition. The city blends modern realism with mythic fantasy: dense high-rise buildings covered in giant billboards, a red broadcast tower in the middle distance, blue sky with fluffy clouds, and a crowded crosswalk full of pedestrians. In the foreground, show 7 prominent character figures: a silver-haired elf woman in a flowing white dress holding an iced drink and tote bag on the far left; a central schoolgirl with long dark hair, black animal ears, a navy school blazer, plaid skirt, blue ribbon, and large navy shoulder bag, lifting one hand to her head; a young man in a dark suit looking down at a smartphone; an androgynous white-haired angelic figure in an elegant white-and-gold ceremonial outfit with large white wings; a small blonde girl in an ornate pastel pink frilled dress beside the angel; a dark-haired woman in a black coat in right foreground profile; and a small blue-haired cat-eared child in a blue dress with a bow standing near a cave entrance on the right. In the midground crowd, include mixed humans and fantasy races walking together naturally. Add 4 clearly visible nonhuman or supernatural background beings: 1 dragon flying in the sky, 1 winged female angel descending above the street, 1 lizard-headed businessman in a suit near the angelic figure, and 1 tall red-skinned horned demon with crossed arms standing by the hillside path. On the right side, transition the city into a lush shrine hillside with large green trees, a red torii gate, stone steps, and a wooden signboard reading Japanese kanji. Below it, place a rocky cave-like tunnel entrance glowing blue, with a wooden sign over the entrance and several figures descending into an underground shared district lit by crystals. Show 6 major billboard/sign elements across the cityscape: a huge left billboard reading &amp;#34;Shinpi Sekai 神秘世界&amp;#34; with a cosmic planet image; a large central political poster with Japanese text and a raised fist icon; 2 rooftop signs reading &amp;#34;未来研究所&amp;#34; on separate buildings; a large right billboard with Japanese text about coexistence and silhouettes of different beings; and 1 vertical banner with Japanese text on a nearby building. Emphasize the theme of coexistence between ordinary modern city life and hidden fantasy societies. Crisp anime linework, polished light novel key visual rendering, rich textures, soft sunlight, subtle atmospheric perspective, vibrant but believable colors, intricate clothing details, and a sense of awe, everyday bustle, and worldbuilding depth.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;亲子误解信息图&#34;&gt;亲子误解信息图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/sarinaashapi/status/2048307780864606708&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/sarinaashapi&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@sarinaashapi&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/085.webp&#34;
	width=&#34;1200&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/085_hu_26d0e5c826e59305.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/085_hu_fa7e495c6ca472c4.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;亲子误解信息图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{&amp;#34;type&amp;#34;:&amp;#34;Japanese infographic&amp;#34;,&amp;#34;style&amp;#34;:&amp;#34;simple, easy-to-understand flat vector diagram, clean white background, rounded light-gray outer frame, minimal pastel color palette, presentation-slide design, clear hierarchy, lots of whitespace, modern sans-serif Japanese typography&amp;#34;,&amp;#34;canvas&amp;#34;:{&amp;#34;aspect_ratio&amp;#34;:&amp;#34;16:9&amp;#34;},&amp;#34;headline&amp;#34;:{&amp;#34;text&amp;#34;:&amp;#34;{argument name=\&amp;#34;headline text\&amp;#34; default=\&amp;#34;親子のすれ違いは、記録があるかないかで起こる\&amp;#34;}&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;top center&amp;#34;,&amp;#34;size&amp;#34;:&amp;#34;large bold black&amp;#34;},&amp;#34;layout&amp;#34;:{&amp;#34;structure&amp;#34;:&amp;#34;2 side-by-side rounded panels beneath the headline&amp;#34;,&amp;#34;sections&amp;#34;:[{&amp;#34;title&amp;#34;:&amp;#34;記録がない場合(ズレる)&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;left&amp;#34;,&amp;#34;count&amp;#34;:8,&amp;#34;header_color&amp;#34;:&amp;#34;muted blue-gray&amp;#34;,&amp;#34;panel_border&amp;#34;:&amp;#34;light gray&amp;#34;,&amp;#34;labels&amp;#34;:[&amp;#34;親の記憶&amp;#34;,&amp;#34;子どもの記憶&amp;#34;,&amp;#34;あのとき決まったよね&amp;#34;,&amp;#34;まだ考えてたのに&amp;#34;,&amp;#34;ズレが大きくなる&amp;#34;,&amp;#34;志望校がコロコロ変わる&amp;#34;,&amp;#34;理由が『なんとなく』&amp;#34;,&amp;#34;言ってることが違う&amp;#34;,&amp;#34;関係がギクシャク&amp;#34;,&amp;#34;現実を見てほしい&amp;#34;,&amp;#34;ちゃんと決めてほしい&amp;#34;,&amp;#34;口を出しすぎると関係が悪くなる&amp;#34;],&amp;#34;contents&amp;#34;:{&amp;#34;top_left&amp;#34;:{&amp;#34;type&amp;#34;:&amp;#34;parent icon with thought bubble&amp;#34;,&amp;#34;icon_color&amp;#34;:&amp;#34;blue&amp;#34;,&amp;#34;caption&amp;#34;:&amp;#34;親の記憶&amp;#34;,&amp;#34;bubble_text&amp;#34;:&amp;#34;あのとき\n決まったよね&amp;#34;},&amp;#34;top_right&amp;#34;:{&amp;#34;type&amp;#34;:&amp;#34;child icon with thought bubble&amp;#34;,&amp;#34;icon_color&amp;#34;:&amp;#34;pink&amp;#34;,&amp;#34;caption&amp;#34;:&amp;#34;子どもの記憶&amp;#34;,&amp;#34;bubble_text&amp;#34;:&amp;#34;まだ考えてたのに&amp;#34;},&amp;#34;center&amp;#34;:{&amp;#34;type&amp;#34;:&amp;#34;horizontal double-headed arrow&amp;#34;,&amp;#34;color&amp;#34;:&amp;#34;blue-gray&amp;#34;},&amp;#34;bottom_center&amp;#34;:{&amp;#34;type&amp;#34;:&amp;#34;downward arrow leading to burst shape&amp;#34;,&amp;#34;color&amp;#34;:&amp;#34;light gray&amp;#34;,&amp;#34;burst_text&amp;#34;:&amp;#34;ズレが\n大きくなる&amp;#34;},&amp;#34;bottom_left&amp;#34;:{&amp;#34;type&amp;#34;:&amp;#34;rounded note box&amp;#34;,&amp;#34;bullet_count&amp;#34;:4,&amp;#34;bullets&amp;#34;:[&amp;#34;志望校がコロコロ変わる&amp;#34;,&amp;#34;理由が『なんとなく』&amp;#34;,&amp;#34;言ってることが違う&amp;#34;,&amp;#34;関係がギクシャク&amp;#34;]},&amp;#34;bottom_right&amp;#34;:{&amp;#34;type&amp;#34;:&amp;#34;rounded note box&amp;#34;,&amp;#34;bullet_count&amp;#34;:3,&amp;#34;bullets&amp;#34;:[&amp;#34;現実を見てほしい&amp;#34;,&amp;#34;ちゃんと決めてほしい&amp;#34;,&amp;#34;口を出しすぎると関係が悪くなる&amp;#34;]}}},{&amp;#34;title&amp;#34;:&amp;#34;記録がある場合(ズレにくい)&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;right&amp;#34;,&amp;#34;count&amp;#34;:7,&amp;#34;header_color&amp;#34;:&amp;#34;mustard yellow&amp;#34;,&amp;#34;panel_border&amp;#34;:&amp;#34;light yellow&amp;#34;,&amp;#34;labels&amp;#34;:[&amp;#34;親の認識&amp;#34;,&amp;#34;子どもの認識&amp;#34;,&amp;#34;記録&amp;#34;],&amp;#34;contents&amp;#34;:{&amp;#34;top_left&amp;#34;:{&amp;#34;type&amp;#34;:&amp;#34;parent icon with thought bubble containing document symbol&amp;#34;,&amp;#34;icon_color&amp;#34;:&amp;#34;blue&amp;#34;,&amp;#34;caption&amp;#34;:&amp;#34;親の認識&amp;#34;},&amp;#34;top_right&amp;#34;:{&amp;#34;type&amp;#34;:&amp;#34;child icon with thought bubble containing document symbol&amp;#34;,&amp;#34;icon_color&amp;#34;:&amp;#34;pink&amp;#34;,&amp;#34;caption&amp;#34;:&amp;#34;子どもの認識&amp;#34;},&amp;#34;center&amp;#34;:{&amp;#34;type&amp;#34;:&amp;#34;horizontal double-headed arrow&amp;#34;,&amp;#34;color&amp;#34;:&amp;#34;mustard yellow&amp;#34;},&amp;#34;bottom_center&amp;#34;:{&amp;#34;type&amp;#34;:&amp;#34;circular record icon with document symbol&amp;#34;,&amp;#34;outline_color&amp;#34;:&amp;#34;mustard yellow&amp;#34;,&amp;#34;text&amp;#34;:&amp;#34;記録&amp;#34;},&amp;#34;bottom_left_connector&amp;#34;:{&amp;#34;type&amp;#34;:&amp;#34;curved arrow from parent to record&amp;#34;,&amp;#34;color&amp;#34;:&amp;#34;blue&amp;#34;},&amp;#34;bottom_right_connector&amp;#34;:{&amp;#34;type&amp;#34;:&amp;#34;curved arrow from child to record&amp;#34;,&amp;#34;color&amp;#34;:&amp;#34;pink&amp;#34;}}}],&amp;#34;spacing&amp;#34;:&amp;#34;balanced, symmetrical&amp;#34;},&amp;#34;visual_language&amp;#34;:{&amp;#34;icons&amp;#34;:&amp;#34;generic human bust icons and simple document line icons&amp;#34;,&amp;#34;emphasis&amp;#34;:&amp;#34;contrast the left panel&amp;#39;s misunderstanding with the right panel&amp;#39;s shared record&amp;#34;,&amp;#34;mood&amp;#34;:&amp;#34;educational, calm, practical&amp;#34;},&amp;#34;text_language&amp;#34;:&amp;#34;Japanese&amp;#34;,&amp;#34;render_quality&amp;#34;:&amp;#34;crisp vector edges, infographic suitable for social media educational posts&amp;#34;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;好洗澡日编辑风海报&#34;&gt;好洗澡日编辑风海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Kazuch75240438/status/2048205418238030327&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Kazuch75240438&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Kazuch75240438&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/086.webp&#34;
	width=&#34;1024&#34;
	height=&#34;1024&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/086_hu_d9cf8eee6ceebcb6.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/086_hu_86ce7cfe747e2670.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;好洗澡日编辑风海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a soft editorial lifestyle poster for {argument name=&amp;#34;event date&amp;#34; default=&amp;#34;4.26&amp;#34;} celebrating Japanese bath culture, designed like a refined magazine feature page in portrait orientation. The layout is split into two main columns with a pale cream and warm gray background, thin divider lines, elegant serif typography, and muted sage-green accents. At the top left, include the small heading “LIFESTYLE / FEATURE”, then a large date line reading “{argument name=&amp;#34;event date&amp;#34; default=&amp;#34;4.26&amp;#34;} EVENT”, followed by the large Japanese title “よい風呂の日” and the subtitle “特集” in sage green, with a small bathtub icon nearby. Beneath that, add the Japanese tagline “心も体も、ととのう時間。” and several short body-text blocks in Japanese explaining the meaning of Good Bath Day, including references to “4(よ)2(ふ)6(ろ)” and the benefits of bathing for body and mind. On the right side, show a bright, airy bathroom interior lit by soft natural morning light from a window, with beige and off-white tones, a wooden counter, folded white towels, a pump bottle, a sponge, woven baskets, and a few green plants. In front of the bathroom scene, place a youthful anime-style person with {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;soft medium brown&amp;#34;} tousled short hair, fair skin, and a relaxed expression, standing in a casual post-bath pose. The character wears a loose white T-shirt with a tiny dark square chest logo and light brown drawstring lounge pants, one hand in a pocket and the other holding a white towel up near the face and shoulder, conveying a fresh, just-bathed feeling. Near the character, include the handwritten-style Japanese side note “湯上がりの、リラックスタイム。” Add an oval badge on the lower right of the main image area with the English heading “GOOD BATH DAY” and Japanese explanatory text inside, plus a small bathtub icon. Below the main feature, include exactly 2 small inset images of the same character in the bathroom, each framed as rectangular mini-panels with narrow vertical Japanese captions beside them. At the bottom, create exactly 4 rounded rectangular information cards in a row: card 1 labeled “POINT 01” with the heading “お風呂の基本” and text about soaking in lukewarm water around 38–40°C; card 2 labeled “POINT 02” with the heading “日常でできること” and text about making bathing part of a routine instead of only showering; card 3 labeled “POINT 03” with the heading “楽しみ方・取り入れ方” and text about bath salts, scents, music, and lighting; card 4 labeled “まとめ” with concluding Japanese text about sustainable self-care. Decorate the cards with small illustrated elements such as leaves, a bathtub, a candle, a bottle, lavender sprigs, and a basket of folded towels. Along the very bottom, add a horizontal green tip strip labeled “今日からできる TIP” with exactly 3 checklist items: “就寝の1〜2時間前に入浴する”, “スマホは浴室に持ち込まない”, and “水分補給を忘れずに”. Place a final handwritten-style Japanese phrase at the lower right reading “自分をいたわる時間を。” The overall look should be clean, gentle, wellness-focused, feminine-neutral, and polished like a Japanese seasonal magazine infographic, with delicate anime illustration, soft shadows, subtle textures, and calm spa-like atmosphere.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;日式科幻换装流程板&#34;&gt;日式科幻换装流程板
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/yy7482933910896/status/2048192904922075161&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/yy7482933910896&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@yy7482933910896&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/087.webp&#34;
	width=&#34;1199&#34;
	height=&#34;675&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/087_hu_b07edc1e2ab93dae.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/087_hu_7eadfa0842e62977.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;日式科幻换装流程板&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;177&#34;
		data-flex-basis=&#34;426px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{&amp;#34;type&amp;#34;:&amp;#34;Japanese sci-fi armor dressing-process infographic&amp;#34;,&amp;#34;style&amp;#34;:&amp;#34;cinematic live-action tokusatsu-inspired promotional board, realistic industrial lighting, polished metal surfaces, sharp photographic detail&amp;#34;,&amp;#34;theme&amp;#34;:&amp;#34;manual pre-battle suit-up sequence for a female hero in a red, silver, black, and blue protector suit&amp;#34;,&amp;#34;subject&amp;#34;:{&amp;#34;character&amp;#34;:{&amp;#34;gender&amp;#34;:&amp;#34;female&amp;#34;,&amp;#34;age&amp;#34;:&amp;#34;young adult&amp;#34;,&amp;#34;identity&amp;#34;:&amp;#34;helmetless heroine during assembly, face intentionally obscured or anonymized in every unhelmeted panel&amp;#34;,&amp;#34;hair&amp;#34;:&amp;#34;dark brown to black hair tied in a high ponytail with bangs&amp;#34;,&amp;#34;undersuit&amp;#34;:&amp;#34;glossy black skintight inner suit with silver chest panel and white neck ring&amp;#34;,&amp;#34;armor&amp;#34;:&amp;#34;retro-futuristic protector armor with red shoulder and arm plates, silver breastplate and torso plating, circular blue chest core, red waist unit, white gloves, red forearm guards with yellow stripe accents&amp;#34;,&amp;#34;helmet&amp;#34;:&amp;#34;round red-and-silver helmet with black visor&amp;#34;},&amp;#34;environment&amp;#34;:{&amp;#34;location&amp;#34;:&amp;#34;high-tech industrial hangar or armor bay&amp;#34;,&amp;#34;background elements&amp;#34;:[&amp;#34;metal framework&amp;#34;,&amp;#34;robotic equipment&amp;#34;,&amp;#34;tool benches&amp;#34;,&amp;#34;armor racks&amp;#34;,&amp;#34;computer monitors&amp;#34;,&amp;#34;workshop lighting&amp;#34;,&amp;#34;bay corridor marked BAY-07 in final panel&amp;#34;]}},&amp;#34;layout&amp;#34;:{&amp;#34;header&amp;#34;:{&amp;#34;count&amp;#34;:2,&amp;#34;labels&amp;#34;:[&amp;#34;ソルジャンヌ・スーツ 手動装着プロセス&amp;#34;,&amp;#34;専用プロテクタースーツ『ソルジャンヌ』を、戦闘前に手動で装着する様子。各ユニットを確実に装着し、システムを起動する。&amp;#34;],&amp;#34;design&amp;#34;:&amp;#34;wide black-to-red gradient banner across top, large bold white Japanese text, diagonal red accent&amp;#34;},&amp;#34;sections&amp;#34;:[{&amp;#34;title&amp;#34;:&amp;#34;1 インナースーツの確認&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;top-left&amp;#34;,&amp;#34;count&amp;#34;:1,&amp;#34;labels&amp;#34;:[&amp;#34;各部のセンサーとコネクタをチェック。戦闘に備え、身体の状態を最終認する。&amp;#34;],&amp;#34;image&amp;#34;:&amp;#34;three-quarter view of the heroine in only the black glossy inner suit, looking down while checking or tightening a wrist connector&amp;#34;},{&amp;#34;title&amp;#34;:&amp;#34;2 胸部・肩部アーマーの装着&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;top-center&amp;#34;,&amp;#34;count&amp;#34;:1,&amp;#34;labels&amp;#34;:[&amp;#34;胸部ユニットと肩部プロテクターを装着。コネクタを接続し、ロックを固定する。&amp;#34;],&amp;#34;image&amp;#34;:&amp;#34;mid shot with chest armor and red shoulder plates installed, heroine fastening the front torso area with both hands&amp;#34;},{&amp;#34;title&amp;#34;:&amp;#34;3 腰部ユニット・ベルトの固定&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;top-right&amp;#34;,&amp;#34;count&amp;#34;:1,&amp;#34;labels&amp;#34;:[&amp;#34;ウエストユニットを装着し、各部のロックを確認。可動部の動作チェックを行う。&amp;#34;],&amp;#34;image&amp;#34;:&amp;#34;mid shot with torso armor completed, heroine tightening or checking the waist belt and side locks&amp;#34;},{&amp;#34;title&amp;#34;:&amp;#34;4 ヘルメットの準備&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;bottom-left&amp;#34;,&amp;#34;count&amp;#34;:1,&amp;#34;labels&amp;#34;:[&amp;#34;ヘルメットのバイザーと内部システムをチェック。ヘッドセットとの同期を確認する。&amp;#34;],&amp;#34;image&amp;#34;:&amp;#34;heroine holding the red helmet in both hands at chest height, showing the glossy black visor&amp;#34;},{&amp;#34;title&amp;#34;:&amp;#34;5 ヘルメットの装着・システム起動&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;bottom-center&amp;#34;,&amp;#34;count&amp;#34;:1,&amp;#34;labels&amp;#34;:[&amp;#34;ヘルメットを装着し、直上のコネクタをロック。全身のシステムが起動し、胸部コアが発光する。&amp;#34;],&amp;#34;image&amp;#34;:&amp;#34;heroine placing the helmet onto her head with both hands; blue chest core glowing brightly&amp;#34;},{&amp;#34;title&amp;#34;:&amp;#34;6 装着完了&amp;#34;,&amp;#34;position&amp;#34;:&amp;#34;bottom-right&amp;#34;,&amp;#34;count&amp;#34;:1,&amp;#34;labels&amp;#34;:[&amp;#34;全システムの最終チェックを行い、戦闘モードへ。ソルジャンヌ、出撃準備完了!&amp;#34;],&amp;#34;image&amp;#34;:&amp;#34;full-body frontal hero pose in a futuristic corridor, fully suited with helmet on, arms relaxed at sides&amp;#34;}],&amp;#34;footer&amp;#34;:{&amp;#34;count&amp;#34;:1,&amp;#34;labels&amp;#34;:[&amp;#34;一つ一つの装着が、命を守り、力を引き出す。 ソルジャンヌの戦いは、ここから始まる。&amp;#34;],&amp;#34;design&amp;#34;:&amp;#34;dark red cinematic footer strip with centered white Japanese slogan&amp;#34;},&amp;#34;grid&amp;#34;:{&amp;#34;rows&amp;#34;:2,&amp;#34;columns&amp;#34;:3,&amp;#34;panel_count&amp;#34;:6,&amp;#34;panel_borders&amp;#34;:&amp;#34;thin white dividers&amp;#34;,&amp;#34;number_badges&amp;#34;:6}},&amp;#34;text_rendering&amp;#34;:{&amp;#34;language&amp;#34;:&amp;#34;Japanese&amp;#34;,&amp;#34;font&amp;#34;:&amp;#34;bold sans-serif headline with smaller sans-serif body text&amp;#34;,&amp;#34;colors&amp;#34;:&amp;#34;white text on black, red, and white info bars; red numbered squares with white numerals&amp;#34;},&amp;#34;composition&amp;#34;:&amp;#34;16:9 wide infographic board, six equal photo panels arranged in a 3-by-2 grid, each panel captioned below with a red numbered box from 1 to 6&amp;#34;,&amp;#34;lighting&amp;#34;:&amp;#34;moody workshop lighting with metallic reflections and red accent lights, realistic shadows, cinematic sci-fi atmosphere&amp;#34;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;梦幻涩谷泡泡少女&#34;&gt;梦幻涩谷泡泡少女
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/terunari/status/2048308270914490666&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/terunari&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@terunari&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/088.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/088_hu_ac2ca09b4bcbac9.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/088_hu_d945777b617775df.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;梦幻涩谷泡泡少女&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A dreamy anime-style full-body illustration of a fashionable young woman standing in the middle of the Shibuya scramble crossing in Tokyo on a bright clear day, with the iconic cylindrical SHIBUYA 109 building centered in the background and recognizable commercial billboards surrounding it, including signs resembling H&amp;amp;M, DHC, DMM TV, Big Echo, and other dense Japanese city advertisements. She is the single main subject, posed gracefully as if floating or weightless, standing on top of one giant iridescent translucent soap bubble beneath her skirt. Her face is softly obscured and de-emphasized, while her long dark violet-black hair flows dramatically in the wind, with soft bangs and a pink floral headband accessory with ribbon on one side. She wears a sweet feminine spring outfit in pastel pink: a long-sleeved frilled blouse under a sleeveless pink dress with a ribbon tie at the chest, a tan belt at the waist, layered ruffles at the hem, and subtle sakura flower embroidery near the lower skirt. Her expression and body language should feel gentle, elegant, whimsical, and slightly magical. One hand is raised with her index finger pointing upward toward a floating bubble that contains 1 smartphone; her other hand holds a loop handle attached to a large transparent iridescent shopping-bag-like bubble containing 3 visible items: 1 SHIBUYA 109 paper shopping bag, 1 pink shopping bag or package, and 1 small pink bunny-faced pouch. Also include 1 separate floating smartphone/tablet-like device outside the bubbles near the lower left side, and 1 floating bubble on the lower right containing 1 compact camera. Surround her with many soap bubbles of different sizes, all highly reflective with rainbow highlights and delicate transparency, creating a soft sparkling atmosphere. The city scene should be busy but slightly softened, with pedestrians in the far background, crosswalk stripes in the foreground, and warm sunlight filtering through the urban canyon. Use polished high-detail anime illustration rendering, luminous pastel colors, glossy reflections, soft bloom, a romantic spring palette, and a magical everyday Tokyo aesthetic.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;暴风雨热带城市与屋顶飞机&#34;&gt;暴风雨热带城市与屋顶飞机
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Gerry/status/2048303505702629537&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Gerry&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Gerry&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/089.webp&#34;
	width=&#34;1199&#34;
	height=&#34;678&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/089_hu_8c85bf73daf63068.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/089_hu_e78d6f4e7fd96e6f.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;暴风雨热带城市与屋顶飞机&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;176&#34;
		data-flex-basis=&#34;424px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A cinematic wide aerial view of a tropical coastal city at sunset during a violent storm, split dramatically between dark storm clouds on the left and blazing golden sunlight on the right. In the foreground, a small single-engine light airplane with a high wing and visible tail is parked or perched precariously on a flat rooftop, seen from behind and slightly above, centered near the bottom of the frame. To the left midair, 1 helicopter flies low over the city with its searchlight cast downward. In the sky, include 1 faint lightning bolt on the far left. The city below is dense with wet streets, reflective pavement, low-rise commercial buildings, and a few taller modern towers, including 1 prominent striped high-rise near the center. A glowing red circular neon sign is visible near the middle distance. On the right side, a calm bay or inlet curves through the city, lined with 1 row of tall palm trees along the waterfront road, and crossed by 1 long low bridge in the distance. The water and streets glisten from recent rain, reflecting the orange sunlight breaking through the clouds. Mood is tense, dramatic, and slightly surreal, like a movie still from an urban disaster thriller. Photorealistic, ultra-detailed, high dynamic range lighting, volumetric sun rays, storm atmosphere, wet surfaces, rich contrast, deep shadows, golden highlights, wide-angle lens, epic composition.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;户外运动服饰网格广告&#34;&gt;户外运动服饰网格广告
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/SPEEDAI07/status/2049081198211736062&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/SPEEDAI07&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@SPEEDAI07&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/090.webp&#34;
	width=&#34;896&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/090_hu_f1558c734cabdcd9.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/090_hu_b0414569d42985bc.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;户外运动服饰网格广告&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;74&#34;
		data-flex-basis=&#34;179px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A dynamic 2×2 grid collage of modern outdoor sportswear advertising posters, each panel representing a different adventure lifestyle brand. High-energy, editorial-style composition with bold typography and textured graphic design.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Top-left panel:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Athletic male model in a bright blue insulated winter jacket, black snow pants, gloves, and sunglasses, stepping forward in a snowy environment. Snow particles flying, dramatic motion. Background features rough blue paint brush strokes. Bold distressed typography reads: “NEVER STOP EXPLORING.” Additional small text: “Built for extremes.” High contrast, rugged winter exploration theme.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Top-right panel:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Fit male hiker climbing rocky terrain, wearing an olive green shirt, black trekking pants, and a large black backpack with orange straps. Dust and debris kicking up from the ground. Background includes orange paint strokes and sketched mountain graphics. Bold text: “BUILT FOR HERE – INDIA TESTED.” Handwritten Hindi accents and arrows. Warm earthy tones.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Bottom-left panel:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Calm outdoor scene with a male model sitting on a rock, wearing a green jacket, beanie, sunglasses, and hiking shoes. Minimal scenic mountain illustration in the background with soft green tones. Typography reads: “ESCAPE THE NOISE – JUST GO OUTSIDE.” Clean, relaxed, nature-focused aesthetic with subtle graphic elements.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Bottom-right panel:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Energetic female runner in motion wearing a purple athletic t-shirt, black shorts, and running shoes. Bright, playful background with purple and yellow paint splashes, doodles, arrows, and sun illustration. Bold typography: “READY FOR EVERYONE – START YOUR JOURNEY.” Youthful, vibrant fitness energy.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Overall style:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;High-resolution, photorealistic sportswear campaign
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Bold brushstroke textures and grunge overlays
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Mixed typography: distressed, handwritten, and modern sans-serif
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Strong color blocking per panel (blue, orange, green, purple)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Dynamic poses conveying motion, strength, and adventure
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Clean grid layout with balanced spacing
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Commercial advertising / brand campaign aesthetic (Nike, Decathlon style)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Lighting: Professional, cinematic lighting with sharp detail and contrast
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Mood: Energetic, adventurous, motivational
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Aspect ratio: 1:1 (square collage)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;地形字母卫星图面板&#34;&gt;地形字母卫星图面板
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/madpencil_/status/2049080259476349218&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/madpencil_&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@madpencil_&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/091.webp&#34;
	width=&#34;1200&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/091_hu_62b8746b955a3fad.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/091_hu_bbe920a4698343b.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;地形字母卫星图面板&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Ultra-realistic satellite view from space, a clean modern editorial layout of 9 vertical panels arranged side-by-side on a white background, together forming the word &amp;#34;MADPENCIL&amp;#34;, each panel containing one letter created entirely from natural Earth topography, no artificial text overlays:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Panel 1 (M): rugged mountain ranges and deep valleys forming a sharp, angular &amp;#34;M&amp;#34;, rocky textures, high elevation shadows
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Panel 2 (A): winding river cutting through dense green forest forming an organic &amp;#34;A&amp;#34;, strong contrast between water and vegetation
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Panel 3 (D): desert dunes and wind-sculpted sand patterns shaping a smooth &amp;#34;D&amp;#34;, warm tones, soft gradients
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Panel 4 (P): agricultural farmland grids and patchwork fields forming a structured &amp;#34;P&amp;#34;, geometric patterns clearly visible
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Panel 5 (E): glacier and ice formations carving a crisp &amp;#34;E&amp;#34;, bright whites and icy blues, fractured textures
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Panel 6 (N): braided river system across floodplains forming &amp;#34;N&amp;#34;, branching channels with natural flow lines
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Panel 7 (C): coastal shoreline and ocean edge shaping a curved &amp;#34;C&amp;#34;, waves and sediment gradients visible
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Panel 8 (I): narrow canyon or straight river cutting through terrain forming a minimal &amp;#34;I&amp;#34;, strong vertical emphasis
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Panel 9 (L): volcanic terrain with lava flows forming an &amp;#34;L&amp;#34;, dark rock with glowing red/orange lava accents
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;top-down satellite perspective, NASA Earth observation style, hyper-detailed textures, realistic geography, consistent scale and lighting across all panels, minimal clouds, high contrast, sharp focus, subtle atmospheric haze, natural color grading, ultra high resolution 8K, clean spacing between panels, modern gallery-style composition, visually cohesive but each panel distinctly different biome, letters clearly readable yet organically integrated into terrain
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;冰咖啡产品信息图&#34;&gt;冰咖啡产品信息图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Strength04_X/status/2049082049995362785&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Strength04_X&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Strength04_X&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/092.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/092_hu_f430dbb0b53aa34d.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/092_hu_bfc913c0d69a3a17.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;冰咖啡产品信息图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A high-end café-style product photograph of a transparent glass filled with iced coffee, centered against a soft beige and cream seamless studio background. The drink shows a rich dark coffee base blending with creamy milk swirls, creating a smooth gradient effect. Several clear ice cubes are visible with realistic transparency and light refraction. The glass has subtle condensation droplets, adding freshness. Soft natural studio lighting creates delicate highlights and a clean shadow beneath the glass. Ultra-sharp focus, premium beverage advertisement style, DSLR macro photography, hyper realistic, 8K.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;PROMPT 2 - Create a hyper-realistic exploded vertical infographic composition of an iced coffee.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Top → Bottom structure:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Foam Layer (light creamy foam with soft airy texture)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;→ Coffee Liquid (rich dark espresso layer with smooth gradient)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;→ Ice Cubes (transparent cubes with sharp edges and reflections)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;→ Milk Layer (soft creamy white layer with smooth blend effect)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;→ Glass Base (clear minimal glass structure)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;All elements must be perfectly centered, evenly spaced, and aligned vertically. Use a soft beige seamless background with clean café-style lighting and subtle realistic shadows beneath each floating element. The composition should feel like a premium beverage ad combined with a clean infographic layout.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Add clean minimalist text labels with thin pointer lines using these exact labels:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;“Foam”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;“Coffee”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;“Ice”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;“Milk”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;“Glass”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Ultra-realistic liquid detail, sharp reflections, premium commercial photography, 8K.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;时尚连衣裙系列信息图&#34;&gt;时尚连衣裙系列信息图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/cellinlab/status/2049073530738754042&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/cellinlab&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@cellinlab&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/093.webp&#34;
	width=&#34;819&#34;
	height=&#34;1024&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/093_hu_47c6ab77e8e2fa59.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/093_hu_9d02d9742ac6b6c1.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;时尚连衣裙系列信息图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;79&#34;
		data-flex-basis=&#34;191px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;image_type&amp;#34;: &amp;#34;Commercial Fashion Infographic&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;subject&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;model&amp;#34;: &amp;#34;Young Asian woman with elegant features and dark hair tied in a loose bun&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;attire&amp;#34;: &amp;#34;Satin midi dress with spaghetti straps and a draped cowl neckline&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;fit&amp;#34;: &amp;#34;Bodycon / slim fit with side ruching and a subtle leg slit&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;layout_structure&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;composition&amp;#34;: &amp;#34;Multi-panel editorial layout&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;header&amp;#34;: &amp;#34;Bold serif typography reading &amp;#39;DRESS COLLECTION&amp;#39;&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;main_feature&amp;#34;: &amp;#34;Large centered portrait of the model, a young Asian woman, wearing a wine-red satin dress&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;secondary_panels&amp;#34;: [
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;Dress Features grid with minimalist icons&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;Dress Guide sidebar detailing neckline, sleeve, and length&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;Color Collection row showing the dress in Black, Emerald Green, Navy, Champagne, and Royal Blue&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;#34;Dress Style Guide footer featuring the model in various atmospheric evening settings&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;aesthetic_style&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;color_palette&amp;#34;: &amp;#34;Deep jewel tones (Wine Red, Emerald, Navy, Royal Blue) contrasted with Champagne and Black against a warm cream or beige background&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;lighting&amp;#34;: &amp;#34;Soft studio lighting with elegant highlights on the satin fabric texture&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;vibe&amp;#34;: &amp;#34;Luxurious, timeless, and sophisticated commercial advertising&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  },
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;typography&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;primary&amp;#34;: &amp;#34;Classic Serif for titles&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;secondary&amp;#34;: &amp;#34;Clean Sans-Serif for body text and technical details&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;单色时尚封面&#34;&gt;单色时尚封面
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/sha_zdiii/status/2049088961008848905&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/sha_zdiii&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@sha_zdiii&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/094.webp&#34;
	width=&#34;670&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/094_hu_f5db21fbfc89aec1.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/094_hu_7eb4175a44dfb464.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;单色时尚封面&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;55&#34;
		data-flex-basis=&#34;134px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Ultra-realistic high-fashion magazine cover, black and white cinematic portrait of a confident young female model, slightly messy wet-look hair, sharp jawline, intense gaze, natural glossy lips, wearing a premium black leather trench coat over a minimal outfit.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;The model is posing slightly tilted forward with attitude, hands adjusting the coat, accessorized with multiple rings, ear piercings, and layered chain necklaces.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Lighting is dramatic studio lighting with soft shadows, high contrast, editorial Vogue-style aesthetic, ultra-detailed skin texture, 8K resolution, sharp focus.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Background is minimal gradient grey with soft light streaks for depth.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Magazine cover layout included:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Large bold serif title at top: “VOID ELITE”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Subtitle small: “Edition 07 / 2026”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Left text: “NOT BUILT TO FOLLOW — BUILT TO DOMINATE”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Bottom left: “HIGH-FASHION STREET LUXURY”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Right vertical text: “UNTOUCHABLE PRESENCE”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Bottom right: “SILENCE IS POWER”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Add a small holographic glitch-style label over the eyes with text “ICON”
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Style: luxury fashion editorial, Vogue, Harper’s Bazaar, monochrome aesthetic, modern typography, clean layout, ultra premium branding
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--ar 2:3 --style raw --quality 2 --sharp focus --photorealistic
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;快餐角色海报&#34;&gt;快餐角色海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/LoovaAI/status/2049085173015425354&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/LoovaAI&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@LoovaAI&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/095.webp&#34;
	width=&#34;880&#34;
	height=&#34;1168&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/095_hu_4c7f3d39e545b335.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/095_hu_7ced76a3701ab5be.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;快餐角色海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Use the character in image 1 as the main subject. Create a vertical poster ad in American fast food diner style. Low angle, wide lens. Red / yellow / white palette with ketchup splashes, melting cheese graphics, comic burst shapes, retro diner typography, and bold fast food poster collage aesthetic.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;跨越两个世纪的纽约电影感海报&#34;&gt;跨越两个世纪的纽约电影感海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Shinning1010/status/2049460661109879022&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Shinning1010&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Shinning1010&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/096.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/096_hu_712435186164880e.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/096_hu_40c0d17ec5a1c06c.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;跨越两个世纪的纽约电影感海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a cinematic 3:4 vertical poster of New York City that feels truly epic and unconventional, showing the passage from the 20th century to the 21st century in one seamless image. Place a lone figure at the center of the composition, standing in the middle of the street and looking forward as if witnessing New York across time. The left side should depict 20th-century New York with warm sepia atmosphere, vintage taxis, old newsstands, retro lamps, and landmarks like the Chrysler Building and Empire State Building. The right side should depict 21st-century New York with glass skyscrapers, One World Trade Center, digital billboards, and modern urban energy. Make the transition natural rather than split-screen, with coherent perspective, wet reflective pavement, realistic textures, atmospheric depth, and no text.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;蓝眼泪鸡尾酒教程信息图海报&#34;&gt;蓝眼泪鸡尾酒教程信息图海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/cellinlab/status/2049460927121244510&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/cellinlab&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@cellinlab&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/097.webp&#34;
	width=&#34;1067&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/097_hu_9c4415e7dcaa1d2c.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/097_hu_a9eaadf9e22e347a.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;蓝眼泪鸡尾酒教程信息图海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;88&#34;
		data-flex-basis=&#34;213px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;试着帮我生成调制一杯蓝色眼泪鸡尾酒（配料流程你自己发挥想象，但是要写清楚确保可复现）的流程教学图和概念设计宣传图，轻奢酒咖海报风格，横版。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;ascii-登革热信息图&#34;&gt;ASCII 登革热信息图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/mapasbr/status/2049458767520051448&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/mapasbr&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@mapasbr&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/098.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/098_hu_17f07d5693cbf7c6.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/098_hu_8e33f45aa7a814cd.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;ASCII 登革热信息图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;infográfico ASCII DENGUE
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Navegacion de categorias: &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-case-index/&#34; &gt;Indice general&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/&#34; &gt;E-commerce&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/&#34; &gt;Creatividad publicitaria&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/&#34; &gt;Retratos&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/&#34; &gt;Posters e ilustraciones&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-character-cases/&#34; &gt;Personajes&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/&#34; &gt;UI y redes sociales&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/&#34; &gt;Comparaciones y comunidad&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;enlaces-del-repositorio-original&#34;&gt;Enlaces del repositorio original
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Pagina del proyecto&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts/blob/main/cases/poster.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Archivo de categoria original&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>GPT-Image 2 Prompt Library: UI and Social Media Cases</title>
        <link>https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/</link>
        <pubDate>Sat, 02 May 2026 11:35:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/</guid>
        <description>&lt;p&gt;Esta pagina recopila 56 casos de la categoria &lt;code&gt;UI y redes sociales&lt;/code&gt;. Cada entrada conserva el enlace original, el autor, la imagen generada y el prompt completo.&lt;/p&gt;
&lt;p&gt;Navegacion de categorias: &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-case-index/&#34; &gt;Indice general&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/&#34; &gt;E-commerce&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/&#34; &gt;Creatividad publicitaria&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/&#34; &gt;Retratos&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/&#34; &gt;Posters e ilustraciones&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-character-cases/&#34; &gt;Personajes&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/&#34; &gt;UI y redes sociales&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/&#34; &gt;Comparaciones y comunidad&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;ui-y-redes-sociales&#34;&gt;UI y redes sociales
&lt;/h2&gt;&lt;h3 id=&#34;一句提示词生成-ui-设计&#34;&gt;一句提示词生成 UI 设计
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/austinit/status/2044968740782272596&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/austinit&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@austinit&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/000.webp&#34;
	width=&#34;983&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/000_hu_a0509e119117b487.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/000_hu_fee7ad21aafb346f.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;一句提示词生成 UI 设计&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;81&#34;
		data-flex-basis=&#34;196px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;用这种风格帮我生成一套UI设计系统，包含网页、移动端、卡片、控件、按钮 以及其它
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;业余-iphone-keynote-抓拍&#34;&gt;业余 iPhone Keynote 抓拍
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/patrickassale/status/2044687244368441742&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/patrickassale&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@patrickassale&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/001.webp&#34;
	width=&#34;1200&#34;
	height=&#34;900&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/001_hu_6a976169b655751e.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/001_hu_6146ba205d59f349.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;业余 iPhone Keynote 抓拍&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;133&#34;
		data-flex-basis=&#34;320px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Amateur iPhone photo at Apple Park during the iPhone 20 keynote, Tim Cook presenting on stage. Shot from the crowd at a distance
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;手写笔记本照片&#34;&gt;手写笔记本照片
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/patrickassale/status/2044569086013718958&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/patrickassale&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@patrickassale&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/002.webp&#34;
	width=&#34;1200&#34;
	height=&#34;900&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/002_hu_a790d3353f5c70e9.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/002_hu_67826a1ed311f24.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;手写笔记本照片&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;133&#34;
		data-flex-basis=&#34;320px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Amateur photo of an open notebook lying flat, filled with handwritten notes in black ballpoint pen. The handwriting is casual and slightly messy, like personnal notes, natural imperfections, crossed out words, underlined headings. Shot from slightly above, natural daylight from a window, no flash. Casual desk setting, shot on iPhone
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;宋代社交媒体信息流&#34;&gt;宋代社交媒体信息流
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Panda20230902/status/2045385588065313057&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Panda20230902&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Panda20230902&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/003.webp&#34;
	width=&#34;400&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/003_hu_6467411051bf9ba.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/003_hu_7433fbf98c017d2c.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;宋代社交媒体信息流&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;33&#34;
		data-flex-basis=&#34;80px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;#34;宋朝人的朋友圈&amp;#34;/&amp;#34;SONG DYNASTY SOCIAL MEDIA FEED&amp;#34;，古今穿越幽默融合界面设计风格，画面模拟手机社交媒体界面，但内容全部是宋朝场景头像是宋代文人画像，用户名&amp;#34;苏东坡SuShi_Official&amp;#34;，发布内容&amp;#34;刚到黄州，被贬了但心情还行。今天自己做了东坡肉，味道绝了，附菜谱：&amp;#34;，配图为工笔画风格的东坡肉特写，点赞列表&amp;#34;黄庭坚、秦观、佛印等126人&amp;#34;，评论区&amp;#34;王安石：呵呵&amp;#34;&amp;#34;司马光：还是那个味道&amp;#34;，界面元素如点赞图标用宋代花纹替代，状态栏显示&amp;#34;大宋移动 5G&amp;#34;和&amp;#34;元丰三年&amp;#34;，配色为手机深色模式搭配宋代雅致色调，历史与社交媒体的趣味碰撞杰作
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;多平台内容截图&#34;&gt;多平台内容截图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/MrLarus/status/2045373105041007013&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/MrLarus&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@MrLarus&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/004.webp&#34;
	width=&#34;555&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/004_hu_e0e9a2612bd3b890.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/004_hu_4f5213e6702ea897.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;多平台内容截图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;46&#34;
		data-flex-basis=&#34;111px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;1、生成视频号内容截图，主题：中老年不要盲目催婚，iPhone尺寸
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;2、生成抖音内容截图，主题：跟上AI浪潮9.9包教会，iPhone尺寸
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;3、生成小红书内容截图，主题：精致女孩背后都有网贷，iPhone尺寸
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;4、生成快手内容截图：主题：直播离婚预告，iPhone尺寸
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;刘亦菲抖音直播截图&#34;&gt;刘亦菲抖音直播截图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/alanblogsooo/status/2044784762594918516&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/alanblogsooo&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@alanblogsooo&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/005.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/005_hu_933d147f1c4bffb3.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/005_hu_52d31acefd4caf39.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;刘亦菲抖音直播截图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;9:16 的图片比例，生成一张抖音直播的截图，里面是 刘亦菲 在直播，刘亦菲 手里拿着牌子，牌子里写着 今晚直播，欢迎来参亦菲畅聊！
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;太祖李成桂的-x-主页&#34;&gt;太祖李成桂的 X 主页
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/SKA_Neotype/status/2044637900978217334&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/SKA_Neotype&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@SKA_Neotype&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/006.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/006_hu_2b6cce52a6aee798.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/006_hu_c3e9bc7604f9c77a.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;太祖李成桂的 X 主页&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;태조 이성계의 X  페이지(위화도 회군을 벌이기 직전- 최영 장군과 서로 디스하는 내용이 담긴 게시글들)을 만들어 주세요.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;风格转-ui-设计系统&#34;&gt;风格转 UI 设计系统
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/stark_nico99/status/2045836554451706125&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/stark_nico99&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@stark_nico99&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/007.webp&#34;
	width=&#34;1199&#34;
	height=&#34;1312&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/007_hu_7734ca6292c1e429.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/007_hu_6901a3a91a9b4f0a.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;风格转 UI 设计系统&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;91&#34;
		data-flex-basis=&#34;219px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;用这种风格帮我生成一套UI设计系统，包含网页、移动端、卡片、控件、按钮以及其它。把这套视觉风格作为参考生成网页。我尝试了宇宙、飞行、蝴蝶主题。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;桃太郎讲解幻灯片&#34;&gt;桃太郎讲解幻灯片
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/yammamon/status/2045778624092254603&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/yammamon&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@yammamon&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/008.webp&#34;
	width=&#34;1280&#34;
	height=&#34;853&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/008_hu_bf54d5d0ed5b99e4.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/008_hu_2f206b995e83ec1c.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;桃太郎讲解幻灯片&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;「いらすとや」のほのぼのとした雰囲気と、「霞ヶ関スライド」の圧倒的な情報密度を融合させた、桃太郎の解説スライド（ポンチ絵）を作成して
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;博物馆风汉服拆解信息图&#34;&gt;博物馆风汉服拆解信息图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/MrLarus/status/2045504669401653414&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/MrLarus&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@MrLarus&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/009.webp&#34;
	width=&#34;1074&#34;
	height=&#34;1280&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/009_hu_d938583209d8ce73.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/009_hu_c0a7a9e3e48dbd34.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;博物馆风汉服拆解信息图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;83&#34;
		data-flex-basis=&#34;201px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;请根据【主题】自动生成一张“博物馆图鉴式中文拆解信息图”。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;要求整张图兼具真实写实主视觉、结构拆解、中文标注、材质说明、纹样寓意、色彩含义和核心特征总结。你需要根据【主题】自动判断最合适的主体对象、服饰体系、器物结构、时代风格、关键部件、材质工艺、颜色方案与版式结构，用户无需再提供其他信息。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;整体风格应为：国家博物馆展板、历史服饰图鉴、文博专题信息图，而不是普通海报、古风写真、电商详情页或动漫插画。背景采用米白、绢纸白、浅茶色等纸张质感，整体高级、克制、专业、可收藏。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;版式固定为：
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 顶部：中文主标题 + 副标题 + 导语
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 左侧：结构拆解区，中文引线标注关键部件，并配局部特写
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 右上：材质 / 工艺 / 质感区，展示真实纹理小样并附说明
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 右中：纹样 / 色彩 / 寓意区，展示主色板、纹样样本和文化解释
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 底部：穿着顺序 / 构成流程图 + 核心特征总结
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;若主题适合人物展示，则以真实人物全身站姿为中央主体；若更适合器物或单体结构，则改为中心主体拆解图，但整体仍保持完整中文信息图形式。所有文字必须为简体中文，清晰、规整、可读，不要乱码、错字、英文或拼音。重点突出真实结构、材质差异、文化说明与图鉴气质。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;避免：海报感、影楼感、电商感、动漫感、cosplay感、乱标注、错结构、糊字、假材质、过度装饰。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;手相诊断报告&#34;&gt;手相诊断报告
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/agi_aibusi/status/2046530764871696750&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/agi_aibusi&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@agi_aibusi&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/010.webp&#34;
	width=&#34;701&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/010_hu_55204af3273c2953.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/010_hu_79f3fe6eb5476e32.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;手相诊断报告&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;58&#34;
		data-flex-basis=&#34;140px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;GPT-image-2でこの手相を診断して詳細な鑑定書を作って
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;生命線・知能線・感情線・運命線・太陽線・財運線・結婚線を、線の形状・濃淡・枝分かれ・起点終点まで分析すること。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;助言を重点的に高品質な占い鑑定書にまとめること。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;书法字帖页&#34;&gt;书法字帖页
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/MrLarus/status/2046510310253539764&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/MrLarus&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@MrLarus&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/011.webp&#34;
	width=&#34;960&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/011_hu_5717a7c1927bd9b1.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/011_hu_d59e3a2e0bd44d92.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;书法字帖页&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;80&#34;
		data-flex-basis=&#34;192px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;生成一张【字体】书法临摹字帖
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;唐吉诃德促销-pop-海报&#34;&gt;唐吉诃德促销 POP 海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/loglogrog/status/2046437230127034774&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/loglogrog&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@loglogrog&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/012.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/012_hu_4b3a5e93f98ba7ab.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/012_hu_ff03b8952b0ad690.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;唐吉诃德促销 POP 海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;GPT Image 2を使って、OpenClawの情報を調べてドンキの広告ポップ風に実際のドンキに貼っているような感じで画像生成してください
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;日式抽卡游戏界面&#34;&gt;日式抽卡游戏界面
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/the_wheel_2024/status/2046519658166317160&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/the_wheel_2024&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@the_wheel_2024&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/013.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/013_hu_d74bbc1c76c72374.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/013_hu_bbfad2e020a69830.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;日式抽卡游戏界面&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;日本のソシャゲのガチャ画面を生成して、
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;elon-musk-抖音直播截图&#34;&gt;Elon Musk 抖音直播截图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Shinning1010/status/2046501587762188535&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Shinning1010&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Shinning1010&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/014.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/014_hu_f74afb08f82e0e53.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/014_hu_e335904cbedf2c0.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Elon Musk 抖音直播截图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A 9:16 vertical version, high-detail realistic style Chinese TikTok live screenshot, Elon Musk is talking to the mobile phone camera in the live broadcast room, excited, smiling, and the live atmosphere is warm and real. He held a white handwritten sign in one hand, which clearly said: &amp;#34;Thank you Shinning&amp;#34;. There are obvious Chinese TikTok interface elements in the live broadcast screen, including likes, comments and share icons arranged vertically on the right, scrolling Chinese bullet screens and interactive comments below, and the &amp;#34;live broadcast&amp;#34; logo at the top, which looks like a real mobile phone screenshot. There is an eye-catching gift prompt special effect in the screen: &amp;#34;Shinning sent TikTok No. 1&amp;#34;, with gift animation light effect and platform-style prompt box. Musk is in a professional live broadcast environment, with a mobile phone holder, a ring fill light and a desktop microphone in front of him. The background is a modern technology live broadcast room with bright lights and a slight neon atmosphere. The composition is real and natural, like the ongoing live screenshot of the Chinese short video platform. The interface information is rich but not messy, the characters are clear, the expression is vivid, the details are rich, the sense of real photography, the depth of field, high definition, cinematic, photorealistic, realistic livestream screenshot, social media UI, Chinese Douyin live room, detailed lighting, natural skin texture.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Negative prompts:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Low definition, blur, cartoon, illustration, too strong CG sense, two-dimensional, deformed fingers, wrong text, scrambled code, multiple mobile phones, multiple brands, character repetition, face collapse, facial features distortion, excessive skin polishing, overexposure, too dark, messy background, wrong UI, non-Chinese short video interface, too many English bullet screens, gift special effects are not obvious, cropping error, proportional error
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Supplementary reinforcement words:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Real mobile phone screen recording screenshot feeling, the live broadcast UI is complete, the gift prompt box conforms to the style of the Chinese short video platform, the Chinese comment area is active, the number of people online in the live broadcast room is clearly displayed, and the time, power and signal bar are visible.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;刘亦菲抖音直播截图-1&#34;&gt;刘亦菲抖音直播截图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/kylegeeks/status/2046479783765397629&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/kylegeeks&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@kylegeeks&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/015.webp&#34;
	width=&#34;1200&#34;
	height=&#34;772&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/015_hu_210a3d6381ab38f7.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/015_hu_3ce3f3478f4c7132.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;刘亦菲抖音直播截图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;155&#34;
		data-flex-basis=&#34;373px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;9:16 的图片比例,生成一张抖音直播的截图,里面是 刘亦菲 在直播,刘亦菲 手里拿着牌子,牌子里写着 今晚直播,欢迎来参亦菲畅聊!
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;赛博朋克霓虹-ui-设计系统&#34;&gt;赛博朋克霓虹 UI 设计系统
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/AZLnfvp/status/2046468976092533180&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/AZLnfvp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@AZLnfvp&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/016.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/016_hu_88fb7dfbe578c750.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/016_hu_6861dde16988fed4.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;赛博朋克霓虹 UI 设计系统&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;用未来都市风格生成UI设计系统,灵感来自赛博朋克城市夜景,包含霓虹灯、玻璃建筑反射、高对比光影,配色以紫色、蓝色、粉色霓虹为主,设计网页Dashboard、移动端界面、卡片、按钮、控件等,视觉炫酷、层次丰富、科技感极强
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;trump-and-kim-livestream-pk-截图&#34;&gt;Trump and Kim Livestream PK 截图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/alanlovelq/status/2046048929490612464&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/alanlovelq&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@alanlovelq&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/017.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/017_hu_86f0321dd3c4882f.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/017_hu_4b71a2ab2286bfba.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Trump and Kim Livestream PK 截图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;1、生成特朗普和金正恩在抖音直播间打PK的截图  
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;2、生成不知火舞的小红书主页截图  
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;3、生成图片: 手写在教室黑板上的出师表全文,真实感的粉笔字迹,晴朗白天用iPhone手机实拍  
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;4、生成图片: T-800机器人的淘宝商品详情页,展示: 机器人的正面侧面背面三视图, 产品价格, 产品细节, 功能和使用场景等
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;日式-ai-游戏开发概览幻灯片提示词&#34;&gt;日式 AI 游戏开发概览幻灯片提示词
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/ailovedirector/status/2046905387274891296&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/ailovedirector&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@ailovedirector&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/018.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/018_hu_cbe5a586cb328e0a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/018_hu_8c67b1f43e45c185.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;日式 AI 游戏开发概览幻灯片提示词&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;横長のパワポ画像ここで生成してみて　どのモデル使ってるか判定するから、今のAIゲーム開発の概要をまとめた1枚パワポで　日本語で
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ゲーム開発の技術に関して、工数ベースでどこにパワーかかるかの分析資料といかに量産が大事かについての説明とかのパワポ画も作って
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;基于生成角色制作截图界面&#34;&gt;基于生成角色制作截图界面&amp;hellip;
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/khaiinit/status/2047219694130827273&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/khaiinit&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@khaiinit&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/019.webp&#34;
	width=&#34;1199&#34;
	height=&#34;675&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/019_hu_8b6725f5dd23affb.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/019_hu_8f807fa5b4b16d83.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;基于生成角色制作截图界面…&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;177&#34;
		data-flex-basis=&#34;426px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;based on the generated character help me generate a screenshot of screenshot of an pvp game themed around *zelda: wind breaker*
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;参考这张图的风格与配色创建落地页&#34;&gt;参考这张图的风格与配色创建落地页&amp;hellip;
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/D_studioproject/status/2047212826264211540&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/D_studioproject&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@D_studioproject&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/020.webp&#34;
	width=&#34;339&#34;
	height=&#34;475&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/020_hu_c3c8a43953642ff6.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/020_hu_232ea5fdd98ce77d.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;参考这张图的风格与配色创建落地页…&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;71&#34;
		data-flex-basis=&#34;171px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a landing page using this image as a reference for style and color grading.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;李佳琦口红直播背景&#34;&gt;李佳琦口红直播背景
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen/status/2047207826913972518&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/songguoxiansen&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@songguoxiansen&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/021.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/021_hu_94305250a7e186b8.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/021_hu_e1b1d851741502b5.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;李佳琦口红直播背景&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;李佳琦直播间背景，口红矩阵展示墙，暖光氛围灯，文案OMG买它
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;apple-pods-pro-3-耳机电商信息图&#34;&gt;Apple Pods Pro 3 耳机电商信息图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/meng_dagg695/status/2047935217231663186&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/meng_dagg695&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@meng_dagg695&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/022.webp&#34;
	width=&#34;1152&#34;
	height=&#34;2048&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/022_hu_23f0b833ea7cf39d.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/022_hu_3acb00488177719.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Apple Pods Pro 3 耳机电商信息图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;42
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;43
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;44
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;45
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;46
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;47
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;48
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;49
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;50
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;51
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;52
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;53
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;54
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;55
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;56
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;57
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;58
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;59
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;60
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;61
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;62
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;63
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;64
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;65
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;66
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;67
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;68
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;69
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;70
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;71
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;72
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;73
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;74
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;75
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;76
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;77
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;78
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;79
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;80
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;81
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;82
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;83
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;84
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;85
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;86
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;87
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;88
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;89
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;90
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;91
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;92
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;High-impact e-commerce infographic for &amp;#34;Apple Pods Pro 3&amp;#34; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;premium wireless over-ear headphones.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;FOREGROUND - PRODUCT HERO SHOT
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Extreme close-up of a hand holding a sleek, 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;matte-white premium over-ear headphone toward the camera 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;at a slight angle. The headphone features:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- Glossy white ear cushions with soft memory foam padding
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- Brushed aluminum silver headband with subtle Apple Pods 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  Pro 3 embossed branding
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- Black mesh speaker grille visible on the ear cup face
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- A tiny glowing green LED status indicator on the 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  right ear cup edge
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- Subtle touch-control icons etched on the outer cup surface
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Macro-lens shallow depth of field — hand and headphone 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;slightly blurred at edges to create cinematic depth. 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Product remains razor-sharp in center frame.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;CENTRAL SUBJECT — MODEL
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;In the mid-ground: a smiling young woman with freckles 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;and wavy pastel-pink hair. She wears:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- A vibrant lime-green knit beanie
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- A psychedelic black and white-striped long-sleeve shirt
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- The white over-ear headphones resting stylishly 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  around her neck (not on ears) — one hand casually 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  touching the ear cup
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Expression: relaxed, confident, joyful. 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;She is glancing slightly off-camera with a natural smile.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;BACKGROUND &amp;amp; ATMOSPHERE
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Clean soft-focus studio backdrop — light gray gradient 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;fading to warm white at center. 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Atmospheric overlays:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- Diagonal rainbow prism lens flares cutting across 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  upper-left to lower-right
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- Soft pastel light leaks in pink and yellow at corners
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 4–5 blurred white over-ear headphones floating 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  artistically in the background at various depths 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  and rotation angles
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- Subtle bokeh circles from background studio lights
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Lighting: Soft professional three-point studio lighting. 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Key light from upper-left, fill light right side. 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Rim light behind model for separation. 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Glossy highlights on headphone surfaces catching light naturally.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;TYPOGRAPHY &amp;amp; LAYOUT — Sans-Serif, Clean white 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;TOP CENTER (behind model, large background text):
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;→ Massive bold oversized text: &amp;#34;HEADPHONES&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   Semi-transparent white, spanning full width behind subject
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;TOP RIGHT CORNER:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;→ Bold clean text: &amp;#34;Apple Pods Pro 3&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   Subtitle smaller text: &amp;#34;Over-Ear Wireless&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;MID LEFT:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;→ Icon: small sound wave symbol
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;→ Bold text: &amp;#34;Premium Sound&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;→ Sub-text: &amp;#34;Active Noise Cancellation + Transparency Mode&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;MID RIGHT:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;→ Extra-large bold numeral: &amp;#34;40&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;→ Smaller text below: &amp;#34;hours of battery life&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;LOWER LEFT:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;→ Extra-large bold numeral: &amp;#34;0&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   with &amp;#34;to&amp;#34; beside it → then bold &amp;#34;100%&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;→ Sub-text: &amp;#34;Fast charge — 10 min = 3hrs playback&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;BOTTOM RIGHT:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;→ Extra-large bold numeral: &amp;#34;1&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;→ Sub-text: &amp;#34;Year Warranty Included&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;BOTTOM CENTER (fine print style):
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;→ Small elegant text: 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &amp;#34;Bluetooth 5.4  |  Hi-Res Audio Certified  
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    |  Foldable Design  |  USB-C Charging&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;TECHNICAL SPECS
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Resolution: 8K ultra-sharp
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Style: Commercial product photography meets 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       editorial fashion advertising
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Color Palette: White, lime green, pastel pink, 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;               rainbow prism accents
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Focus: Tack-sharp on headphone product — 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       shallow DOF on everything else
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Lens: 85mm macro, slight low angle
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Render Quality: Hyperrealistic, clean ad aesthetic, 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                vibrant yet professional color grading
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;apple-pods-pro-3-耳塞电商信息图&#34;&gt;Apple Pods Pro 3 耳塞电商信息图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/rovvmut_/status/2047912710365761828&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/rovvmut_&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@rovvmut_&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/023.webp&#34;
	width=&#34;1360&#34;
	height=&#34;2048&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/023_hu_9d284e83fa8ed923.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/023_hu_b3aae5396a7445c5.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Apple Pods Pro 3 耳塞电商信息图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;159px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;High-impact e-commerce infographic for &amp;#34;Apple Pods Pro 3&amp;#34; wireless earbuds.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;美妆产品商业营销照片&#34;&gt;美妆产品商业营销照片
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/AIwithSarah_/status/2047904483359760677&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/AIwithSarah_&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@AIwithSarah_&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/024.webp&#34;
	width=&#34;1529&#34;
	height=&#34;2048&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/024_hu_2fc18589c5ab85e1.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/024_hu_49494874c0f1388c.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;美妆产品商业营销照片&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;74&#34;
		data-flex-basis=&#34;179px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A high-resolution commercial marketing photograph features a young woman with sleek dark hair and a pink ribbed top in a neutral grey studio setting, centered behind a glossy Ellie Beauty spray bottle held prominently in the foreground. The composition is energized by vibrant, lime-green graphic &amp;#34;swooshes&amp;#34; and floating pill-shaped callouts that highlight product features like &amp;#34;glossy finish&amp;#34; and &amp;#34;upto 450°F protection&amp;#34; in bold black sans-serif text. The lighting is professionally diffused, casting soft highlights on the model’s face while creating a sharp, vertical reflection on the metallic green-to-gold gradient bottle label. Topping the scene is a large, lime-green headline in the upper right asking, &amp;#34;What does it do?&amp;#34;, altogether creating a clean, modern, and high-contrast aesthetic with a shallow depth of field that keeps the product and the model&amp;#39;s focused expression in sharp relief.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;aaa-电子游戏截图概念设计&#34;&gt;AAA 电子游戏截图概念设计
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/ChiefMonkeyMike/status/2047828814580138156&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/ChiefMonkeyMike&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@ChiefMonkeyMike&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/025.webp&#34;
	width=&#34;1672&#34;
	height=&#34;941&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/025_hu_9d87da51691dd0b.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/025_hu_2a6fa1a60d0f68c3.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;AAA 电子游戏截图概念设计&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;177&#34;
		data-flex-basis=&#34;426px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;generate screenshots from a AAA video game based off what The Sims Castaways sequel could look like. https://t.co/aL7hMdUYvj
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;西班牙语-grwm-早晨美妆缩略图&#34;&gt;西班牙语 GRWM 早晨美妆缩略图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/S0N_IA_/status/2047414367243657296&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/S0N_IA_&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@S0N_IA_&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/026.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/026_hu_32ebb9c4c41cdb8b.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/026_hu_d7b7561cda28184f.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;西班牙语 GRWM 早晨美妆缩略图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A vertical 9:16 TikTok-style GRWM beauty thumbnail set in a warm, sunlit Mediterranean-inspired bedroom. A stylish young woman with {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;dark brown&amp;#34;} hair in a messy curly updo sits at a marble vanity, leaning forward with one arm folded and the other hand applying lip balm or lipstick to her mouth. Her face is covered by a centered rectangular blur block for privacy, but the rest of her styling is elegant and natural: tan glowing skin, delicate gold necklace with a small round pendant, thin gold bracelet, stacked gold rings, and a white lace camisole with thin straps. In the foreground on the vanity are exactly 7 visible beauty objects: 1 round tabletop vanity mirror on the left, 1 cup holding 5 makeup brushes, 1 clear glass dropper bottle, 1 tall white pump skincare bottle, 1 small black dropper bottle, 1 beige rounded cosmetic sponge or puff, and 1 pale green squeeze tube on the right. The background shows a softly blurred cozy bedroom with 1 arched window on the left, 1 leafy potted plant, 1 bed with white bedding and a mustard accent pillow, exposed wooden ceiling detail, and 1 framed landscape painting on the wall. Use golden-hour sunlight streaming from the left, soft shadows, creamy skin tones, shallow depth of field, luxury lifestyle editorial photography, intimate self-care mood, polished but natural composition. Add bold playful Spanish headline text in the upper left in three stacked lines reading {argument name=&amp;#34;headline text&amp;#34; default=&amp;#34;Mi rutina de belleza matutina&amp;#34;}, with each line large and rounded, white outline and soft drop shadow, using pastel colors: first line white, second line pink, third line pale yellow. Add 3 pink doodle accent strokes above the headline, 1 curved pink underline-swoosh beneath it, and 1 small yellow sun icon to the right of the last line. Place a clean white {argument name=&amp;#34;brand text&amp;#34; default=&amp;#34;Pollo.ai&amp;#34;} logo in the upper right. High-end influencer thumbnail aesthetic, crisp product focus in foreground, warm inviting lifestyle scene.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;电影感城市爆炸追逐&#34;&gt;电影感城市爆炸追逐
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Gugombly/status/2047310862428303636&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Gugombly&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Gugombly&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/027.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/027_hu_ec87a1df69e1c275.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/027_hu_ff2ed2d0e6656017.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;电影感城市爆炸追逐&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A cinematic photorealistic action scene in a rainy downtown city street canyon, showing {argument name=&amp;#34;main subject&amp;#34; default=&amp;#34;a dark-haired man in his 30s&amp;#34;} sprinting directly toward the camera in the center foreground with a tense survival expression, wearing a soaked dark jacket, dark shirt, and dark pants, mid-stride with one arm pumping forward. Behind him, a massive urban explosion tears through the street and lower facade of a high-rise building, sending a huge cloud of smoke, fire, dust, shattered concrete, glass, and metal debris outward in all directions. The scene includes exactly 3 visible damaged vehicles: 1 dark sedan in the left foreground with headlights on and a crumpled hood splashing through rainwater, 1 wrecked dark car in the right midground with severe front-end damage, and 1 overturned or airborne black SUV tilted upward behind it on the right side. Wet asphalt reflects headlights, firelight, and gray skyscrapers. Dense debris fills the air, with chunks of rubble frozen in motion. Overcast stormy daylight, desaturated blue-gray color palette with orange fire accents, dramatic motion blur in flying debris but sharp focus on the running figure, low-angle wide-lens composition, blockbuster disaster-movie realism, ultra-detailed textures, high contrast, dynamic depth, volumetric smoke, rain spray, cinematic lighting. Add a white {argument name=&amp;#34;watermark text&amp;#34; default=&amp;#34;Pollo.ai&amp;#34;} logo in the top-right corner.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;动漫-vtuber-minecraft-直播缩略图&#34;&gt;动漫 VTuber Minecraft 直播缩略图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/rerxmsz06/status/2047261622121705782&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/rerxmsz06&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@rerxmsz06&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/028.webp&#34;
	width=&#34;1199&#34;
	height=&#34;675&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/028_hu_19722c166657124a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/028_hu_5e7e88cf6b5865b8.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;动漫 VTuber Minecraft 直播缩略图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;177&#34;
		data-flex-basis=&#34;426px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A vibrant anime-style YouTube thumbnail for a livestream gaming broadcast, in a wide 16:9 composition, with a neon purple and pink streamer room. Center the scene on a cute catgirl VTuber sitting at a desk, shown from the waist up, leaning forward energetically with one hand on a computer mouse and the other hand reaching toward the viewer. She has {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;light orange-blonde&amp;#34;} bob-cut hair with soft bangs, fluffy brown-and-cream cat ears, and a visible cat tail. Her face is intentionally obscured by a solid rectangular censor block in the center. She wears a black-and-white maid-inspired outfit with a frilly white blouse, black dress bodice, puff sleeves, white ruffles, black ribbon bow, and a gold bell choker. Place a mechanical keyboard with bright RGB lighting on the desk, a glowing gaming mouse, and a streamer microphone on the far left with pink-purple LED lighting. Put 2 cat-themed desk items in the foreground: a plush cat face on the bottom left and a black cat-shaped mug on the bottom right. Behind her is a gaming chair with paw-print details. On the left side, add large bold Korean headline text in thick white block letters with black fill shadows and a glowing purple outline, stacked in 2 lines: {argument name=&amp;#34;headline text&amp;#34; default=&amp;#34;방송중 대참사&amp;#34;}. Below it, add a smaller yellow comic-style burst caption with black outline reading {argument name=&amp;#34;sub text&amp;#34; default=&amp;#34;&amp;gt; 크리퍼 실화냐&amp;#34;}. On the right side, show 1 large computer monitor angled inward, displaying a Minecraft-like scene with bright blue sky, green trees, water, and a large green Creeper popping out toward the viewer, outlined dramatically like a sticker cutout. Add starburst effects and neon accents around the monitor to heighten the chaos. Use exaggerated thumbnail aesthetics: ultra-saturated colors, sharp cel shading, thick outlines, glossy highlights, high contrast, dynamic perspective, and a clickworthy streamer-disaster mood.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;温馨动漫-asmr-掏耳少女&#34;&gt;温馨动漫 ASMR 掏耳少女
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Shion_yamabuki/status/2047232198382964969&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Shion_yamabuki&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Shion_yamabuki&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/029.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/029_hu_c688082893a459f2.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/029_hu_352bacb0545e3ced.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;温馨动漫 ASMR 掏耳少女&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A soft, dreamy anime illustration of a cute young woman doing ASMR in a cozy bedroom at night, seated close to the viewer with her knees pulled up and a black 3Dio-style binaural microphone centered in front of her. She has {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;deep violet&amp;#34;} hair in a loose messy updo with wispy bangs framing her face, large sparkling {argument name=&amp;#34;eye color&amp;#34; default=&amp;#34;blue&amp;#34;} eyes, a gentle blush, and a sweet open-mouth smile. Her head is tilted slightly toward the viewer in a warm, affectionate pose. She wears a delicate white lace camisole with thin straps and an oversized fluffy knit cardigan in {argument name=&amp;#34;cardigan color&amp;#34; default=&amp;#34;soft pink-lavender&amp;#34;} draped off her shoulders, creating a tender, intimate late-night healing atmosphere. Both hands lightly touch the white silicone ears of the microphone as if about to give an ear massage. The room is softly lit with pink and amber ambient lighting, heavy curtains in the background, a bed or sofa with plush cushions, warm fairy-light bokeh, and a small plant on the right side. Add glowing handwritten Japanese neon text integrated into the composition: on the left, 4 text elements reading &amp;#34;とろける&amp;#34;, &amp;#34;耳&amp;#34;, &amp;#34;マッサージ&amp;#34;, and &amp;#34;ASMR&amp;#34; with 2 small heart symbols; on the right, vertical text reading &amp;#34;いっぱい癒してあげるね...♡&amp;#34;. Use a polished modern anime style, highly detailed face and hair, glossy eyes, smooth luminous skin, soft shading, pastel highlights, shallow depth of field, romantic cozy streamer-thumbnail composition, and a soothing feminine color palette dominated by pink, lavender, cream, and warm gold.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;名人直播概念图&#34;&gt;名人直播概念图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/SelenaGmzIN/status/2047185882009198865&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/SelenaGmzIN&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@SelenaGmzIN&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/030.webp&#34;
	width=&#34;1200&#34;
	height=&#34;800&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/030_hu_57bd5d6a0e1e0e36.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/030_hu_efeff596d19acddc.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;名人直播概念图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;150&#34;
		data-flex-basis=&#34;360px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{argument name=&amp;#34;celebrity&amp;#34; default=&amp;#34;selena gomez&amp;#34;} started a surprise {argument name=&amp;#34;platform&amp;#34; default=&amp;#34;youtube&amp;#34;} livestream.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;monika-动漫横幅插画&#34;&gt;Monika 动漫横幅插画
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/mirochill/status/2047639852485620070&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/mirochill&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@mirochill&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/031.webp&#34;
	width=&#34;1199&#34;
	height=&#34;514&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/031_hu_cb7954af0d3e5f46.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/031_hu_a4c7b40777951277.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Monika 动漫横幅插画&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;233&#34;
		data-flex-basis=&#34;559px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A highly polished anime banner illustration in a warm golden classroom-literature-club setting, wide cinematic composition. On the left half, a large elegant glowing script title reads {argument name=&amp;#34;headline text&amp;#34; default=&amp;#34;Monika&amp;#34;} in oversized calligraphy, colored white and pale green with a soft neon glow, metallic highlights, decorative flourishes, hearts, sparkles, and swirling ornamental lines around it. On the right half, a beautiful anime schoolgirl inspired by {argument name=&amp;#34;character name&amp;#34; default=&amp;#34;Monika&amp;#34;} sits at a wooden desk, facing slightly left, with long flowing {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;chestnut brown&amp;#34;} hair, a very large white ribbon bow, warm brown eyes, and a thoughtful, confident expression. She wears a Japanese high school uniform with exactly 4 visible clothing pieces: a brown blazer, white shirt, red ribbon tie, and brown argyle sweater vest. She holds a fountain pen over papers on the desk with one hand while the other rests near her face in a poised writing pose. The room is filled with sunset light streaming through tall windows, dust motes, trailing green ribbons, floating petals, handwritten notes pinned and hanging in the background, and a dark chalkboard covered with faint cursive writing and geometric doodles. Include exactly 9 prominent desk and room props: a bouquet of white roses at lower left, a stack of books at left, an hourglass near the center-left, a sealed envelope with a small green leaf emblem, scattered manuscript pages on the desk, a pen cap near the writing hand, a green-upholstered chair, a piano in the back right, and a stack of 4 books on the right. The 4 right-side book spines read, from top to bottom: &amp;#34;Save Me&amp;#34;, &amp;#34;My Feelings&amp;#34;, &amp;#34;Poems for the Literature Club&amp;#34;, and &amp;#34;Just Monika.&amp;#34; Add lush volumetric lighting, glittering particles, green-and-gold color harmony, delicate linework, ultra-detailed painterly shading, romantic visual-novel key art quality, and a premium polished thumbnail/banner aesthetic.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;紫色动漫-yuri-横幅&#34;&gt;紫色动漫 Yuri 横幅
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/mirochill/status/2047639852485620070&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/mirochill&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@mirochill&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/032.webp&#34;
	width=&#34;1199&#34;
	height=&#34;514&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/032_hu_b649d3a35900259e.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/032_hu_96c3fba8e68ccf8e.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;紫色动漫 Yuri 横幅&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;233&#34;
		data-flex-basis=&#34;559px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A polished anime-style banner illustration in a dreamy violet palette, wide cinematic composition, showing a quiet literary room at twilight. On the right side, a beautiful teenage anime girl named {argument name=&amp;#34;character name&amp;#34; default=&amp;#34;Yuri&amp;#34;} sits at a wooden desk beside a large window with purple curtains, holding a dark ornate hardcover book close to her chest and gazing softly downward with a shy, introspective expression. She has very long straight {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;deep violet&amp;#34;} hair with glossy highlights, side bangs, a small hair clip, and violet eyes, wearing a Japanese school uniform with a gray blazer, white shirt, red ribbon tie, and dark skirt. Across the left-center of the image, the glowing calligraphic word {argument name=&amp;#34;title text&amp;#34; default=&amp;#34;Yuri&amp;#34;} appears large in luminous neon-lavender script with elegant flourishes, a small heart, and decorative filigree, integrated into the scene like magical typography. The desk contains exactly 8 visible item groups: 1 open book in the foreground center, 1 black inkwell with a white feather quill, 1 closed book near the candle, 1 stack of books under papers, 1 loose handwritten page in front, 1 small purple flower on the desk, 1 floral porcelain teacup with saucer on the right, and 1 dark book stack at the far right. Additional background details include exactly 6 decorative environmental elements: 1 lit candle in a glass holder on the left, 1 cluster of purple flowers in the left foreground, 1 hanging spray of purple blossoms in the upper left, 1 pinned botanical note in the upper right, 1 bookshelf with books and flowers in the right background, and 1 sunset sky visible through the window. Add drifting flower petals, faint handwritten script textures, ornate gold border lines around the frame, soft volumetric window light, subtle sparkles, rich shadows, and a romantic melancholic atmosphere. Highly detailed, clean line art, glossy anime rendering, premium visual-novel key art, perfect for a niche anime banner or character-themed thumbnail.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;粉色动漫-natsuki-横幅&#34;&gt;粉色动漫 Natsuki 横幅
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/mirochill/status/2047639852485620070&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/mirochill&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@mirochill&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/033.webp&#34;
	width=&#34;1199&#34;
	height=&#34;514&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/033_hu_b393e9af90388b65.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/033_hu_e2b33106bf913462.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;粉色动漫 Natsuki 横幅&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;233&#34;
		data-flex-basis=&#34;559px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A glossy pastel pink anime banner in a wide cinematic layout, themed around cute romance and sweets. Place a confident teenage anime girl on the right side, shown from about thigh-up, with short fluffy bob hair in {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;soft pink&amp;#34;}, large pink-magenta eyes, a small gentle smile, and arms crossed. She wears a Japanese school uniform: 1 brown blazer, 1 white shirt, 1 red ribbon bow at the collar, and 1 dark navy-and-purple plaid skirt. Add 2 red ribbon hair accessories, one larger bow on the side and one smaller ribbon accent. On the left half, feature the large handwritten script name {argument name=&amp;#34;character name&amp;#34; default=&amp;#34;Natsuki&amp;#34;} in bold glossy 3D cursive, white-to-pink fill with bright pink outline, soft bevel, subtle drop shadow, sparkles, and a small heart flourish integrated into the lettering. The background should be a layered scrapbook collage in blush pink tones with notebook paper texture, faint grid and torn paper details, scattered doodled hearts, flower petals, sparkles, and cute bakery motifs. Include exactly 4 pinned or taped sketch-style portrait cards of the same girl behind her on the upper-right and mid-right, arranged like overlapping polaroids. Add exactly 2 cupcakes in the foreground near the bottom left and lower center-left, both with pink frosting, striped wrappers, and tiny heart toppers or candy accents. Frame the composition with flowing satin ribbons and bows: exactly 4 major ribbon elements visible, including 1 bow near the top left, 1 bow near the bottom left, and 2 long curling ribbons sweeping across the top and right edges. Use a soft high-detail anime illustration style, polished lighting, dreamy bloom, romantic Valentine palette, delicate textures, and a clean impactful thumbnail-like composition.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;梦幻动漫-sayori-横幅&#34;&gt;梦幻动漫 Sayori 横幅
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/mirochill/status/2047639852485620070&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/mirochill&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@mirochill&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/034.webp&#34;
	width=&#34;1199&#34;
	height=&#34;514&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/034_hu_5322be357707c779.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/034_hu_11a6eee064b46f5b.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;梦幻动漫 Sayori 横幅&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;233&#34;
		data-flex-basis=&#34;559px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A wide anime banner illustration of {argument name=&amp;#34;character name&amp;#34; default=&amp;#34;Sayori&amp;#34;} in a bright dreamy classroom, rendered in a polished, high-end visual novel style with soft painterly lighting, warm pastel colors, and sparkling atmosphere. Show a cheerful teenage schoolgirl with short fluffy coral-pink hair, messy bob layers, and a large red bow on the right side of her head, wearing a Japanese school uniform with a light brown blazer, white shirt, red ribbon tie, brown sweater vest, and pleated navy skirt. She stands slightly left of center with arms open wide in an inviting, joyful pose, as if welcoming the viewer, with dynamic perspective and gentle motion in her hair and clothes. Her face is intentionally obscured by a flat rectangular skin-tone censor block. Behind her, tall classroom windows reveal a vivid blue sky with soft white clouds and warm sunlight streaming in. The right half of the image features a large decorative handwritten script reading {argument name=&amp;#34;headline text&amp;#34; default=&amp;#34;Sayori&amp;#34;}, cream-white lettering with a soft orange-gold outline and glow, integrated into a scrapbook-like wall background. Surround the scene with hanging photo prints clipped to string, including sky photos and a sunflower photo, plus hand-drawn doodles of clouds, stars, hearts, and a sun. Add blue and yellow paper stars, ribbons, floating confetti, a blue paper airplane, notebook pages, a spiral sketchbook, and scattered stationery elements. Place sunflowers prominently in the foreground and edges, with warm golden bokeh and soft depth of field. Make the composition energetic, cute, nostalgic, and emotionally uplifting, like a premium anime-themed YouTube banner or character tribute header, ultra-detailed, clean, stylish, luminous, and impact-focused.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;赛博朋克-404-女巫召唤&#34;&gt;赛博朋克 404 女巫召唤
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Eris_Create_Lab/status/2047537707904274795&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Eris_Create_Lab&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Eris_Create_Lab&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/035.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/035_hu_b5363cd3ebd4a4b.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/035_hu_4b461d992e17609.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;赛博朋克 404 女巫召唤&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A dramatic anime-style cyberpunk witch standing on a dark rooftop high above a dense futuristic city at night, viewed from a slightly elevated angle. The main subject is a petite young witch girl with pale skin, short icy blue bobbed hair, pointed elf-like ears, and glowing red eyes, wearing a sly confident smile. She raises a black wand overhead in her right hand, with a dangling orb charm at the tip glowing faintly purple and red. Her oversized crooked witch hat is black with purple lining and covered in stitched patches, warning labels, straps, and white graphics including a large “404” and a skull emblem. She wears a black and purple techwear outfit: oversized hooded jacket with many straps and tags, black crop top with “404” on the chest, layered belts, short bottoms, fishnet on one leg, black lace-up combat boots, chokers, and metallic accessories. Several hanging straps and tags visibly read words like “WITCH 404,” “404,” and glitch-themed markings. Beneath and beside her, a large glowing violet magic circle mixed with hacker interface aesthetics is projected on the rooftop floor, filled with occult rings, sigils, a central skull symbol, and scattered neon system text such as error-code fragments, creating a fusion of sorcery and digital corruption. Emerging from the circle is 1 large armored summoned figure: a black futuristic demon-knight or robotic familiar with jagged reflective armor, a narrow purple-lit visor, and a heavy weapon held in one hand, partially dissolving into purple energy shards and smoke. The background shows a sprawling rainy megacity of apartment towers and industrial rooftops, packed with windows, balconies, cables, signs, and haze. On a nearby building wall is a giant vertical graffiti-style sign with 3 readable elements: “404”, “Witch”, and “ERROR NOT FOUND”, plus a smaller “E404”. Additional purple neon glitch text and symbols are scattered across rooftops and in the air. Use a dark palette of black, indigo, and deep violet with sharp magenta-purple highlights, cinematic contrast, reflective wet surfaces, dense detail, and a high-end polished illustration style. The mood is occult, edgy, stylish, and dangerous, combining urban fantasy, hacker aesthetics, and magical summoning.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;动漫奇幻旅行电影海报&#34;&gt;动漫奇幻旅行电影海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Design4p0/status/2047531978346398002&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Design4p0&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Design4p0&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/036.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/036_hu_f9b3ef362bb33790.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/036_hu_61c831e17c5229a1.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;动漫奇幻旅行电影海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A cinematic anime movie poster for a fictional film titled {argument name=&amp;#34;headline text&amp;#34; default=&amp;#34;EL VIAJE DE LA LUNA DE PLATA&amp;#34;}, in polished modern Japanese animation style with a natural, less over-detailed look. Center a teenage anime girl from mid-thigh up, facing forward, with a short silver bob haircut, pale skin, a black choker, small black geometric earrings, a white tank top, and a dark navy oversized zip hoodie with two yellow stripes running down the sleeves. She has a backpack strap over one shoulder and both hands tucked casually into the hoodie pockets. Her face is obscured by a flat rectangular censor block in a muted beige tone, covering the entire face area. Place her in a dramatic twilight coastal city setting that blends travel, nostalgia, and fantasy: on the left, a lit train platform with a commuter train approaching, its destination sign showing Japanese characters; behind it, a glowing city skyline with a ferris wheel. In the distance and lower left, layered mountains and a winding illuminated valley road. On the right, a cliffside coast at sunset with the sea reflecting warm light, a crescent moon in the sky, several flying seabirds, and a curving highway descending along the hillside. Also on the right, include a wooden signpost with exactly 3 directional signs labeled &amp;#34;NUEVOS CAMINOS&amp;#34;, &amp;#34;VIEJOS RECUERDOS&amp;#34;, and &amp;#34;SIN LÍMITES&amp;#34;. At the top center, add the Spanish tagline {argument name=&amp;#34;tagline text&amp;#34; default=&amp;#34;CADA DESTINO CAMBIA SU HISTORIA&amp;#34;} in elegant serif capitals. On the upper left, create an awards column in gold typography with laurel wreaths and exactly 4 award blocks: one text block reading &amp;#34;GANADORA DE MÚLTIPLES PREMIOS&amp;#34; with 5 gold stars beneath it, then three laurel award sections reading &amp;#34;MEJOR PELÍCULA ANIMADA / FESTIVAL INTERNACIONAL DE ANIMACIÓN / 2024&amp;#34;, &amp;#34;PREMIO DEL PÚBLICO / FESTIVAL INTERNACIONAL DE CINE / 2024&amp;#34;, and &amp;#34;MEJOR BANDA SONORA ORIGINAL / ACADEMIA DE CINE ANIMADO / 2024&amp;#34;. Place the film title large across the lower center in luminous ornate serif lettering with a magical glow and sweeping flourishes, layered partly over the character. Beneath it, add the Spanish quote {argument name=&amp;#34;quote&amp;#34; default=&amp;#34;A veces, para encontrarte... tienes que perderte en el mundo.&amp;#34;}. Below that, add &amp;#34;UNA PELÍCULA DE ESTUDIO LUMINARIA&amp;#34; in small caps. At the bottom, add the release line {argument name=&amp;#34;release text&amp;#34; default=&amp;#34;PRÓXIMAMENTE EN CINES&amp;#34;} in large gold serif capitals, plus tiny production logos and credits along the footer, including a small studio emblem on the left. Rich blue, violet, and warm sunset orange palette, glossy poster lighting, romantic adventure mood, balanced composition, highly polished theatrical key art, vertical one-sheet film poster.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;动漫音乐训练营宣传海报&#34;&gt;动漫音乐训练营宣传海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/sorane_aimusic/status/2047507066697507134&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/sorane_aimusic&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@sorane_aimusic&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/037.webp&#34;
	width=&#34;900&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/037_hu_9ebcb90fe3d33c90.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/037_hu_c896eb8c5c5520af.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;动漫音乐训练营宣传海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;75&#34;
		data-flex-basis=&#34;180px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a dramatic Japanese anime-style promotional thumbnail poster for an event, vertical 4:5 composition, ultra-detailed, cinematic, neon-lit, high contrast, designed like a social media announcement image. The main subject is a beautiful anime girl centered slightly right, shown from the waist up, with long flowing {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;deep blue&amp;#34;} hair blowing in the wind, decorated with small star hairpins, wearing a dark hoodie and large studio headphones around her neck, against a glowing sunset-to-night city skyline filled with sparkling lights, music-energy particles, lens flares, and flying glowing petals. Her face area is obscured by a soft rectangular blur block. Use a vivid palette of electric blue, violet, magenta, gold, and sunset orange. Fill the design with layered Japanese typography that is crisp, readable, and integrated into the art like a polished event advertisement. Include exactly 8 major text groups: top left copy reading 「始まるのは、キミと創る 音楽の物語。」 with a smaller subcopy beneath reading 「AIを使って、みんなで音楽をつくる特別な3日間。」; top right a glowing marquee sign reading 「GW連休!」 and a smaller neon box below reading 「みんなで最高の音楽をつくろう!」; center main title with small English text 「AI MUSIC BOOTCAMP 2」 above huge Japanese title text 「AI音楽 ブートキャンプ 2」; a gigantic gold metallic announcement across the middle reading 「開催決定!」; a date bar reading 「開催期間」 followed by 「5.2 SAT 土」 and 「5.4 MON 月」; a hashtag callout near the bottom reading 「参加はカンタン!! #AI音楽ブートキャンプ2 をつけて投稿するだけ!」; a lower encouragement line reading 「初心者も大歓迎! みんなで最高の音楽体験を!」; and 3 bottom feature captions with icons reading 「一緒に学ぶ 仲間とつながる」, 「AIで創る 新しい音楽体験」, and 「想いをカタチに 自分だけの1曲を」. On the left edge, add a vertical filmstrip with exactly 4 inset panels showing the same girl in music-related scenes: 1) performing on a stage before a crowd, 2) working at a music production desk with screens and equipment, 3) singing into a microphone, 4) playing an acoustic guitar. Add exactly 2 neon music-themed icon illustrations in the lower area: a tilted smartphone with a music note on the lower left and a glowing microphone with musical notes on the lower right. Make the text effects glossy, luminous, and embossed with gold and white highlights, with energetic streaks and spark explosions around the headline. The overall feeling should be inspiring, celebratory, futuristic, and emotionally uplifting, like a high-impact Japanese Golden Week music bootcamp ad for {argument name=&amp;#34;event name&amp;#34; default=&amp;#34;AI音楽ブートキャンプ 2&amp;#34;}.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;热带鹦鹉像素马赛克&#34;&gt;热带鹦鹉像素马赛克
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/erikmackinnon/status/2048190288179675290&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/erikmackinnon&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@erikmackinnon&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/038.webp&#34;
	width=&#34;1024&#34;
	height=&#34;1024&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/038_hu_e7d5a0eeeb2f8e5f.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/038_hu_cee3d515fddffdd5.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;热带鹦鹉像素马赛克&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A vibrant pixel-art style mosaic of a tropical parrot perched on a small brown branch in the middle of dense rainforest foliage. The entire image is rendered as a tight grid of tiny square tiles with visible black outlines, creating a stained-glass or LED-screen effect. The bird is shown in side profile facing right, with a large curved black beak, a pale cream face, a bright red-orange forehead and throat, vivid green upper body, and long wings and tail in saturated blue and cyan. The surrounding jungle is filled edge to edge with layered green leaves in many shades, with a soft light green glow behind the parrot to separate it from the background. High color contrast, rich tropical palette, crisp tile pattern, centered composition, decorative digital mosaic aesthetic.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;温室酒吧里的金色鸡尾酒&#34;&gt;温室酒吧里的金色鸡尾酒
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/FernandesK47117/status/2048183925294371147&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/FernandesK47117&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@FernandesK47117&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/039.webp&#34;
	width=&#34;675&#34;
	height=&#34;1199&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/039_hu_252e19d6194745a9.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/039_hu_d48d1ae02359ae40.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;温室酒吧里的金色鸡尾酒&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A cinematic vertical photo of a hand holding up a large balloon wine glass filled with a sparkling golden-yellow citrus cocktail in a lush indoor greenhouse bar. The drink is backlit by warm late-afternoon sunlight, making it glow translucent amber. Inside the glass there is 1 visible citrus wedge, and at the rim there is 1 fresh mint garnish cluster. The hand enters from the lower left, delicately gripping the stem, wearing 1 chunky translucent amber bracelet. The setting is dense with tropical greenery, hanging ferns, and vine-covered walls, with a bright greenhouse roof structure visible overhead and 2 warm exposed hanging bulbs softly glowing in the background. Use shallow depth of field with creamy bokeh, strong sun rays filtering through leaves, soft haze, and rich green-and-gold color contrast. Add a blurred foreground leaf or plant along the right edge to frame the composition. The lower background should suggest a busy café or cocktail lounge with indistinct people, but keep them heavily out of focus. Photorealistic, elegant lifestyle photography, moody yet sun-drenched, shot from a low angle looking upward at the raised glass, high detail on condensation, glass reflections, and the luminous drink.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;多面板图像板模板&#34;&gt;多面板图像板模板
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/aimikoda/status/2048183782876778821&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/aimikoda&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@aimikoda&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/040.webp&#34;
	width=&#34;1200&#34;
	height=&#34;900&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/040_hu_19301fce8cc60ac5.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/040_hu_89197a97ec704f92.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;多面板图像板模板&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;133&#34;
		data-flex-basis=&#34;320px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a {argument name=&amp;#34;grid layout&amp;#34; default=&amp;#34;4x3&amp;#34;} borderless grid where each panel is an independent image of the {argument name=&amp;#34;subject&amp;#34; default=&amp;#34;a young woman&amp;#34;}. Maintain strong subject consistency across all panels, with consistent color and lighting. Depict {argument name=&amp;#34;theme&amp;#34; default=&amp;#34;childhood memories&amp;#34;} with a {argument name=&amp;#34;mood&amp;#34; default=&amp;#34;warm, nostalgic&amp;#34;} mood in {argument name=&amp;#34;style&amp;#34; default=&amp;#34;nostalgic cinematic realism&amp;#34;} style. No text. No gap.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;handwritten-写实-letter&#34;&gt;Handwritten 写实 Letter
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/mosthssan/status/2048160477658980711&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/mosthssan&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@mosthssan&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/041.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/041_hu_a2746ec4437d71a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/041_hu_8c20723e8c102965.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Handwritten 写实 Letter&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a highly realistic image of a handwritten letter containing a ({argument name=&amp;#34;message&amp;#34; default=&amp;#34;message or reflection carrying meanings of affection and loyalty to my account followers&amp;#34;}) on lined paper, with very touching words written in liquid ink pen
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;anime-band-finale-at-budokan&#34;&gt;Anime Band Finale at Budokan
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/SDAI1807097011/status/2048127178592915583&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/SDAI1807097011&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@SDAI1807097011&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/042.webp&#34;
	width=&#34;767&#34;
	height=&#34;1024&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/042_hu_6f38d7ee23d7fca4.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/042_hu_2a77149fd84bbfd.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Anime Band Finale at Budokan&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;74&#34;
		data-flex-basis=&#34;179px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A dramatic anime concert illustration seen from behind the performers onstage, showing 4 teenage girls standing shoulder to shoulder at the front of a huge indoor arena, arms around each other in a triumphant post-performance moment. The camera is positioned slightly behind and below them, facing out toward the audience and the giant venue screen. The atmosphere is dazzling and emotional, filled with dense blue-and-gold confetti, sparkling particles, and strong white stage spotlights pouring down from above. The crowd fills the entire arena as a sea of tiny glowing blue lights. At center top, a giant rectangular screen displays elegant serif concert text: {argument name=&amp;#34;band name&amp;#34; default=&amp;#34;ELEMAYU&amp;#34;}, &amp;#34;1st LIVE at 日本武道館&amp;#34;, {argument name=&amp;#34;concert date&amp;#34; default=&amp;#34;2024.6.15&amp;#34;}, and &amp;#34;SOLD OUT&amp;#34;. On both upper side walls of the arena, the large venue name &amp;#34;日本武道館&amp;#34; is visible. The 4 girls all wear matching dark stage outfits: black or very dark navy hooded jackets with subtle decorative back prints, short pleated skirts, and live-performance styling. Count and depict all 4 members distinctly from left to right: 1) a girl with short wavy silver-lavender hair holding a bass guitar slung over her shoulder, 2) a girl with long straight black hair holding a red electric guitar, 3) a girl with fluffy shoulder-length blonde hair holding a dark guitar, 4) a girl with brown hair in a high ponytail, no visible instrument, raising one arm high and holding a drumstick or baton in celebration while the other arm wraps around the blonde member. Show their backs and silhouettes rim-lit by stage light, with soft highlights on their hair. Include stage equipment: a microphone stand and part of a bass neck at the far left, and a visible drum kit with cymbals at the right edge. The stage floor is glossy and reflective, covered with scattered confetti and several blue flower bouquets near the bottom foreground. Use rich midnight blues, violet shadows, warm golden sparkles, and cinematic bloom. The mood should feel like a sold-out dream performance finale, sentimental, victorious, and breathtakingly luminous, in highly detailed painterly anime style.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;动漫少女与男性约会照片拼贴&#34;&gt;动漫少女与男性约会照片拼贴
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/AIillust_studio/status/2048099186214900130&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/AIillust_studio&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@AIillust_studio&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/043.webp&#34;
	width=&#34;1200&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/043_hu_fbe12bbcbcb09878.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/043_hu_deb555056dbb63f9.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;动漫少女与男性约会照片拼贴&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A 4x4 photo collage of 16 warm, cinematic lifestyle snapshots featuring a real adult man and an anime-style young woman companion posed together as if in casual date photos. The man has short dark hair, light skin, an average build, and wears a plain dark navy or black long-sleeve shirt; his face is intentionally obscured and softly blurred in every frame. The anime girl has long blonde twin ponytails, large blue eyes, light skin, and a slim petite build, wearing a black sleeveless top, layered silver necklaces including a cross pendant, black wrist accessories, a red plaid pleated mini skirt, and black-and-white striped thigh-high socks. Blend realistic photography with a convincingly integrated 2D anime character, keeping her clean cel-shaded look while matching the scene lighting, perspective, focus, and color grading so she appears naturally present beside him. Use moody evening tones, soft bokeh, shallow depth of field, and intimate candid couple energy. The 16 panels are: 1) close indoor portrait with both seated close together, the girl resting beside him; 2) nighttime city street side profile conversation under blurred streetlights; 3) indoors, both reading a book together, the girl leaning on his shoulder; 4) outdoor cafe table, both holding takeaway coffee cups; 5) restaurant table with multiple dishes visible, dining together; 6) mirror selfie in an elevator, the man holding a smartphone while the girl makes a peace sign; 7) car interior road-trip shot, the man driving and the anime girl in the passenger seat; 8) seaside sunset from behind, both sitting side by side watching the ocean; 9) neon-lit city night portrait, the girl pointing toward the camera; 10) intimate elevator close-up, the girl with eyes closed leaning affectionately against him; 11) full mirror selfie in an elevator showing more of both outfits; 12) night city skyline portrait with a lit tower in the background; 13) camera selfie close-up, the man holding a compact camera toward a mirror or reflective surface; 14) cozy indoor lounge moment, the man holding a glass of red wine while the girl smiles and makes a peace sign; 15) rear full-body rainy night street shot, the pair walking away hand in hand under glowing streetlights; 16) extreme close-up night portrait with the girl flashing a peace sign. Keep the collage tightly gridded with thin white dividers, square overall format, consistent amber-brown color grading, romantic urban realism, and subtle social-media photo-dump aesthetics.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;奢华-lifestyle-mustang-shot&#34;&gt;奢华 Lifestyle Mustang Shot
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Just_sharon7/status/2048095904138485962&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Just_sharon7&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Just_sharon7&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/044.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/044_hu_32ee949f06932356.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/044_hu_d07d56ec1c576cb8.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;奢华 Lifestyle Mustang Shot&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A stylish young woman with {argument name=&amp;#34;hair style&amp;#34; default=&amp;#34;long wavy blonde hair&amp;#34;}, defined cheekbones, and a confident expression, wearing black sunglasses and a {argument name=&amp;#34;clothing&amp;#34; default=&amp;#34;thick white puffer jacket&amp;#34;} over a fitted black top, standing confidently in front of a {argument name=&amp;#34;car&amp;#34; default=&amp;#34;vibrant hot-pink Ford Mustang&amp;#34;}. She is posing with one hand slightly raised near her chest, exuding effortless attitude and elegance. The car is parked on a scenic coastal road lined with blooming pink cherry blossom trees and tall palm trees. Behind them is a calm sea under a dramatic overcast sky with soft clouds. Pink petals are scattered on the wet asphalt. A wooden bench is visible on the left side near the water. Cinematic lighting, photorealistic, ultra-detailed skin texture, natural lighting reflections, Instagram-style luxury lifestyle shot, vibrant colors, moody atmosphere, 8k resolution --ar 9:16 --stylize 250
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;anime-friends-eating-soba&#34;&gt;Anime Friends Eating Soba
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/AIMAG31G/status/2048089673621516547&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/AIMAG31G&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@AIMAG31G&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/045.webp&#34;
	width=&#34;1200&#34;
	height=&#34;821&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/045_hu_f3ad5e7e56139856.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/045_hu_d22c9a09750d4c8e.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Anime Friends Eating Soba&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;146&#34;
		data-flex-basis=&#34;350px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A cozy anime-style interior of a traditional Japanese soba restaurant, viewed from table height in a booth, with two young women seated across the near corners of a rectangular wooden table and facing the viewer in a casual dining snapshot. The left woman has long straight pastel {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;lavender with cyan highlights&amp;#34;} hair with glossy strands and soft bangs, and wears a white kimono-style top with bright blue trim and a deep blue obi-like sash skirt; she is slightly curvy, sitting on the left red vinyl bench, turned a little toward the camera, raising her left hand in an open friendly wave. The right woman has a sleek short bob in dark brown to black with a purple underlayer visible near the ends, red rectangular glasses, small earrings, a fitted charcoal-gray long-sleeve scoop-neck top, and light blue jeans; she sits on the right red vinyl bench, leaning slightly toward the table and holding chopsticks in her right hand as if about to eat. Place 2 large black bowls of soba on the table, one in front of each woman, both filled with dark broth, noodles, sliced duck meat, and chopped green onions; add 1 clear water glass near the center back of the table and 2 small condiment dishes beside it. The restaurant should feel warm and nostalgic, with wooden paneling, a shoji-style window on the left, a small potted plant on the windowsill, a back counter with condiments and utensils, and a navy noren curtain on the right bearing large white Japanese text &amp;#34;蕎麦&amp;#34; and smaller vertical text &amp;#34;手打ちそば&amp;#34;. On the back wall, show 7 vertical wooden menu boards with Japanese dish names and prices, including labels such as &amp;#34;もりそば&amp;#34;, &amp;#34;ざるそば&amp;#34;, &amp;#34;かけそば&amp;#34;, &amp;#34;たぬきそば&amp;#34;, &amp;#34;肉そば&amp;#34;, &amp;#34;天ぷらそば&amp;#34;, and &amp;#34;鴨南蛮そば&amp;#34;. Use clean polished anime rendering, crisp line art, soft warm lighting, detailed food illustration, rich wood textures, and a friendly everyday outing mood.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;哥特机械战士大教堂关键视觉&#34;&gt;哥特机械战士大教堂关键视觉
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/yanagihara_0805/status/2048085829713842405&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/yanagihara_0805&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@yanagihara_0805&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/046.webp&#34;
	width=&#34;675&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/046_hu_5f71e547796d351b.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/046_hu_29c0319bd8507c36.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;哥特机械战士大教堂关键视觉&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;56&#34;
		data-flex-basis=&#34;135px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A cinematic dark fantasy anime illustration in a ruined gothic cathedral, vertical composition. Show a lone female android-like warrior from behind, centered slightly low in frame, kneeling or sitting back on her heels on a reflective stone floor. She has extremely long flowing {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;silver white&amp;#34;} hair spreading across the floor and air, a sleek black blindfold visor covering her eyes, and a black high-cut gothic combat dress with elegant straps, long black opera gloves, and thigh-high black boots. Her physique is slim and graceful. She holds 1 large ornate sword upright in front of her, with both hands resting on the hilt, the blade planted on the ground like a memorial. The sword has a dark blade and a decorative gold ring-like guard near the handle. The atmosphere is solemn, tragic, and reverent. Place 3 tall pointed arched windows in the background, glowing with cold white backlight through haze and dust. Include 4 stone angel statues total: 2 larger angels in the left background and 2 in the right background, partially obscured by fog and darkness. Fill the air with drifting ash, snow-like particles, black debris fragments, and a few faint orange embers near the floor. Use dramatic volumetric light rays, soft bloom, smoky mist, high contrast, and a desaturated palette of charcoal gray, silver, blue-gray, and black. The scene should feel like a memorial after a battle, highly detailed, ultra-polished, melancholic, ethereal, and game key art inspired by {argument name=&amp;#34;franchise title&amp;#34; default=&amp;#34;NieR:Automata&amp;#34;}. Add 1 vertical Japanese title inscription near the lower left reading {argument name=&amp;#34;vertical text&amp;#34; default=&amp;#34;儚き夢と共にあれ&amp;#34;}, with 1 small vertical English subtitle beside it reading {argument name=&amp;#34;subtitle text&amp;#34; default=&amp;#34;NieR:Automata&amp;#34;}.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;cloud-shape-doodle-generation&#34;&gt;Cloud shape doodle generation
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Gorden_Sun/status/2048080137149899133&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Gorden_Sun&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Gorden_Sun&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/047.webp&#34;
	width=&#34;1200&#34;
	height=&#34;972&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/047_hu_e30673326a8eb001.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/047_hu_3e83eb8d79a3319b.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Cloud shape doodle generation&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;123&#34;
		data-flex-basis=&#34;296px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Based on the shape of the {argument name=&amp;#34;subject&amp;#34; default=&amp;#34;clouds&amp;#34;} in the image, identify what object, animal, or person they most resemble. Do not change the original image; instead, draw that object, animal, or person over the original image in a {argument name=&amp;#34;art style&amp;#34; default=&amp;#34;doodle&amp;#34;} style.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;rural-station-schoolgirl-scene&#34;&gt;Rural Station Schoolgirl Scene
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/m_Raiko_AIart/status/2048069313387737222&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/m_Raiko_AIart&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@m_Raiko_AIart&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/048.webp&#34;
	width=&#34;1200&#34;
	height=&#34;900&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/048_hu_66cd8f2405b1b74d.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/048_hu_d773f4afd927dd3d.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Rural Station Schoolgirl Scene&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;133&#34;
		data-flex-basis=&#34;320px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A cinematic anime-style illustration of a quiet rural Japanese train station in early summer, filled with travel nostalgia and bright midday light. In the foreground, one high school girl stands alone on the platform near the left side of the frame, facing slightly toward the viewer with a shy, gentle posture, her legs together and one foot angled inward. She has {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;black&amp;#34;} short bobbed hair with soft bangs, and wears a classic Japanese sailor school uniform: a white long-sleeved sailor blouse with navy trim, a vivid red neckerchief, a dark navy pleated skirt, white socks, and dark brown loafers. She holds a dark school bag in one hand at her side. Her expression should feel calm, a little wistful, as if she was just about to speak before the train arrived. Place her beside an old weathered wooden station building with large windowpanes and a simple wooden bench. Above her is 1 hanging station sign reading {argument name=&amp;#34;station name&amp;#34; default=&amp;#34;山ノ下駅&amp;#34;}, with smaller romanized text “YAMANOSHITA” and small local line information beneath it. The right half of the image opens to 1 set of railway tracks receding into the distance, bordered by lush green grass and wildflowers, with 1 small local train approaching from far down the line. Add a few utility poles running alongside the tracks. In the deep background, show a dramatic mountain range with lingering snow on the peaks under a vivid blue sky with scattered white clouds. Composition should balance the girl on the left and the railway perspective on the right, with detailed background scenery, crisp sunlight, soft anime rendering, realistic textures in the station wood and rails, and a heartfelt slice-of-life travel mood.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;真实居酒屋里的动漫角色照片&#34;&gt;真实居酒屋里的动漫角色照片
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/sub_raw_jin/status/2048066779835220392&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/sub_raw_jin&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@sub_raw_jin&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/049.webp&#34;
	width=&#34;1200&#34;
	height=&#34;676&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/049_hu_3829d64e8a65e8fe.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/049_hu_b545c96841923dc4.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;真实居酒屋里的动漫角色照片&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;177&#34;
		data-flex-basis=&#34;426px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A candid indoor restaurant photo in a realistic anime-inspired style, showing two young women seated at a small worn wooden table inside a cozy Japanese izakaya with vertical wood-paneled walls and a clear plastic tent-like curtain on the right side. The camera is slightly above table height and angled diagonally toward the table, creating a casual snapshot feeling. One woman is in the left foreground with her back mostly to the viewer, leaning forward over the table; she has long straight dark hair and wears a bulky dark navy or black puffer jacket with a large hood. The second woman sits across from her on the right, facing the camera with a relaxed posture and one arm bent on the table; she has shoulder-length dark brown to black hair, a center part, a black puffer jacket, and a light inner shirt. Replace only the people with clean, natural-looking anime characters while keeping the restaurant environment photorealistic and unchanged. Preserve the mixed-media look of anime characters composited believably into a real photo. On the table, include 2 stainless steel mugs, 2 pairs of chopsticks, 1 smartphone with a bright blue case near the center-left edge of the table, 1 cigarette pack near the right woman, 1 large oval plate with thinly sliced white onions and a lemon wedge, 1 small dish of green vegetables, 1 small plate of brown food, 1 small plate with toast or grilled bread, 1 small dark bowl, 2 small empty white bowls, and 1 printed handwritten Japanese menu sheet lying on the lower right corner of the table. In the upper left background, include a wooden counter with white ceramic bottles and dishes, plus 1 handwritten Japanese wall menu poster. Warm indoor lighting, everyday nightlife atmosphere, documentary realism, detailed wood grain, slightly cluttered tabletop, authentic casual dining scene in Japan.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;anime-campers-in-a-winter-tent&#34;&gt;Anime Campers in a Winter Tent
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/sub_raw_jin/status/2048066779835220392&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/sub_raw_jin&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@sub_raw_jin&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/050.webp&#34;
	width=&#34;1200&#34;
	height=&#34;555&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/050_hu_a99b34861ac85714.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/050_hu_98e47f7fff418fc8.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Anime Campers in a Winter Tent&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;216&#34;
		data-flex-basis=&#34;518px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A cozy winter camping scene inside a large beige canvas tent, rendered as a semi-realistic anime illustration with natural lighting and realistic environmental detail. Show exactly 2 seated young women around a compact kerosene heater used as a camp table, with a large black metal pot resting on top. The viewpoint is a candid wide-angle photo composition from slightly above seated height, making the scene feel like a casual snapshot taken inside the tent. The woman on the left has {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;dark brown&amp;#34;} hair tied in a high ponytail with loose bangs, and wears a fluffy brown fleece jacket, dark pants, and a red lanyard with an ID card. She sits in a low camping chair and leans forward, using chopsticks over a small bowl or food container in her hands. The woman on the right has {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;black&amp;#34;} shoulder-length hair and wears a muted purple hoodie layered under a black puffer vest, light gray sweatpants, and dark shoes. She sits in another low camping chair, resting her cheek on one hand in a relaxed, sleepy pose. Keep both faces obscured by a soft rectangular blur block, as if anonymized in a posted photo. Around them, include exactly 4 red beverage cans visible in the scene: 2 on the wooden table planks near the center, 1 cropped in the lower right foreground, and 1 farther back near the right side. Build a low U-shaped arrangement of 3 wooden bench planks surrounding the heater. Add small camping details: 1 olive duffel bag on the left ground, 1 plastic storage box with supplies behind the left woman, 1 white plastic shopping bag on top of the box, 1 small bowl on the table, 1 colorful snack package on the right-side plank, 1 soft brown cloth on the far left floor, and 1 black metal rack frame standing at the back right. The tent interior should have taut canvas walls, visible seams and support poles, a gravel ground, and a warm muted color palette. Preserve the feeling of a real camping photo where only the people have been turned into anime-style characters while the setting remains highly realistic.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;bmw-performance-social-海报&#34;&gt;BMW Performance Social 海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/harboriis/status/2048063332624843046&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/harboriis&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@harboriis&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/051.webp&#34;
	width=&#34;800&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/051_hu_6c345699f3ac4fe0.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/051_hu_7a3e30600c6fd652.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;BMW Performance Social 海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;66&#34;
		data-flex-basis=&#34;160px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a 4:5 vertical social poster in ultra high resolution, 8K print quality sharpness. Use the {argument name=&amp;#34;car model&amp;#34; default=&amp;#34;BMW car&amp;#34;} from the reference image as the main subject and use the background structure/composition from the reference image, but transform it into a BMW themed design. Replace all black tones with a flat {argument name=&amp;#34;background color&amp;#34; default=&amp;#34;high-saturation BMW blue&amp;#34;} background. Keep the same layout, spacing, visual balance, and poster composition from the reference image. Background should use a smooth gradient from slightly lighter electric blue at the top to deep navy blue at the bottom. Add subtle grain texture (2 to 3%) and faint rectangular overlays (2 to 4% opacity). Keep it clean, graphic, premium, and non-realistic. Add a soft contact shadow under the car. Use the same BMW from the reference image, changing only the {argument name=&amp;#34;paint finish&amp;#34; default=&amp;#34;matte frozen blue&amp;#34;} or deep metallic navy. Keep the original body shape, wheels, stance, and design details from the reference image. Show the car in a rear 3/4 perspective matching the reference image angle exactly. Use a slightly elevated camera angle. Position the car slightly right of center. Include visible carbon roof, aggressive rear diffuser, sharp controlled reflections, and subtle brake details. Keep composition identical to the reference image: Top: branding Middle: giant type Center: car overlapping text Bottom: editorial block and specs Typography: Primary text: “BMW” Ultra condensed bold sans serif, tall vertical scaling like the reference poster. Color deep navy or near black. Static text with no distortion. Acts as structural backdrop. Secondary header: “BMW M4 G82” Thin font with wide tracking. Logo area: BMW roundel centered above. Editorial block: Headline: “BMW — Where Driving Becomes Instinct” Body copy focused on: driver connection control performance precision Use the same boxed editorial layout as the reference image. Background faded text: “M4” large scale with 3 to 5% opacity behind the box. Bottom left: “ M4 G82” Bottom right specs: 405 kW / 550 PS 3.4 s 307 km/h Lighting should be clean studio lighting with sharp but controlled highlights. Color grading should use deep blues, high contrast, clean blacks. Camera lens: 50mm, slightly elevated rear 3/4 angle. Mood: Performance. Precision. Driver focus. Add Bottom-right watermark: harboriis , with small x and Instagram logo
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;电影感-chicken-momos-ad-海报&#34;&gt;电影感 Chicken Momos Ad 海报
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/Diplomeme/status/2048060325925470358&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/Diplomeme&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Diplomeme&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/052.webp&#34;
	width=&#34;1024&#34;
	height=&#34;1024&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/052_hu_7112beaf8f90a74a.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/052_hu_b8863ee9d849010b.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;电影感 Chicken Momos Ad 海报&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A hyper-realistic cinematic street-food advertisement poster for {argument name=&amp;#34;brand name&amp;#34; default=&amp;#34;Licious&amp;#34;} frozen {argument name=&amp;#34;product name&amp;#34; default=&amp;#34;Chicken Momos&amp;#34;}, shot in a dark premium studio with dramatic moody lighting, deep navy-black background, glossy black tabletop, and high contrast commercial food photography styling. The composition is a square social-media ad layout with oversized bold condensed white sans-serif headline text on the left reading {argument name=&amp;#34;headline text&amp;#34; default=&amp;#34;PERFECTLY MADE.&amp;#34;} stacked across two lines, and a smaller white subheadline beneath it reading {argument name=&amp;#34;tagline text&amp;#34; default=&amp;#34;PRECISION IN EVERY BITE.&amp;#34;}. Along the far left edge, add thin vertical small caps text reading “FRESH • CLEAN • CONTROLLED”. Across the upper-right background, repeat the phrase “CUT / STEAM / SERVE / REPEAT” in a subtle dark gray pattern, and faintly repeat “CUT / STEAM / SERVE / REPEAT” again near the bottom-left floor area as perspective text. Feature exactly 6 momos total: 5 intact steamed chicken momos floating and arranged dynamically across the center and right side, and 1 split-open momo in the center revealing juicy orange-brown chicken filling with herbs, with a glossy red-orange sauce droplet dripping downward from the opened dumpling. Scatter small chili flakes, herb bits, and seasoning particles suspended in the air around the momos for explosive motion. Place exactly 3 retail product boxes on the right side, staggered in depth, black packaging with the {argument name=&amp;#34;brand name&amp;#34; default=&amp;#34;Licious&amp;#34;} logo and red product title “CHICKEN MOMOS,” including food photography of the dumplings on the box front. At the bottom right foreground, place 1 small black bowl filled with bright red dipping sauce. Add a thin footer line of small white text across the bottom reading “CHICKEN MOMOS • FRESHLY PREPARED • 2026 EDITION” and place “licious.com” in the lower-right corner. Use premium ad design, ultra-detailed food texture, glossy highlights on the dumplings, subtle steam sheen, crisp typography, shallow depth of field, and a polished high-end commercial campaign aesthetic.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;nostalgic-16-photo-couple-grid&#34;&gt;Nostalgic 16-Photo Couple Grid
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/zenkaiAI/status/2048051889460437351&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/zenkaiAI&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@zenkaiAI&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/053.webp&#34;
	width=&#34;1200&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/053_hu_7c3db8708f8b6482.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/053_hu_92bd8818f70e0b78.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Nostalgic 16-Photo Couple Grid&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;100&#34;
		data-flex-basis=&#34;240px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{&amp;#34;type&amp;#34;:&amp;#34;16-photo nostalgic contact sheet collage&amp;#34;,&amp;#34;style&amp;#34;:&amp;#34;dreamy film photography, soft blur, slightly underexposed, candid youthful romance, flash snapshots mixed with ambient dusk light, subtle grain, sentimental and bittersweet mood&amp;#34;,&amp;#34;subject&amp;#34;:{&amp;#34;people_count&amp;#34;:2,&amp;#34;relationship&amp;#34;:&amp;#34;young couple or former lovers spending time together&amp;#34;,&amp;#34;ages&amp;#34;:&amp;#34;early 20s&amp;#34;,&amp;#34;appearance&amp;#34;:{&amp;#34;male&amp;#34;:{&amp;#34;build&amp;#34;:&amp;#34;slim&amp;#34;,&amp;#34;hair&amp;#34;:&amp;#34;short dark hair&amp;#34;,&amp;#34;clothing&amp;#34;:&amp;#34;loose white short-sleeve shirt, camera strap around neck in several shots&amp;#34;},&amp;#34;female&amp;#34;:{&amp;#34;build&amp;#34;:&amp;#34;slim&amp;#34;,&amp;#34;hair&amp;#34;:&amp;#34;shoulder-length dark hair&amp;#34;,&amp;#34;clothing&amp;#34;:&amp;#34;light sleeveless tops or soft casual summer clothes&amp;#34;}},&amp;#34;faces&amp;#34;:&amp;#34;intentionally obscured by soft rectangular blur blocks over every visible face&amp;#34;},&amp;#34;layout&amp;#34;:{&amp;#34;grid&amp;#34;:{&amp;#34;rows&amp;#34;:4,&amp;#34;columns&amp;#34;:4,&amp;#34;count&amp;#34;:16,&amp;#34;border&amp;#34;:&amp;#34;thin white dividers, equal square cells&amp;#34;},&amp;#34;images&amp;#34;:[{&amp;#34;position&amp;#34;:&amp;#34;row 1 col 1&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;close cropped portrait of the woman in a white top at night, soft flash, dark background&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 1 col 2&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;close cropped blurred two-person selfie framing, both subjects partially visible, dark nighttime setting&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 1 col 3&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;young man standing at night and holding a compact silver camera up to his face, white shirt, distant lights behind him&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 1 col 4&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;woman on a beach or shoreline in low light, softly blurred, ocean horizon behind her&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 2 col 1&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;street candid of the man holding a camera near his face while walking outdoors in the evening, urban background with motion blur&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 2 col 2&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;close-up of the woman indoors or in a dim warm setting, hand raised near her face, flash-lit snapshot&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 2 col 3&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;blurred two-shot of the couple sitting close together by water at dusk, intimate candid composition&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 2 col 4&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;young man outdoors in greenery during daytime or early evening, looking down at a camera in his hands, white shirt and camera strap visible&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 3 col 1&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;woman close to the camera giving a peace sign, casual sleeveless top, sandy or beachlike background&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 3 col 2&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;back view of the man in a white shirt looking out over a cityscape at night from a high vantage point&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 3 col 3&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;woman indoors at night holding a compact camera directly toward the viewer, city lights beyond a window, flash aesthetic&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 3 col 4&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;tight cropped two-person selfie-like frame with both subjects partially visible, dark background&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 4 col 1&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;young man at the waterfront at dusk holding a camera to his eye, cloudy blue sky and distant shoreline behind him&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 4 col 2&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;soft night portrait of the woman on a city street with warm bokeh lights in the background&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 4 col 3&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;close intimate couple snapshot with both faces near each other, one subject making a peace sign, heavy blur and flash look&amp;#34;},{&amp;#34;position&amp;#34;:&amp;#34;row 4 col 4&amp;#34;,&amp;#34;description&amp;#34;:&amp;#34;rear view of the woman walking alone down a warmly lit narrow street at night, shoulder-length hair and light top visible&amp;#34;}]},&amp;#34;composition&amp;#34;:&amp;#34;each square feels like a memory fragment from one summer evening and a few nearby outings, varied framing, natural imperfection, casual amateur photography&amp;#34;,&amp;#34;color_palette&amp;#34;:&amp;#34;muted blues, warm tungsten yellows, soft skin tones, dark greens, charcoal night shadows, faded white clothing&amp;#34;,&amp;#34;camera_look&amp;#34;:&amp;#34;35mm point-and-shoot or disposable camera feel, shallow focus, motion blur, bloom around lights, occasional flash overexposure&amp;#34;,&amp;#34;quality&amp;#34;:&amp;#34;high-resolution collage with authentic analog softness, emotionally evocative and realistic&amp;#34;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;anime-bl-promo-缩略图&#34;&gt;Anime BL Promo 缩略图
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/himukai_an/status/2047981800535085555&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/himukai_an&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@himukai_an&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/054.webp&#34;
	width=&#34;1199&#34;
	height=&#34;675&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/054_hu_c949bbb5ffc3da07.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/054_hu_22313a14959dca4c.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Anime BL Promo 缩略图&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;177&#34;
		data-flex-basis=&#34;426px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A bright, polished anime-style promotional thumbnail with a summer romance atmosphere. The composition is split visually, with large typography on the left and two handsome young men on the right. On the left side, place layered translucent white panels with soft glow and sparkles over a sky-blue background, featuring large elegant serif text &amp;#34;GPT&amp;#34; in a blue gradient at the top and &amp;#34;BL&amp;#34; in a lavender-to-violet gradient below. Add three lines of Japanese text arranged between and under them: &amp;#34;最新の画像生成で&amp;#34;, &amp;#34;作って&amp;#34;, and &amp;#34;遊んでみた&amp;#34;, in deep blue calligraphic Japanese type. Include subtle decorative accents such as small star glints, diagonal light streaks, dotted texture, and a cyan underline swoosh beneath the middle text. On the right side, show 2 anime boys from the waist up, leaning casually together beside a chain-link fence under leafy trees. The taller boy has tousled dark brown hair, a navy overshirt worn open over a white T-shirt, layered silver necklaces, and holds 1 plastic cup of iced coffee with a straw. The shorter boy has messy silver-white hair, a white T-shirt with a small crest emblem on the chest, black backpack straps over both shoulders, layered silver necklaces, and one small earring. Their poses are relaxed and intimate, with the dark-haired boy’s arm resting around the other. Use a luminous blue-and-white palette with soft sunlight, lens flare, bokeh, and a faint cityscape in the background, creating a clean social-media header or article thumbnail aesthetic.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;夜晚的艺术家与空灵缪斯&#34;&gt;夜晚的艺术家与空灵缪斯
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/almimeister/status/2048309710118687101&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Caso original&lt;/a&gt; / Autor: &lt;a class=&#34;link&#34; href=&#34;https://x.com/almimeister&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@almimeister&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/055.webp&#34;
	width=&#34;960&#34;
	height=&#34;1200&#34;
	srcset=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/055_hu_8c4d3b82e3d3a6f7.webp 480w, https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/055_hu_98818098bf668f.webp 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;夜晚的艺术家与空灵缪斯&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;80&#34;
		data-flex-basis=&#34;192px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Prompt completo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A cinematic anime-inspired digital illustration set at night inside a cozy artist&amp;#39;s room with large window panes and a warm city glow outside. On the left, a young male artist with {argument name=&amp;#34;hair color&amp;#34; default=&amp;#34;dark brown&amp;#34;} messy hair sits at a cluttered desk in side profile, leaning forward with one hand near his mouth and the other drawing with a pen on a tablet or sketchbook. The desk is covered with exactly 1 pen cup filled with pencils, 1 coffee mug, 1 open laptop or pen-display showing a sunset landscape, 1 spiral sketchbook with manga-style character drawings, 2 additional drawing books or pads, 1 small stack of about 4 books, and many scattered art cards and printed illustrations. On the right, a luminous ethereal anime girl made of blue-white light appears life-sized, facing the artist with both hands gently extended toward him. Her form is translucent, delicate, and composed of glowing contour lines, starry particles, and flowing strands of light, with long windblown hair and a soft dress-like silhouette. Between them, a magical stream of golden and white light spirals upward from the artist&amp;#39;s desk into the air, connecting creator and creation. Inside this swirling ribbon are exactly 12 to 16 floating image fragments and sketch pages: monochrome character sketches, scenic sunset paintings, small photo-like panels, and tiny icon-like cards, all orbiting in a curved arc from lower center to upper left and upper center. Around the upper half of the image, dozens of glowing musical notes float through the air, mixed with sparkling particles, creating the feeling that inspiration has become visible sound and memory. The palette is rich warm gold and amber on the artist&amp;#39;s side, contrasted with cool electric blue and white on the spirit girl&amp;#39;s side, with dramatic rim light, volumetric glow, intricate particles, and a dreamy emotional atmosphere. Composition is vertical, highly detailed, intimate, and poetic, evoking the relationship between {argument name=&amp;#34;person one&amp;#34; default=&amp;#34;you&amp;#34;} and {argument name=&amp;#34;person two&amp;#34; default=&amp;#34;me&amp;#34;} as artist and imagined muse, where drawings, music, memories, and fantasy physically manifest in the room. Add a small handwritten note card on the desk with {argument name=&amp;#34;note text&amp;#34; default=&amp;#34;二人だけの物語&amp;#34;}, and display one prominent artwork on the desk and one floating scenic panel using {argument name=&amp;#34;scene theme&amp;#34; default=&amp;#34;sunset sky over a distant city&amp;#34;}.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Navegacion de categorias: &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-case-index/&#34; &gt;Indice general&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ecommerce-cases/&#34; &gt;E-commerce&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/2026/05/02/awesome-gpt-image-2-prompts-ad-creative-cases/&#34; &gt;Creatividad publicitaria&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-portrait-cases/&#34; &gt;Retratos&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-poster-cases/&#34; &gt;Posters e ilustraciones&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-character-cases/&#34; &gt;Personajes&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-ui-social-cases/&#34; &gt;UI y redes sociales&lt;/a&gt; / &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/02/awesome-gpt-image-2-prompts-comparison-community-cases/&#34; &gt;Comparaciones y comunidad&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;enlaces-del-repositorio-original&#34;&gt;Enlaces del repositorio original
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Pagina del proyecto&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EvoLinkAI/awesome-gpt-image-2-prompts/blob/main/cases/ui.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Archivo de categoria original&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>faster-whisper: un motor de transcripción Whisper más rápido</title>
        <link>https://knightli.com/es/2026/05/01/faster-whisper-speech-to-text/</link>
        <pubDate>Fri, 01 May 2026 22:31:26 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/01/faster-whisper-speech-to-text/</guid>
        <description>&lt;p&gt;&lt;code&gt;faster-whisper&lt;/code&gt; es una implementación de inferencia de Whisper mantenida por SYSTRAN. Usa CTranslate2 como backend, mantiene un flujo cercano a Whisper y hace que la velocidad de inferencia, el uso de memoria y la flexibilidad de despliegue sean más adecuados para trabajo de ingeniería.&lt;/p&gt;
&lt;p&gt;Si has usado &lt;code&gt;openai/whisper&lt;/code&gt;, puedes pensar en &lt;code&gt;faster-whisper&lt;/code&gt; como una alternativa más orientada a producción. La interfaz sigue girando alrededor de cargar un modelo, transcribir audio y leer resultados segmentados, pero la capa de ejecución es más rápida y más fácil de ajustar para CPU, GPU, cuantización y batching.&lt;/p&gt;
&lt;h2 id=&#34;qué-problema-resuelve&#34;&gt;Qué problema resuelve
&lt;/h2&gt;&lt;p&gt;Whisper funciona bien, pero la implementación original suele encontrar varios problemas cuando se despliega directamente:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;El audio largo puede tardar bastante en transcribirse.&lt;/li&gt;
&lt;li&gt;El uso de memoria GPU puede ser alto.&lt;/li&gt;
&lt;li&gt;La ejecución en CPU funciona, pero la velocidad puede no ser ideal.&lt;/li&gt;
&lt;li&gt;El throughput no siempre es fácil de escalar al procesar grandes lotes de audio o video.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;code&gt;faster-whisper&lt;/code&gt; optimiza principalmente estos puntos. Su README indica que, con la misma precisión, puede ser hasta 4 veces más rápido que &lt;code&gt;openai/whisper&lt;/code&gt; usando menos memoria. Con cuantización de 8 bits, la velocidad puede mejorar aún más.&lt;/p&gt;
&lt;h2 id=&#34;instalación&#34;&gt;Instalación
&lt;/h2&gt;&lt;p&gt;En un entorno Python normal, instálalo directamente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install faster-whisper
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si quieres usar GPU, asegúrate de que las versiones locales de CUDA, cuDNN y CTranslate2 sean compatibles. Este es el punto más fácil para tropezar: el código puede estar bien, pero la inferencia puede fallar al cargar el modelo o ejecutar la primera solicitud si el driver GPU y el runtime CUDA no coinciden.&lt;/p&gt;
&lt;h2 id=&#34;uso-básico&#34;&gt;Uso básico
&lt;/h2&gt;&lt;p&gt;El ejemplo mínimo es directo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;faster_whisper&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;WhisperModel&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;model_size&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;large-v3&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;model&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;WhisperModel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;model_size&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;device&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;cuda&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;compute_type&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;float16&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;segments&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;info&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;transcribe&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;audio.mp3&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;beam_size&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Detected language &amp;#39;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;%s&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#39; with probability &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;%f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;info&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;language&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;info&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;language_probability&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;segment&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;segments&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;[&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;%.2f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;s -&amp;gt; &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;%.2f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;s] &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;%s&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;segment&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;start&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;segment&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;end&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;segment&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;text&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Los parámetros clave son:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Parámetro&lt;/th&gt;
          &lt;th&gt;Propósito&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;model_size&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Selecciona el tamaño del modelo Whisper, como &lt;code&gt;small&lt;/code&gt;, &lt;code&gt;medium&lt;/code&gt; o &lt;code&gt;large-v3&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;device&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Dispositivo de inferencia, normalmente &lt;code&gt;cuda&lt;/code&gt; o &lt;code&gt;cpu&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;compute_type&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Precisión de cálculo, como &lt;code&gt;float16&lt;/code&gt;, &lt;code&gt;int8_float16&lt;/code&gt; o &lt;code&gt;int8&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;beam_size&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Anchura de búsqueda de decodificación; valores mayores suelen ser más estables pero más lentos&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Si tu objetivo es una transcripción local rápida, empieza probando &lt;code&gt;medium&lt;/code&gt; o &lt;code&gt;large-v3&lt;/code&gt;. Si la memoria GPU es limitada, considera la cuantización.&lt;/p&gt;
&lt;h2 id=&#34;elegir-cpu-o-gpu&#34;&gt;Elegir CPU o GPU
&lt;/h2&gt;&lt;p&gt;Con una GPU NVIDIA, prefiere:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;model&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;WhisperModel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;large-v3&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;device&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;cuda&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;compute_type&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;float16&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si la memoria GPU no alcanza, cambia a:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;model&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;WhisperModel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;large-v3&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;device&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;cuda&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;compute_type&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;int8_float16&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Sin GPU, ejecútalo en CPU:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;model&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;WhisperModel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;small&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;device&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;cpu&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;compute_type&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;int8&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El modo CPU encaja mejor con tareas ligeras, trabajos en segundo plano poco frecuentes o servidores sin tarjeta gráfica. Para mucho audio largo, la GPU sigue siendo la mejor opción.&lt;/p&gt;
&lt;h2 id=&#34;transcripción-por-lotes&#34;&gt;Transcripción por lotes
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;faster-whisper&lt;/code&gt; también ofrece transcripción por lotes. El batching es útil para muchos audios cortos o cuando necesitas mayor throughput de GPU:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;faster_whisper&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;WhisperModel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;BatchedInferencePipeline&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;model&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;WhisperModel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;turbo&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;device&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;cuda&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;compute_type&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;float16&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;batched_model&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;BatchedInferencePipeline&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;segments&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;info&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;batched_model&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;transcribe&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;audio.mp3&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;batch_size&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;16&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;segment&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;segments&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;[&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;%.2f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;s -&amp;gt; &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;%.2f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;s] &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;%s&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;segment&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;start&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;segment&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;end&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;segment&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;text&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Un &lt;code&gt;batch_size&lt;/code&gt; mayor no siempre es mejor. Mejora el throughput, pero también aumenta la presión sobre la memoria GPU. En la práctica, prueba valores como 4, 8 y 16 paso a paso hasta encontrar un punto estable para tu máquina.&lt;/p&gt;
&lt;h2 id=&#34;vad-y-marcas-de-tiempo-por-palabra&#34;&gt;VAD y marcas de tiempo por palabra
&lt;/h2&gt;&lt;p&gt;La transcripción de voz suele tener que lidiar con silencios largos, ruido de fondo y alineación de subtítulos. &lt;code&gt;faster-whisper&lt;/code&gt; incluye parámetros prácticos que se pueden activar directamente durante la transcripción.&lt;/p&gt;
&lt;p&gt;Activar VAD:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;segments&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;info&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;transcribe&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;audio.mp3&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;vad_filter&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Obtener marcas de tiempo por palabra:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;segments&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;info&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;transcribe&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;audio.mp3&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;word_timestamps&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;segment&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;segments&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;word&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;segment&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;words&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;[&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;%.2f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;s -&amp;gt; &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;%.2f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;s] &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;%s&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;word&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;start&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;word&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;end&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;word&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;word&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;VAD es útil para grabaciones de reuniones, podcasts y repeticiones de directos con secciones largas de silencio. Las marcas de tiempo por palabra son útiles para subtítulos, revisión de transcripciones y resaltado de palabras en reproductores.&lt;/p&gt;
&lt;h2 id=&#34;elegir-un-modelo&#34;&gt;Elegir un modelo
&lt;/h2&gt;&lt;p&gt;La elección del modelo depende sobre todo de precisión, velocidad y recursos de la máquina.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Escenario&lt;/th&gt;
          &lt;th&gt;Recomendación&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Pruebas rápidas&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;small&lt;/code&gt; o &lt;code&gt;medium&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Contenido chino priorizando calidad&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;large-v3&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Memoria GPU ajustada&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;int8_float16&lt;/code&gt; o un modelo más pequeño&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Tareas en segundo plano con CPU&lt;/td&gt;
          &lt;td&gt;Modelo pequeño más &lt;code&gt;int8&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Muchos audios cortos&lt;/td&gt;
          &lt;td&gt;Probar &lt;code&gt;BatchedInferencePipeline&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Para voz en chino, empieza con &lt;code&gt;large-v3&lt;/code&gt; si la calidad importa. Si la máquina va demasiado justa, reduce el tamaño del modelo o usa cuantización. No mires solo la velocidad al principio: si baja la calidad de transcripción, el tiempo extra de revisión manual puede anular el tiempo de inferencia ahorrado.&lt;/p&gt;
&lt;h2 id=&#34;casos-de-uso-adecuados&#34;&gt;Casos de uso adecuados
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;faster-whisper&lt;/code&gt; encaja bien para:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Generar subtítulos de video.&lt;/li&gt;
&lt;li&gt;Transcribir podcasts, reuniones y grabaciones de cursos.&lt;/li&gt;
&lt;li&gt;Crear flujos locales de transcripción para Bilibili, YouTube y videos similares.&lt;/li&gt;
&lt;li&gt;Archivar y buscar contenido de audio por lotes.&lt;/li&gt;
&lt;li&gt;Enviar contenido hablado a RAG, bases de conocimiento o sistemas de búsqueda.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;No resuelve directamente tareas de nivel superior como diarización de hablantes, resumen o segmentación por capítulos, pero puede servir como una capa de transcripción estable. Puedes añadir pyannote para diarización y un LLM para resumen y limpieza estructurada.&lt;/p&gt;
&lt;h2 id=&#34;sugerencias-de-despliegue&#34;&gt;Sugerencias de despliegue
&lt;/h2&gt;&lt;p&gt;Para uso real, depura en este orden:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Usa un clip de audio de 1 a 3 minutos para confirmar que el entorno corre correctamente.&lt;/li&gt;
&lt;li&gt;Prueba la precisión con muestras que coincidan con tu idioma y calidad de audio objetivo.&lt;/li&gt;
&lt;li&gt;Revisa el uso de memoria GPU antes de decidir si activar cuantización.&lt;/li&gt;
&lt;li&gt;Divide primero el audio largo, para que una tarea fallida no obligue a repetirlo todo.&lt;/li&gt;
&lt;li&gt;Guarda salidas TXT y SRT para facilitar la revisión posterior.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Para tareas del lado del servidor, carga el modelo durante el inicio del servicio en vez de recargarlo por cada solicitud. Cargar el modelo toma tiempo, y recargarlo con frecuencia también puede volver menos estable la gestión de memoria GPU.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;El valor de &lt;code&gt;faster-whisper&lt;/code&gt; es que convierte Whisper en un componente de transcripción más adecuado para uso sostenido. No es un modelo distinto; es un backend de inferencia y una interfaz de ingeniería más eficientes.&lt;/p&gt;
&lt;p&gt;Para flujos personales, puede convertir rápidamente videos, reuniones y audio de cursos en texto. Para tareas de servidor, puedes ajustar rendimiento con GPU, cuantización, batching y VAD. Siempre que el entorno de la máquina esté configurado correctamente, es más adecuado que la implementación original de Whisper para trabajos estables y por lotes de speech-to-text.&lt;/p&gt;
&lt;p&gt;Proyecto: &lt;a class=&#34;link&#34; href=&#34;https://github.com/SYSTRAN/faster-whisper&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/SYSTRAN/faster-whisper&lt;/a&gt;&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Cómo usar DeepSeek V4 Pro en Cline</title>
        <link>https://knightli.com/es/2026/05/01/use-deepseek-v4-pro-in-cline/</link>
        <pubDate>Fri, 01 May 2026 20:59:06 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/01/use-deepseek-v4-pro-in-cline/</guid>
        <description>&lt;p&gt;Cline ya admite el proveedor OpenAI Compatible. La API de DeepSeek también es compatible con llamadas al estilo del SDK de OpenAI, así que conectar &lt;code&gt;deepseek-v4-pro&lt;/code&gt; a Cline no es complicado: elige OpenAI Compatible y completa la Base URL de DeepSeek, la API Key y el nombre del modelo.&lt;/p&gt;
&lt;p&gt;Los pasos siguientes cubren tanto la interfaz de la extensión para VS Code como Cline CLI.&lt;/p&gt;
&lt;h2 id=&#34;preparar-una-api-key-de-deepseek&#34;&gt;Preparar una API Key de DeepSeek
&lt;/h2&gt;&lt;p&gt;Primero, crea una API Key en la plataforma de DeepSeek.&lt;/p&gt;
&lt;p&gt;Necesitas tres valores:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Elemento&lt;/th&gt;
          &lt;th&gt;Valor&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Provider&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;OpenAI Compatible&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Base URL&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;https://api.deepseek.com&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Model ID&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;deepseek-v4-pro&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;La documentación oficial de DeepSeek indica que la serie V4 usa la interfaz existente compatible con OpenAI. Mantén &lt;code&gt;base_url&lt;/code&gt; como &lt;code&gt;https://api.deepseek.com&lt;/code&gt; y establece &lt;code&gt;model&lt;/code&gt; en &lt;code&gt;deepseek-v4-pro&lt;/code&gt; o &lt;code&gt;deepseek-v4-flash&lt;/code&gt; al llamarlo.&lt;/p&gt;
&lt;h2 id=&#34;configurarlo-en-la-extensión-de-cline&#34;&gt;Configurarlo en la extensión de Cline
&lt;/h2&gt;&lt;p&gt;Si usas la extensión de Cline en VS Code, configúrala así:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Abre Cline desde la barra lateral de VS Code.&lt;/li&gt;
&lt;li&gt;Entra en la configuración de Cline o en la configuración de modelos.&lt;/li&gt;
&lt;li&gt;Selecciona &lt;code&gt;OpenAI Compatible&lt;/code&gt; como proveedor.&lt;/li&gt;
&lt;li&gt;Introduce tu API Key de DeepSeek.&lt;/li&gt;
&lt;li&gt;Configura Base URL como:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;https://api.deepseek.com
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ol start=&#34;6&#34;&gt;
&lt;li&gt;Configura Model ID como:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek-v4-pro
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ol start=&#34;7&#34;&gt;
&lt;li&gt;Guarda la configuración y ejecuta una prueba sencilla en Cline.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Empieza con una tarea de solo lectura y bajo riesgo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Please read the current project directory structure and summarize what type of project this is. Do not modify any files.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si Cline puede leer y responder con normalidad, la conexión del modelo funciona.&lt;/p&gt;
&lt;h2 id=&#34;configurarlo-en-cline-cli&#34;&gt;Configurarlo en Cline CLI
&lt;/h2&gt;&lt;p&gt;Si usas Cline CLI, ejecuta &lt;code&gt;cline provider configure openai-compatible&lt;/code&gt; para entrar en la configuración interactiva.&lt;/p&gt;
&lt;p&gt;Ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cline provider configure openai-compatible
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Completa:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;API Key: sk-...
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Base URL: https://api.deepseek.com
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Model ID: deepseek-v4-pro
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Después de configurarlo, prueba con una tarea de solo lectura:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cline &lt;span class=&#34;s2&#34;&gt;&amp;#34;Summarize this repository structure without changing files.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si quieres reducir el coste al principio, puedes cambiar temporalmente Model ID a:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek-v4-flash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Luego vuelve a &lt;code&gt;deepseek-v4-pro&lt;/code&gt; para planificación compleja, verificación de hechos, colaboración con varias herramientas o cambios de código de alto riesgo.&lt;/p&gt;
&lt;h2 id=&#34;división-de-modelos-recomendada&#34;&gt;División de modelos recomendada
&lt;/h2&gt;&lt;p&gt;DeepSeek V4 Pro y Flash funcionan mejor con una separación clara.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Modelo&lt;/th&gt;
          &lt;th&gt;Mejor para&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;deepseek-v4-flash&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Lectura rutinaria de código, pequeños arreglos por lotes, generación de scripts, resúmenes de contexto, cambios frontend de bajo riesgo&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;deepseek-v4-pro&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Planificación de arquitectura, bugs complejos, refactors entre archivos, verificación de hechos, llamadas multi-herramienta, cambios de alto riesgo&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;En herramientas de Agent como Cline, el coste suele venir del contexto largo, lecturas repetidas de archivos, generación de planes y llamadas de herramientas en varias rondas. Si la tarea es ligera, usa Flash para volumen; si necesita mejor juicio, cambia a Pro.&lt;/p&gt;
&lt;h2 id=&#34;cómo-configurar-la-longitud-de-contexto&#34;&gt;Cómo configurar la longitud de contexto
&lt;/h2&gt;&lt;p&gt;DeepSeek V4 Pro y Flash admiten contexto largo. Si Cline exige un valor manual de ventana de contexto, puedes interpretarlo según el contexto de 1M indicado en la página oficial de modelos de DeepSeek.&lt;/p&gt;
&lt;p&gt;En la práctica, no conviene meter todos los archivos en contexto desde el inicio. Cline lee archivos según la tarea, y un flujo mejor suele ser:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;primero pedirle que inspeccione la estructura del directorio;&lt;/li&gt;
&lt;li&gt;luego pedirle que localice los archivos relevantes;&lt;/li&gt;
&lt;li&gt;finalmente dejar que modifique solo los archivos objetivo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto ahorra tokens y mantiene más claro el límite de la tarea.&lt;/p&gt;
&lt;h2 id=&#34;problemas-comunes&#34;&gt;Problemas comunes
&lt;/h2&gt;&lt;h3 id=&#34;1-modelo-no-encontrado&#34;&gt;1. Modelo no encontrado
&lt;/h3&gt;&lt;p&gt;Primero comprueba que Model ID sea exactamente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;deepseek-v4-pro
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;No escribas &lt;code&gt;DeepSeek V4 Pro&lt;/code&gt;, &lt;code&gt;deepseek-v4&lt;/code&gt; ni otro nombre mostrado.&lt;/p&gt;
&lt;h3 id=&#34;2-401-o-fallo-de-autenticación&#34;&gt;2. 401 o fallo de autenticación
&lt;/h3&gt;&lt;p&gt;Comprueba la API Key:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;si se copió completa;&lt;/li&gt;
&lt;li&gt;si contiene espacios adicionales;&lt;/li&gt;
&lt;li&gt;si se introdujo en la configuración de proveedor que Cline está usando;&lt;/li&gt;
&lt;li&gt;si la cuenta de DeepSeek tiene saldo disponible.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;3-fallo-de-conexión&#34;&gt;3. Fallo de conexión
&lt;/h3&gt;&lt;p&gt;Comprueba la Base URL:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;https://api.deepseek.com
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;No añadas &lt;code&gt;/v1/chat/completions&lt;/code&gt; al final. El proveedor OpenAI Compatible de Cline construirá por sí mismo las solicitudes de la interfaz compatible.&lt;/p&gt;
&lt;h3 id=&#34;4-las-llamadas-de-cline-son-demasiado-caras&#34;&gt;4. Las llamadas de Cline son demasiado caras
&lt;/h3&gt;&lt;p&gt;Puedes pasar las tareas rutinarias a &lt;code&gt;deepseek-v4-flash&lt;/code&gt; y usar &lt;code&gt;deepseek-v4-pro&lt;/code&gt; solo para tareas complejas.&lt;/p&gt;
&lt;p&gt;Además, haz que la descripción de la tarea sea lo más clara posible:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Only modify files related to the login page. Do not refactor unrelated modules. First provide a plan, and modify code only after confirmation.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Las tareas de Agent son más caras cuando los límites son poco claros. Cuanto más claro sea el límite, menos archivos leerá, menos llamadas de herramienta hará y más controlable será el coste.&lt;/p&gt;
&lt;h3 id=&#34;5-error-reasoning_content-must-be-passed-back&#34;&gt;5. Error: reasoning_content must be passed back
&lt;/h3&gt;&lt;p&gt;Si ves un error como este:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;message&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;400 The `reasoning_content` in the thinking mode must be passed back to the API.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;code&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;invalid_request_error&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;modelId&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;deepseek-v4-pro&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Normalmente no es un problema de Key, cuota o Base URL. Significa que el modo de pensamiento de DeepSeek V4 Pro y el historial multi-ronda de llamadas de herramientas del cliente actual no están alineados.&lt;/p&gt;
&lt;p&gt;La documentación oficial de DeepSeek indica:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;el modo de pensamiento está &lt;code&gt;enabled&lt;/code&gt; por defecto;&lt;/li&gt;
&lt;li&gt;el modo de pensamiento devuelve &lt;code&gt;reasoning_content&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;si ocurre una llamada de herramienta en una ronda, las solicitudes posteriores deben devolver el &lt;code&gt;reasoning_content&lt;/code&gt; de ese mensaje del asistente;&lt;/li&gt;
&lt;li&gt;si el cliente no lo devuelve correctamente, la API devuelve 400.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cuando Cline se conecta mediante el proveedor OpenAI Compatible, este error puede aparecer en la segunda ronda o después de llamadas de herramienta si la versión actual no conserva y reenvía por completo el &lt;code&gt;reasoning_content&lt;/code&gt; de DeepSeek.&lt;/p&gt;
&lt;p&gt;Prueba en este orden:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Actualiza Cline a la versión más reciente;&lt;/li&gt;
&lt;li&gt;confirma que estás usando &lt;code&gt;OpenAI Compatible&lt;/code&gt;, no el proveedor normal &lt;code&gt;OpenAI&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;si Cline admite cuerpo de solicitud personalizado, intenta desactivar el modo de pensamiento:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;thinking&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;disabled&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ol start=&#34;4&#34;&gt;
&lt;li&gt;si Cline no admite parámetros extra en el body, usa temporalmente otro modelo o un servicio proxy compatible;&lt;/li&gt;
&lt;li&gt;vuelve a &lt;code&gt;deepseek-v4-pro&lt;/code&gt; cuando Cline admita reenviar &lt;code&gt;reasoning_content&lt;/code&gt; de DeepSeek V4.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Ten en cuenta que desactivar el modo de pensamiento puede reducir la capacidad de razonamiento complejo, pero puede esquivar problemas de compatibilidad del cliente cuando &lt;code&gt;reasoning_content&lt;/code&gt; no se devuelve.&lt;/p&gt;
&lt;h2 id=&#34;configuración-copiable&#34;&gt;Configuración copiable
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Provider: OpenAI Compatible
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;API Key: sk-your DeepSeek API Key
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Base URL: https://api.deepseek.com
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Model ID: deepseek-v4-pro
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Para modo de bajo coste:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Provider: OpenAI Compatible
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;API Key: sk-your DeepSeek API Key
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Base URL: https://api.deepseek.com
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Model ID: deepseek-v4-flash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Solo hay tres pasos clave para llamar a DeepSeek V4 Pro en Cline:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;elegir &lt;code&gt;OpenAI Compatible&lt;/code&gt; como proveedor;&lt;/li&gt;
&lt;li&gt;establecer Base URL en &lt;code&gt;https://api.deepseek.com&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;establecer Model ID en &lt;code&gt;deepseek-v4-pro&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Después de configurarlo, prueba con una tarea de solo lectura antes de darle cambios reales de código. Si ejecutas tareas de Agent con frecuencia, separa Flash y Pro: Flash maneja trabajo ligero y frecuente, mientras Pro se ocupa del juicio complejo y las tareas de respaldo.&lt;/p&gt;
&lt;p&gt;Referencias:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.cline.bot/provider-config/openai-compatible&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Cline Docs: OpenAI Compatible Provider&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.cline.bot/provider-config/overview&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Cline Docs: Provider Configuration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://api-docs.deepseek.com/news/news202605&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DeepSeek API Docs: News&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://api-docs.deepseek.com/quick_start/pricing/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DeepSeek API Docs: Models &amp;amp; Pricing&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Cómo las rebajas de DeepSeek V4 reescriben el modelo de costes de los AI Agents</title>
        <link>https://knightli.com/es/2026/05/01/deepseek-v4-price-cuts-ai-agent-economics/</link>
        <pubDate>Fri, 01 May 2026 19:47:47 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/01/deepseek-v4-price-cuts-ai-agent-economics/</guid>
        <description>&lt;p&gt;DeepSeek V4 no llegó con un lanzamiento especialmente ruidoso. No hubo gran evento ni una historia de benchmarks que aplastara al instante a todos los competidores. Pero unos días después apareció la parte que realmente afecta a la industria: rebajas repetidas de precio.&lt;/p&gt;
&lt;p&gt;El punto de este cambio no es que &amp;ldquo;el modelo se volvió un poco más fuerte&amp;rdquo;, sino que &amp;ldquo;el coste de uso fue empujado a otro nivel&amp;rdquo;. Cuando los precios por token bajan lo suficiente para que una tarea ordinaria de Agent termine por unos pocos centavos o un par de yuanes, la lógica de negocio detrás de muchos Coding Plans y Token Plans necesita reconsiderarse.&lt;/p&gt;
&lt;h2 id=&#34;el-día-de-lanzamiento-no-fue-explosivo&#34;&gt;El día de lanzamiento no fue explosivo
&lt;/h2&gt;&lt;p&gt;La primera ola de comentarios sobre DeepSeek V4 no fue especialmente intensa. Mucha gente esperaba un impacto como el de R1: liderazgo general en benchmarks, validación del cómputo doméstico y avances simultáneos en multimodalidad y capacidades de Agent. Tras el lanzamiento real, sin embargo, se pareció más a una actualización sólida.&lt;/p&gt;
&lt;p&gt;V4 Pro es sin duda un modelo fuerte, especialmente en programación, matemáticas, contexto largo y agentic coding. Pero no es el tipo de producto que hace que todos los modelos pares parezcan obsoletos de inmediato. Por eso, el día de lanzamiento la discusión se sintió algo incómoda: la gente quería elogiarlo, pero era difícil encontrar un ángulo lo bastante explosivo.&lt;/p&gt;
&lt;p&gt;El verdadero punto de inflexión no fue el lanzamiento, sino los ajustes de precio que llegaron después.&lt;/p&gt;
&lt;h2 id=&#34;las-rebajas-sucesivas-son-la-clave&#34;&gt;Las rebajas sucesivas son la clave
&lt;/h2&gt;&lt;p&gt;Después de publicarse DeepSeek V4, los precios empezaron a moverse hacia abajo. Según la página oficial de precios de DeepSeek y la información resumida en el artículo fuente, los precios aproximados de aquel momento eran:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;DeepSeek V4 Flash: alrededor de 1 yuan por 1 millón de tokens de entrada; alrededor de 0,02 yuan por 1 millón de tokens tras un cache hit;&lt;/li&gt;
&lt;li&gt;DeepSeek V4 Pro: alrededor de 3 yuanes por 1 millón de tokens de entrada; alrededor de 0,025 yuan por 1 millón de tokens tras un cache hit;&lt;/li&gt;
&lt;li&gt;el precio de entrada con cache hit en toda la familia de modelos cayó a una décima parte del precio de lanzamiento;&lt;/li&gt;
&lt;li&gt;V4 Pro estuvo en un periodo de descuento del 75%, extendido hasta el 31 de mayo de 2026 a las 23:59.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Los precios de API en dólares estadounidenses muestran la diferencia con más claridad:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Modelo&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Entrada cacheada&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Entrada no cacheada&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Salida&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Contexto&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;deepseek-v4-flash&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.0028 / 1M tokens&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.14 / 1M tokens&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.28 / 1M tokens&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1M&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;deepseek-v4-pro&lt;/code&gt; precio promocional&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.003625 / 1M tokens&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.435 / 1M tokens&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.87 / 1M tokens&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1M&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;deepseek-v4-pro&lt;/code&gt; precio regular&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.0145 / 1M tokens&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$1.74 / 1M tokens&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$3.48 / 1M tokens&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1M&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Aquí importan dos detalles.&lt;/p&gt;
&lt;p&gt;Primero, los $0.435 / $0.87 de V4 Pro son precio promocional, no el precio regular a largo plazo. En las notas oficiales de DeepSeek, este descuento del 75% fue extendido hasta el 31 de mayo de 2026 a las 15:59 UTC.&lt;/p&gt;
&lt;p&gt;Segundo, el precio con cache hit es la variable clave del modelo de costes de Agent. La entrada cacheada de Flash baja hasta $0.0028 / 1M tokens, mientras el precio promocional cacheado de Pro es $0.003625 / 1M tokens. Eso significa que contexto de proyecto repetido, definiciones de herramientas, system prompts y resúmenes históricos ya no necesitan cobrarse al precio completo de entrada.&lt;/p&gt;
&lt;p&gt;Lo más importante de esta política de precios es que vuelve &amp;ldquo;insensible&amp;rdquo; el coste en tokens de muchas tareas. Antes, los desarrolladores temían que una tarea de Agent consumiera mucho contexto, leyera y escribiera código repetidamente y llamara herramientas con frecuencia. Ahora, mientras la tasa de cache hit sea lo bastante alta, el coste puede empujarse muy abajo.&lt;/p&gt;
&lt;h2 id=&#34;comparación-de-precios-con-gpt-y-claude&#34;&gt;Comparación de precios con GPT y Claude
&lt;/h2&gt;&lt;p&gt;Los precios de DeepSeek por sí solos no transmiten toda la brecha. El contraste se vuelve mucho más claro al ponerlos junto a modelos cerrados comunes del mismo periodo.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Modelo&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Entrada&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Entrada cacheada&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Salida&lt;/th&gt;
          &lt;th&gt;Mejor para&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;deepseek-v4-flash&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.14 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.0028 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.28 / M&lt;/td&gt;
          &lt;td&gt;Agents de alta frecuencia, programación rutinaria, tareas por lotes&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;deepseek-v4-pro&lt;/code&gt; precio promocional&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.435 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.003625 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.87 / M&lt;/td&gt;
          &lt;td&gt;Programación compleja, planificación, verificación de hechos&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;deepseek-v4-pro&lt;/code&gt; precio regular&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$1.74 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.0145 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$3.48 / M&lt;/td&gt;
          &lt;td&gt;Línea base de coste Pro tras la promoción&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.5&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$5 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.50 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$30 / M&lt;/td&gt;
          &lt;td&gt;Tareas complejas de alta calidad, razonamiento general&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.4&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$2.50 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.25 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$15 / M&lt;/td&gt;
          &lt;td&gt;Opción intermedia para programación y trabajo profesional&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.4 mini&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.75 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.075 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$4.50 / M&lt;/td&gt;
          &lt;td&gt;Modelo general y de subtareas de menor coste&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Claude Opus 4.7&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$5 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.50 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$25 / M&lt;/td&gt;
          &lt;td&gt;Escritura de alta calidad, razonamiento complejo, tareas largas&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Claude Sonnet 4.6&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$3 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.30 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$15 / M&lt;/td&gt;
          &lt;td&gt;Programación, Agents, trabajo general&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Claude Haiku 4.5&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$1 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.10 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$5 / M&lt;/td&gt;
          &lt;td&gt;Tareas ligeras, resumen, clasificación&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;El número más llamativo de esta tabla es el precio de salida. Los Agents no solo leen contexto; también generan planes, parches, explicaciones, logs y siguientes acciones. Si hay mucha salida, los $0.87 / M promocionales de DeepSeek V4 Pro son drásticamente más baratos que los $30 / M de GPT-5.5 o los $15 / M de Claude Sonnet 4.6.&lt;/p&gt;
&lt;p&gt;Incluso al precio regular de salida de V4 Pro, $3.48 / M, sigue claramente por debajo de GPT-5.4, GPT-5.5 y Claude Sonnet / Opus. Si la tarea puede manejarse con Flash, el precio de salida baja aún más hasta $0.28 / M.&lt;/p&gt;
&lt;p&gt;La brecha de entrada cacheada es todavía más extrema. DeepSeek V4 Flash cuesta $0.0028 / M en entrada cacheada, mientras GPT-5.5 y Claude Opus 4.7 cuestan ambos $0.50 / M. No están en el mismo orden de magnitud. Para Agents que leen repetidamente el mismo repositorio de código, esta brecha importa más que en un chat normal.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-las-tareas-de-agent-se-ven-especialmente-afectadas&#34;&gt;Por qué las tareas de Agent se ven especialmente afectadas
&lt;/h2&gt;&lt;p&gt;Los AI Agents son distintos del chat ordinario. El chat normal suele ser un flujo de pregunta y respuesta con contexto de entrada relativamente limitado. Las tareas de Agent leen archivos de proyecto repetidamente, generan planes, llaman herramientas, inspeccionan resultados y vuelven a modificar código.&lt;/p&gt;
&lt;p&gt;Estas tareas tienen dos rasgos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;gran consumo de tokens;&lt;/li&gt;
&lt;li&gt;mucho contexto repetido.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El segundo punto es crucial. En un proyecto de código, el modelo lee una y otra vez los mismos archivos, estructura de directorios, logs de error y resultados de modificación. Si la plataforma admite cache hits, el coste de entrada repetida cae de forma pronunciada.&lt;/p&gt;
&lt;p&gt;El artículo fuente mencionaba una experiencia real: conectar DeepSeek V4 Pro y Flash a una herramienta parecida a Claude Code, pedirle que descargara un repositorio de prompts y lo convirtiera en un sitio local de búsqueda. La tarea se completó con un coste total de poco más de 0,8 yuanes, y Pro alcanzó una tasa de cache hit del 98,7%.&lt;/p&gt;
&lt;p&gt;Este ejemplo ilustra un punto práctico: cuanto más se parece una tarea de Agent a &amp;ldquo;trabajo repetido alrededor del mismo proyecto&amp;rdquo;, más valiosos se vuelven los cache hits. Si generar un sitio, arreglar un bug o cambiar un frontend cuesta solo unos centavos o unos pocos yuanes, los planes de suscripción pierden atractivo.&lt;/p&gt;
&lt;p&gt;Podemos estimar la brecha con una tarea simplificada. Supongamos que una tarea de coding agent incluye:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;500.000 tokens de entrada, de los cuales 80% pueden cachearse;&lt;/li&gt;
&lt;li&gt;50.000 tokens de salida;&lt;/li&gt;
&lt;li&gt;sin llamadas de herramientas, costes de búsqueda ni markup de plataforma, solo coste de tokens del modelo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Los costes aproximados son:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Modelo&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Coste estimado&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;DeepSeek V4 Flash&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;alrededor de $0.03&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;DeepSeek V4 Pro precio promocional&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;alrededor de $0.09&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;DeepSeek V4 Pro precio regular&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;alrededor de $0.36&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.4 mini&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;alrededor de $0.30&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.4&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;alrededor de $1.01&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.5&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;alrededor de $1.75&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Claude Sonnet 4.6&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;alrededor de $1.11&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Claude Opus 4.7&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;alrededor de $1.65&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Esta estimación no significa que DeepSeek sea mejor para todas las tareas. Calidad del modelo, estabilidad de tool calls, capacidad de recuperación en contexto largo, estilo de código y fiabilidad factual necesitan evaluación separada. Pero desde el coste, DeepSeek V4 empuja muy abajo el coste marginal de &amp;ldquo;dejar correr al Agent unas rondas más&amp;rdquo;. Eso animará a diseñar flujos más largos, autochecks más frecuentes y más soluciones candidatas sin preocuparse por la factura de tokens cada vez.&lt;/p&gt;
&lt;h2 id=&#34;la-diferencia-entre-coding-plans-y-token-plans&#34;&gt;La diferencia entre Coding Plans y Token Plans
&lt;/h2&gt;&lt;p&gt;Muchos productos de IA ofrecen ahora dos tipos de planes: Coding Plans y Token Plans.&lt;/p&gt;
&lt;p&gt;La diferencia aproximada es:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;los Coding Plans suelen estar orientados principalmente a programación;&lt;/li&gt;
&lt;li&gt;los Token Plans suelen cubrir más capacidades, como STT, TTS, generación de imágenes, búsqueda, embeddings y RAG;&lt;/li&gt;
&lt;li&gt;STT significa speech to text;&lt;/li&gt;
&lt;li&gt;TTS significa text to speech;&lt;/li&gt;
&lt;li&gt;los Coding Plans a menudo restringen al usuario a escenarios de programación, mientras otras capacidades requieren compras separadas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Desde el negocio, un Coding Plan se parece más a un buffet. Los usuarios pagan una tarifa fija por adelantado, mientras el proveedor apuesta a que la mayoría no agotará la cuota. Algunos usuarios consumen más, otros menos, y la plataforma todavía puede ganar dinero en promedio.&lt;/p&gt;
&lt;p&gt;Pero si los precios pay-as-you-go por token bajan lo suficiente, los usuarios empiezan a calcular: ¿por qué tengo que comprar un plan? Si el coste mensual real es solo unos pocos yuanes o una decena, un plan de 40 o 200 yuanes puede dejar de valer la pena.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-las-rebajas-desafían-el-modelo-de-suscripción&#34;&gt;Por qué las rebajas desafían el modelo de suscripción
&lt;/h2&gt;&lt;p&gt;Los planes de suscripción dependen de una premisa: los usuarios sienten que cada uso individual es caro, o no quieren calcular el coste de cada llamada. Cuando los tokens son caros, un plan da tranquilidad. Cuando los tokens son casi insignificantes, pay-as-you-go se vuelve más natural.&lt;/p&gt;
&lt;p&gt;La rebaja de DeepSeek V4 revela de hecho el coste subyacente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;las tareas de Agent pueden ser muy baratas;&lt;/li&gt;
&lt;li&gt;el contexto largo no es necesariamente demasiado caro de usar;&lt;/li&gt;
&lt;li&gt;los cache hits pueden reducir mucho el coste;&lt;/li&gt;
&lt;li&gt;los desarrolladores comunes no necesitan necesariamente una suscripción fija;&lt;/li&gt;
&lt;li&gt;el punto de entrada del modelo puede desplazarse de una &amp;ldquo;plataforma de planes&amp;rdquo; a una &amp;ldquo;API de bajo coste&amp;rdquo;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto incomodará a plataformas construidas alrededor de Coding Plans. Si los usuarios ven que las llamadas pay-as-you-go son más baratas y libres, tienen menos razones para quedar atados a la suscripción de una plataforma.&lt;/p&gt;
&lt;h2 id=&#34;cómo-elegir-entre-flash-y-pro&#34;&gt;Cómo elegir entre Flash y Pro
&lt;/h2&gt;&lt;p&gt;Una forma práctica de usar DeepSeek V4 es dividir el trabajo entre Flash y Pro.&lt;/p&gt;
&lt;p&gt;Flash es adecuado para tareas frecuentes, ligeras y repetibles:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;corregir bugs;&lt;/li&gt;
&lt;li&gt;escribir código frontend;&lt;/li&gt;
&lt;li&gt;escribir scripts;&lt;/li&gt;
&lt;li&gt;comprensión rutinaria de código;&lt;/li&gt;
&lt;li&gt;procesar información ordinaria en contexto largo;&lt;/li&gt;
&lt;li&gt;ejecutar gran cantidad de subtareas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Flash es barato, rápido y también admite contexto muy largo. Para agents de programación cotidianos, muchas tareas no necesitan Pro desde el inicio.&lt;/p&gt;
&lt;p&gt;Pro es mejor para juicio complejo y trabajo de respaldo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;planificación multi-ronda;&lt;/li&gt;
&lt;li&gt;flujos complejos de Agent;&lt;/li&gt;
&lt;li&gt;múltiples llamadas de función;&lt;/li&gt;
&lt;li&gt;verificación de hechos;&lt;/li&gt;
&lt;li&gt;investigación financiera;&lt;/li&gt;
&lt;li&gt;producción de contenido que requiere conocimiento y juicio más fuertes;&lt;/li&gt;
&lt;li&gt;cambios de código de alto riesgo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Una configuración razonable es: Flash maneja volumen, Pro maneja fallback. Empieza tareas ordinarias con Flash y cambia a Pro para planificación de largo alcance, juicio complejo, verificación de hechos o colaboración multi-herramienta. Así se controla el coste sin renunciar a calidad de modelo.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-deepseek-puede-poner-estos-precios&#34;&gt;Por qué DeepSeek puede poner estos precios
&lt;/h2&gt;&lt;p&gt;DeepSeek tiene una estructura de negocio distinta a muchas grandes plataformas. No tiene e-commerce, redes sociales, video corto, cloud computing, teléfonos, coches, suites de oficina, sistemas operativos, navegadores ni un gran ecosistema SaaS empresarial.&lt;/p&gt;
&lt;p&gt;Eso significa que no necesita encerrar a los usuarios en una plataforma completa. Puede simplemente vender capacidad de modelo de texto: usa modelos de texto baratos aquí y llama cualquier otra capacidad en otro lugar.&lt;/p&gt;
&lt;p&gt;Las grandes plataformas suelen pensar distinto. Si compras su Coding Plan o Token Plan, entras en su ecosistema de cloud, búsqueda, generación de imágenes, voz, base de datos y herramientas de desarrollo. El plan no solo vende el modelo; compite por el punto de entrada del usuario.&lt;/p&gt;
&lt;p&gt;El enfoque de DeepSeek es más directo: bajar el precio de los modelos de texto e intentar convertirse en el punto de entrada por defecto para Agents. Una vez ocupado ese punto de entrada, muchos desarrolladores y toolchains se adaptarán naturalmente alrededor.&lt;/p&gt;
&lt;h2 id=&#34;modelos-abiertos-y-el-punto-de-entrada-por-defecto&#34;&gt;Modelos abiertos y el punto de entrada por defecto
&lt;/h2&gt;&lt;p&gt;Si DeepSeek V4 mantiene una ruta de modelo abierto, proveedores cloud y plataformas de terceros pueden desplegarlo por su cuenta y ofrecer servicios. Para DeepSeek, eso es distribución y posible desviación a la vez.&lt;/p&gt;
&lt;p&gt;Aquí es donde importa una API oficial de bajo precio. Si el precio oficial ya es lo bastante bajo, otras plataformas tendrán difícil ofrecer una ventaja clara aunque puedan desplegar el modelo. Los usuarios tenderán a usar directamente el punto de entrada por defecto, barato y estable.&lt;/p&gt;
&lt;p&gt;Esto es especialmente cierto para herramientas de Agent. Las tareas de Agent dependen de contexto largo, caching, llamadas de herramientas y throughput estable. Una vez que un modelo es lo bastante barato en estos escenarios, tiene opción de convertirse en la opción por defecto.&lt;/p&gt;
&lt;h2 id=&#34;los-coding-plans-aún-no-son-inútiles&#34;&gt;Los Coding Plans aún no son inútiles
&lt;/h2&gt;&lt;p&gt;Esto no significa que los Coding Plans desaparezcan inmediatamente. Todavía encajan con algunos usuarios.&lt;/p&gt;
&lt;p&gt;Si algunos usuarios son realmente intensivos y agotan su cuota todos los días, una suscripción fija puede seguir siendo económica. Igual que un buffet: si nadie pudiera comer suficiente para amortizarlo, nadie lo compraría.&lt;/p&gt;
&lt;p&gt;El problema es que la mayoría de usuarios no son tan extremadamente frecuentes. Usuarios de baja frecuencia, desarrolladores ligeros y personas que ocasionalmente escriben scripts o modifican proyectos encajan mejor con pay-as-you-go. Después de que DeepSeek reduzca los costes por uso, el atractivo de los planes se debilita.&lt;/p&gt;
&lt;p&gt;El futuro probablemente será una elección por capas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;usuarios intensivos de alta frecuencia seguirán comprando Coding Plans;&lt;/li&gt;
&lt;li&gt;usuarios ordinarios se moverán a APIs de bajo coste;&lt;/li&gt;
&lt;li&gt;las herramientas de Agent elegirán automáticamente Flash / Pro según la tarea;&lt;/li&gt;
&lt;li&gt;los planes de plataforma tendrán que ofrecer más valor no relacionado con el modelo, como workflows, integración IDE, despliegue, gestión de equipos y auditoría de seguridad.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;DeepSeek V4 no creó su mayor impacto mediante benchmarks. Lo que realmente cambió las expectativas de la industria fue la reducción de precios posterior.&lt;/p&gt;
&lt;p&gt;Cuando los tokens de entrada y el precio con cache hit bajan mucho, cambia el coste de usar AI Agents. Contexto largo, análisis de proyectos de código y llamadas multi-ronda de herramientas que antes parecían caras pueden convertirse en costes cotidianos de unos centavos o unos pocos yuanes.&lt;/p&gt;
&lt;p&gt;Esto desafía directamente la lógica de negocio de Coding Plans y Token Plans. Si los usuarios pueden pagar por uso, combinar libremente modelos y herramientas, y mantener costes lo bastante bajos, quizá no quieran quedar atados a un plan de plataforma específico.&lt;/p&gt;
&lt;p&gt;Lo que DeepSeek V4 toca realmente esta vez no es solo el ranking de capacidades del modelo, sino la estructura de costes de los AI Agents y la batalla por el punto de entrada por defecto.&lt;/p&gt;
&lt;p&gt;Referencias:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://api-docs.deepseek.com/quick_start/pricing/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DeepSeek API Docs: Models &amp;amp; Pricing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://openai.com/api/pricing/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;OpenAI API Pricing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://platform.claude.com/docs/en/about-claude/pricing&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Anthropic Claude API Pricing&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>NVIDIA lanza Nemotron 3 Nano Omni: un modelo abierto de razonamiento omnimodal para agentes</title>
        <link>https://knightli.com/es/2026/05/01/nvidia-nemotron-3-nano-omni-multimodal-agents/</link>
        <pubDate>Fri, 01 May 2026 12:07:15 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/01/nvidia-nemotron-3-nano-omni-multimodal-agents/</guid>
        <description>&lt;p&gt;NVIDIA lanzó &lt;code&gt;Nemotron 3 Nano Omni&lt;/code&gt;, un modelo abierto de razonamiento omnimodal diseñado para flujos de AI Agents.
Su foco no es solo responder preguntas de texto, sino poner lenguaje, visión y audio en un mismo marco de razonamiento para trabajar con entradas más cercanas al trabajo real.&lt;/p&gt;
&lt;p&gt;Por posicionamiento, &lt;code&gt;Nemotron 3 Nano Omni&lt;/code&gt; parece un modelo base preparado para agentes. Puede entender información de pantallas, documentos, imágenes, voz y vídeo, y convertirla en resultados de razonamiento accionables.&lt;/p&gt;
&lt;h2 id=&#34;especificaciones-del-modelo&#34;&gt;Especificaciones del modelo
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Nemotron 3 Nano Omni&lt;/code&gt; usa arquitectura MoE. NVIDIA lista estos puntos:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Item&lt;/th&gt;
          &lt;th&gt;Information&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Model name&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;Nemotron 3 Nano Omni&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Architecture&lt;/td&gt;
          &lt;td&gt;MoE&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Parameter scale&lt;/td&gt;
          &lt;td&gt;30B total / 3B active&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Modalities&lt;/td&gt;
          &lt;td&gt;Text, image, audio, video&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Context length&lt;/td&gt;
          &lt;td&gt;256K tokens&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;License&lt;/td&gt;
          &lt;td&gt;Apache 2.0&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Main deployment direction&lt;/td&gt;
          &lt;td&gt;AI Agents, multimodal reasoning, enterprise agents&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Lo más llamativo es &lt;code&gt;30B-A3B&lt;/code&gt;: el modelo tiene unos 30B parámetros totales, pero activa alrededor de 3B por paso de inferencia. Es un equilibrio entre capacidad y coste.&lt;/p&gt;
&lt;p&gt;Pero &lt;code&gt;active params&lt;/code&gt; en MoE no significa que la VRAM pueda estimarse como si fuera solo un modelo de 3B. Hay que contar pesos de expertos, KV cache, módulos de visión y audio, contexto y sobrecarga del framework.&lt;/p&gt;
&lt;h2 id=&#34;no-resuelve-un-problema-de-una-sola-modalidad&#34;&gt;No resuelve un problema de una sola modalidad
&lt;/h2&gt;&lt;p&gt;Los LLM tradicionales procesan sobre todo texto. Los multimodales añaden imagen. &lt;code&gt;Nemotron 3 Nano Omni&lt;/code&gt; apunta a algo más amplio: entrada omnimodal, con texto, imágenes, audio y vídeo dentro de un razonamiento unificado.&lt;/p&gt;
&lt;p&gt;Esto importa para agentes porque las tareas reales suelen incluir:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;leer botones, tablas y ventanas en pantalla;&lt;/li&gt;
&lt;li&gt;analizar PDFs, capturas, gráficos y webs;&lt;/li&gt;
&lt;li&gt;escuchar instrucciones o reuniones;&lt;/li&gt;
&lt;li&gt;entender acciones y tiempos en vídeo;&lt;/li&gt;
&lt;li&gt;combinar esas señales para decidir el siguiente paso.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si un modelo solo maneja una modalidad, el agente necesita mucho pegamento entre modelos especializados. Un modelo omnimodal reduce ese coste de integración.&lt;/p&gt;
&lt;h2 id=&#34;pensado-para-operación-de-ordenador-e-inteligencia-documental&#34;&gt;Pensado para operación de ordenador e inteligencia documental
&lt;/h2&gt;&lt;p&gt;NVIDIA menciona explícitamente tareas de operación de ordenador. Estas requieren entender interfaces:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;qué controles aparecen en pantalla;&lt;/li&gt;
&lt;li&gt;en qué estado está la ventana actual;&lt;/li&gt;
&lt;li&gt;qué botón o menú debe usarse;&lt;/li&gt;
&lt;li&gt;qué significan tablas, diálogos y campos de entrada.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto es difícil de evitar cuando los agentes entran en despliegues reales. Para operar software de oficina, navegadores, backends empresariales o herramientas de desarrollo, el agente debe entender la interfaz, no solo leer documentación.&lt;/p&gt;
&lt;p&gt;La inteligencia documental tiene una lógica parecida. Los materiales empresariales mezclan texto, tablas, imágenes, páginas escaneadas y gráficos. Un modelo omnimodal puede poner todo eso en un mismo contexto para revisión de contratos, análisis de informes, facturas, QA de conocimiento y automatización de procesos.&lt;/p&gt;
&lt;h2 id=&#34;audio-y-vídeo-acercan-los-agentes-a-escenarios-reales&#34;&gt;Audio y vídeo acercan los agentes a escenarios reales
&lt;/h2&gt;&lt;p&gt;Las entradas de audio y vídeo amplían mucho los usos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;resúmenes de reuniones;&lt;/li&gt;
&lt;li&gt;análisis de llamadas de atención al cliente;&lt;/li&gt;
&lt;li&gt;comprensión de comandos de voz;&lt;/li&gt;
&lt;li&gt;organización de contenido educativo;&lt;/li&gt;
&lt;li&gt;análisis de vídeos instructivos;&lt;/li&gt;
&lt;li&gt;inspección de seguridad o industrial;&lt;/li&gt;
&lt;li&gt;revisión de grabaciones de pantalla;&lt;/li&gt;
&lt;li&gt;razonamiento temporal en tareas de varios pasos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si estas tareas dependen solo de transcripciones, se pierde información visual y temporal. Un modelo omnimodal puede combinar voz, fotogramas y texto para dar al agente una visión más completa.&lt;/p&gt;
&lt;h2 id=&#34;despliegue-y-ecosistema&#34;&gt;Despliegue y ecosistema
&lt;/h2&gt;&lt;p&gt;NVIDIA sitúa &lt;code&gt;Nemotron 3 Nano Omni&lt;/code&gt; dentro de un ecosistema abierto y usa licencia Apache 2.0. Para desarrolladores y empresas, esto reduce la barrera de experimentación, integración y desarrollo secundario.&lt;/p&gt;
&lt;p&gt;También está muy ligado al ecosistema de inferencia de NVIDIA. En despliegues empresariales aparecen preguntas como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;si corre de forma eficiente en GPUs NVIDIA;&lt;/li&gt;
&lt;li&gt;si soporta contexto largo y entrada multimodal;&lt;/li&gt;
&lt;li&gt;si conecta con frameworks de agentes existentes;&lt;/li&gt;
&lt;li&gt;si procesa documentos internos, audio/vídeo y capturas de UI;&lt;/li&gt;
&lt;li&gt;si puede desplegarse en entornos privados.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;NVIDIA afirma que el modelo puede alcanzar hasta 9x el throughput de modelos abiertos omnimodales comparables. El valor real dependerá del hardware, contexto, modalidades y framework, pero la dirección es clara: unir modelos abiertos multimodales con infraestructura de inferencia empresarial.&lt;/p&gt;
&lt;h2 id=&#34;casos-de-uso-adecuados&#34;&gt;Casos de uso adecuados
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Nemotron 3 Nano Omni&lt;/code&gt; encaja mejor en:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;agentes que entienden texto, imagen, audio y vídeo al mismo tiempo;&lt;/li&gt;
&lt;li&gt;inteligencia documental empresarial y QA de conocimiento;&lt;/li&gt;
&lt;li&gt;operación de ordenador basada en capturas o interfaces web;&lt;/li&gt;
&lt;li&gt;análisis multimodal de reuniones, atención al cliente y docencia;&lt;/li&gt;
&lt;li&gt;comprensión de vídeo, revisión de workflows y razonamiento temporal;&lt;/li&gt;
&lt;li&gt;equipos que necesitan licencia abierta y despliegue privado.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No es necesariamente lo mejor para todo usuario. Para chat local, completado de código o QA simple, un modelo de lenguaje de una sola modalidad puede ser más ligero y rápido.&lt;/p&gt;
&lt;h2 id=&#34;qué-significa-para-ai-agents&#34;&gt;Qué significa para AI Agents
&lt;/h2&gt;&lt;p&gt;Para que los AI Agents entren realmente en escenarios de trabajo, no basta con escribir texto. Necesitan entender interfaces, voz, documentos y cambios en vídeo, y convertirlo en la siguiente acción.&lt;/p&gt;
&lt;p&gt;Ahí es donde &lt;code&gt;Nemotron 3 Nano Omni&lt;/code&gt; importa. No es solo hacer el modelo más grande: es unificar muchos tipos de entrada que los agentes encuentran en tareas reales.&lt;/p&gt;
&lt;p&gt;Desde este ángulo, el lanzamiento de NVIDIA no es solo &amp;ldquo;otro modelo multimodal&amp;rdquo;. Es parte del esfuerzo por conectar modelos abiertos, inferencia GPU, agentes empresariales y despliegue privado. Lo siguiente a observar será su rendimiento en frameworks de agentes, workflows empresariales y despliegues locales.&lt;/p&gt;
&lt;p&gt;Referencias:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://blogs.nvidia.cn/blog/nemotron-3-nano-omni-multimodal-ai-agents/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;NVIDIA Technical Blog: NVIDIA Nemotron 3 Nano Omni&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Ejecutar Qwen3.6 en local: requisitos de VRAM para modelos cuantizados 27B y 35B-A3B</title>
        <link>https://knightli.com/es/2026/05/01/qwen3-6-local-vram-quantization-table/</link>
        <pubDate>Fri, 01 May 2026 12:02:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/01/qwen3-6-local-vram-quantization-table/</guid>
        <description>&lt;p&gt;Los modelos open-weight de Qwen3.6 más relevantes para despliegue local son:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Qwen3.6-27B&lt;/code&gt;: modelo denso de 27B.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Qwen3.6-35B-A3B&lt;/code&gt;: modelo MoE de 35B totales / 3B activos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;También existen nombres de producto o API como &lt;code&gt;Qwen3.6-Plus&lt;/code&gt; y &lt;code&gt;Qwen3.6-Max&lt;/code&gt;. Si un modelo no tiene pesos completos públicos y archivos cuantizados estables, no sirve para una tabla local de VRAM.&lt;/p&gt;
&lt;p&gt;Como en la tabla de Gemma 4 de &lt;code&gt;/05/10&lt;/code&gt;, hay que separar dos conceptos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tamaño del archivo GGUF&lt;/strong&gt;: cuánto ocupa el archivo de pesos.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Uso real de VRAM&lt;/strong&gt;: depende de pesos, KV cache, contexto, backend, módulos multimodales y batch.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Qwen3.6 tiene contexto por defecto muy largo. La model card indica soporte nativo de &lt;code&gt;262,144&lt;/code&gt; tokens y extensión a &lt;code&gt;1,010,000&lt;/code&gt; tokens. La columna de VRAM mínima solo aplica a contexto corto o medio.&lt;/p&gt;
&lt;h2 id=&#34;resumen-rápido&#34;&gt;Resumen rápido
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;VRAM&lt;/th&gt;
          &lt;th&gt;Buena opción&lt;/th&gt;
          &lt;th&gt;Evitar&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;8GB&lt;/td&gt;
          &lt;td&gt;Pruebas extremas de 2 bits para 27B / 35B-A3B&lt;/td&gt;
          &lt;td&gt;Q4 y superior&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;12GB&lt;/td&gt;
          &lt;td&gt;27B Q2/Q3, 35B-A3B Q2/Q3 con contexto corto&lt;/td&gt;
          &lt;td&gt;27B Q4 con contexto largo&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;16GB&lt;/td&gt;
          &lt;td&gt;27B Q3/Q4, 35B-A3B Q3/IQ4_XS&lt;/td&gt;
          &lt;td&gt;35B-A3B Q4 con contexto largo&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;24GB&lt;/td&gt;
          &lt;td&gt;27B Q4/Q5/Q6, 35B-A3B Q4&lt;/td&gt;
          &lt;td&gt;35B-A3B Q8, BF16&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;32GB&lt;/td&gt;
          &lt;td&gt;27B Q8, 35B-A3B Q5/Q6&lt;/td&gt;
          &lt;td&gt;BF16&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;48GB&lt;/td&gt;
          &lt;td&gt;35B-A3B Q8, 27B con más contexto&lt;/td&gt;
          &lt;td&gt;35B-A3B BF16&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;80GB+&lt;/td&gt;
          &lt;td&gt;27B / 35B-A3B BF16&lt;/td&gt;
          &lt;td&gt;No hace falta BF16 para chat local común&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Con una GPU de 24GB, los puntos principales son &lt;code&gt;Qwen3.6-27B Q4_K_M&lt;/code&gt;, &lt;code&gt;Qwen3.6-27B Q5_K_M&lt;/code&gt; y &lt;code&gt;Qwen3.6-35B-A3B UD-Q4_K_M&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;tamaños-oficiales-de-pesos&#34;&gt;Tamaños oficiales de pesos
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Model&lt;/th&gt;
          &lt;th&gt;Architecture&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Official BF16 Weight Size&lt;/th&gt;
          &lt;th&gt;Official Context&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Qwen3.6-27B&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;27B dense&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;55.56GB&lt;/td&gt;
          &lt;td&gt;Native 262K, extendable to 1,010K&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Qwen3.6-35B-A3B&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;35B total / 3B active MoE&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;71.90GB&lt;/td&gt;
          &lt;td&gt;Native 262K, extendable to 1,010K&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Aunque &lt;code&gt;35B-A3B&lt;/code&gt; active unos 3B parámetros por paso, todavía debe cargar los pesos MoE completos. No debe estimarse como un modelo pequeño de 3B.&lt;/p&gt;
&lt;h2 id=&#34;tabla-de-vram-de-qwen36-27b&#34;&gt;Tabla de VRAM de Qwen3.6-27B
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Qwen3.6-27B&lt;/code&gt; es un modelo denso. Su ventaja es comportamiento estable; su coste se parece al de un 27B tradicional.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Quantization&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;GGUF File Size&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Minimum VRAM&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Safer VRAM&lt;/th&gt;
          &lt;th&gt;Best For&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-IQ2_XXS&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;9.39GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;12GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16GB&lt;/td&gt;
          &lt;td&gt;Extreme low-VRAM tests&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-IQ2_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;10.85GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;12GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16GB&lt;/td&gt;
          &lt;td&gt;Low-VRAM usability&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-Q2_K_XL&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;11.85GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;14GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;18GB&lt;/td&gt;
          &lt;td&gt;Low-bit compromise&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-IQ3_XXS&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;11.99GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;14GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;18GB&lt;/td&gt;
          &lt;td&gt;VRAM-saving 3-bit&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q3_K_S&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;12.36GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20GB&lt;/td&gt;
          &lt;td&gt;3-bit entry point&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q3_K_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;13.59GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20GB&lt;/td&gt;
          &lt;td&gt;Common 3-bit compromise&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;IQ4_XS&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;15.44GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;24GB&lt;/td&gt;
          &lt;td&gt;Near-Q4, more VRAM efficient&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;IQ4_NL&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16.07GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;24GB&lt;/td&gt;
          &lt;td&gt;Quality/size balance&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q4_K_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16.82GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;24GB&lt;/td&gt;
          &lt;td&gt;Recommended 27B default&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q5_K_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;19.51GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;24GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;32GB&lt;/td&gt;
          &lt;td&gt;Higher-quality quantization&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q6_K&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;22.52GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;28GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;32GB&lt;/td&gt;
          &lt;td&gt;Quality first&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q8_0&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;28.60GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;32GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;40GB&lt;/td&gt;
          &lt;td&gt;Near-original precision&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;BF16&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;53.80GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;64GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;80GB&lt;/td&gt;
          &lt;td&gt;Research, evaluation, precision comparison&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Para chat y código local, &lt;code&gt;Q4_K_M&lt;/code&gt; es el punto de partida más fácil de recomendar. Una GPU de 24GB puede correrlo bastante bien, pero para contexto largo conviene reducir tamaño o contexto.&lt;/p&gt;
&lt;h2 id=&#34;tabla-de-vram-de-qwen36-35b-a3b&#34;&gt;Tabla de VRAM de Qwen3.6-35B-A3B
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Qwen3.6-35B-A3B&lt;/code&gt; es un MoE de 35B totales y unos 3B activos por paso. Equilibra velocidad y capacidad, especialmente para agentes, herramientas y código.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Quantization&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;GGUF File Size&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Minimum VRAM&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Safer VRAM&lt;/th&gt;
          &lt;th&gt;Best For&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-IQ2_XXS&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;10.76GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;12GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16GB&lt;/td&gt;
          &lt;td&gt;Extreme low-VRAM tests&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-IQ2_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;11.52GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;14GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16GB&lt;/td&gt;
          &lt;td&gt;Low-VRAM usability&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-Q2_K_XL&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;12.29GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;14GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;18GB&lt;/td&gt;
          &lt;td&gt;Low-bit compromise&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-IQ3_XXS&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;13.21GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20GB&lt;/td&gt;
          &lt;td&gt;VRAM-saving 3-bit&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-Q3_K_S&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;15.36GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;18GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;24GB&lt;/td&gt;
          &lt;td&gt;3-bit entry point&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-Q3_K_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16.60GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;24GB&lt;/td&gt;
          &lt;td&gt;Common 3-bit compromise&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-IQ4_XS&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;17.73GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;24GB&lt;/td&gt;
          &lt;td&gt;Quality/size balance&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-IQ4_NL&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;18.04GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;24GB&lt;/td&gt;
          &lt;td&gt;Near-Q4 recommended option&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-Q4_K_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;22.13GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;24GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;32GB&lt;/td&gt;
          &lt;td&gt;Recommended 35B-A3B default&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-Q5_K_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;26.46GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;32GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;40GB&lt;/td&gt;
          &lt;td&gt;Higher-quality quantization&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-Q6_K&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;29.31GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;32GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;48GB&lt;/td&gt;
          &lt;td&gt;Quality first&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q8_0&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;36.90GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;48GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;64GB&lt;/td&gt;
          &lt;td&gt;Near-original precision&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;BF16&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;69.37GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;80GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;96GB&lt;/td&gt;
          &lt;td&gt;Research, evaluation, precision comparison&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Con 24GB, &lt;code&gt;UD-Q4_K_M&lt;/code&gt; es una opción clave, pero no conviene fijar contexto muy alto. Para 128K+ contexto, versiones &lt;code&gt;UD-IQ4_XS&lt;/code&gt;, &lt;code&gt;UD-IQ4_NL&lt;/code&gt; o 3-bit son más realistas.&lt;/p&gt;
&lt;h2 id=&#34;27b-vs-35b-a3b&#34;&gt;27B vs 35B-A3B
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Necesidad&lt;/th&gt;
          &lt;th&gt;Mejor opción&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Comportamiento denso estable&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;Qwen3.6-27B&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Respuesta más rápida, agentes y herramientas&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;Qwen3.6-35B-A3B&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Uso diario en 24GB&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;35B-A3B UD-Q4_K_M&lt;/code&gt; o &lt;code&gt;27B Q4_K_M&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Pruebas en 16GB&lt;/td&gt;
          &lt;td&gt;Usar 2-bit/3-bit y evitar contexto largo&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Prioridad a contexto largo&lt;/td&gt;
          &lt;td&gt;Cuantización más baja y más margen para KV cache&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Calidad con 32GB+&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;27B Q5/Q6&lt;/code&gt; o &lt;code&gt;35B-A3B Q5/Q6&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Si escribes código, usas agentes o herramientas, &lt;code&gt;35B-A3B&lt;/code&gt; merece probarse primero. Si quieres estabilidad de un modelo denso, &lt;code&gt;27B&lt;/code&gt; es más directo.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-el-contexto-largo-consume-tanta-vram&#34;&gt;Por qué el contexto largo consume tanta VRAM
&lt;/h2&gt;&lt;p&gt;La model card de Qwen3.6 recomienda contexto largo para tareas complejas, e incluso señala que 128K+ puede ayudar al razonamiento. Pero en local, contexto largo significa una &lt;code&gt;KV cache&lt;/code&gt; mucho más grande.&lt;/p&gt;
&lt;p&gt;El uso real depende de:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;KV cache&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;si se usa entrada de visión;&lt;/li&gt;
&lt;li&gt;si se usa &lt;code&gt;--language-model-only&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;batch y concurrencia;&lt;/li&gt;
&lt;li&gt;cuantización de KV cache;&lt;/li&gt;
&lt;li&gt;diferencias entre llama.cpp, vLLM, SGLang, KTransformers y LM Studio.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No mires solo el tamaño GGUF. Si el archivo ya está cerca del límite de VRAM, puede cargar pero fallar al generar salidas largas.&lt;/p&gt;
&lt;h2 id=&#34;cómo-elegir&#34;&gt;Cómo elegir
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;12GB: &lt;code&gt;27B UD-IQ2_M&lt;/code&gt; o &lt;code&gt;35B-A3B UD-IQ2_M&lt;/code&gt;, con contexto corto.&lt;/li&gt;
&lt;li&gt;16GB: &lt;code&gt;27B Q3_K_M&lt;/code&gt; o &lt;code&gt;35B-A3B UD-IQ3_XXS&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;24GB: &lt;code&gt;27B Q4_K_M&lt;/code&gt;, &lt;code&gt;35B-A3B UD-IQ4_NL&lt;/code&gt; o &lt;code&gt;35B-A3B UD-Q4_K_M&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;32GB: &lt;code&gt;27B Q5/Q6&lt;/code&gt; o &lt;code&gt;35B-A3B Q5/Q6&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;48GB+: &lt;code&gt;Q8_0&lt;/code&gt; o más margen para contexto largo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La mayoría no necesita BF16. El objetivo es equilibrar VRAM, contexto, velocidad y calidad.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/Qwen/Qwen3.6-27B&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Qwen/Qwen3.6-27B - Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/Qwen/Qwen3.6-35B-A3B&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Qwen/Qwen3.6-35B-A3B - Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/Qwen/Qwen3.6-27B-FP8&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Qwen/Qwen3.6-27B-FP8 - Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/Qwen/Qwen3.6-35B-A3B-FP8&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Qwen/Qwen3.6-35B-A3B-FP8 - Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/unsloth/Qwen3.6-27B-GGUF&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;unsloth/Qwen3.6-27B-GGUF - Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/unsloth/Qwen3.6-35B-A3B-GGUF&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;unsloth/Qwen3.6-35B-A3B-GGUF - Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Ejecutar DeepSeek V4 en local: estimaciones de VRAM para versiones Pro, Flash y Base</title>
        <link>https://knightli.com/es/2026/05/01/deepseek-v4-local-vram-quantization-table/</link>
        <pubDate>Fri, 01 May 2026 11:55:25 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/01/deepseek-v4-local-vram-quantization-table/</guid>
        <description>&lt;p&gt;DeepSeek V4 y Gemma 4 no están en la misma categoría para despliegue local.
Con Gemma 4 todavía tiene sentido hablar de ejecutar modelos 26B o 31B en GPUs de 24GB o 32GB. DeepSeek V4 es un modelo MoE enorme, y el despliegue local completo entra rápidamente en territorio de estaciones multi-GPU o servidores.&lt;/p&gt;
&lt;p&gt;El lanzamiento oficial DeepSeek V4 Preview incluye principalmente dos modelos de inferencia:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;DeepSeek-V4-Pro&lt;/code&gt;: &lt;code&gt;1.6T total / 49B active params&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DeepSeek-V4-Flash&lt;/code&gt;: &lt;code&gt;284B total / 13B active params&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La colección oficial de Hugging Face también incluye dos modelos Base:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;DeepSeek-V4-Pro-Base&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DeepSeek-V4-Flash-Base&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Este artículo solo estima VRAM cuando se cargan los pesos completos. En modelos MoE, &lt;code&gt;active params&lt;/code&gt; afecta sobre todo al cómputo por token. No significa que solo esos parámetros deban cargarse.&lt;/p&gt;
&lt;h2 id=&#34;resumen-rápido&#34;&gt;Resumen rápido
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Escala de VRAM&lt;/th&gt;
          &lt;th&gt;Realista&lt;/th&gt;
          &lt;th&gt;No esperes&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;24GB&lt;/td&gt;
          &lt;td&gt;No puede cargar DeepSeek V4 completo; usa modelos destilados o API&lt;/td&gt;
          &lt;td&gt;V4-Flash / V4-Pro local completo&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;48GB&lt;/td&gt;
          &lt;td&gt;Aún no es adecuado para carga completa&lt;/td&gt;
          &lt;td&gt;V4-Flash Q4 estable&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;80GB&lt;/td&gt;
          &lt;td&gt;Pruebas V4-Flash Q2/Q3 u offload pesado&lt;/td&gt;
          &lt;td&gt;V4-Pro&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;128GB&lt;/td&gt;
          &lt;td&gt;V4-Flash Q4 empieza a ser más realista&lt;/td&gt;
          &lt;td&gt;V4-Pro Q4&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;192GB&lt;/td&gt;
          &lt;td&gt;V4-Flash FP8/Q6 más cómodo; Pro Q2 experimental&lt;/td&gt;
          &lt;td&gt;V4-Pro Q4&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;256GB&lt;/td&gt;
          &lt;td&gt;V4-Flash FP8 cómodo; Pro Q2/Q3 puede probarse&lt;/td&gt;
          &lt;td&gt;V4-Pro Q5+&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;512GB&lt;/td&gt;
          &lt;td&gt;V4-Pro Q4 empieza a discutirse&lt;/td&gt;
          &lt;td&gt;V4-Pro FP8&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;1TB+&lt;/td&gt;
          &lt;td&gt;V4-Pro FP8 y Pro-Base de bajo bit&lt;/td&gt;
          &lt;td&gt;Despliegue barato en una máquina&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;2TB+&lt;/td&gt;
          &lt;td&gt;Clase Pro-Base FP8&lt;/td&gt;
          &lt;td&gt;Estación común&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Si tu objetivo es correr un modelo en un PC personal, DeepSeek V4 no es el objetivo adecuado. Es más realista usar API oficial, esperar cuantizaciones comunitarias maduras, usar modelos destilados o elegir modelos locales de 7B a 70B.&lt;/p&gt;
&lt;h2 id=&#34;tamaños-oficiales-de-pesos&#34;&gt;Tamaños oficiales de pesos
&lt;/h2&gt;&lt;p&gt;Las cifras vienen de &lt;code&gt;model.safetensors.index.json&lt;/code&gt; en los repositorios oficiales de Hugging Face.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Model&lt;/th&gt;
          &lt;th&gt;Parameter Scale&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Official Weight Size&lt;/th&gt;
          &lt;th&gt;Notes&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;DeepSeek-V4-Flash&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;284B total / 13B active&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;159.61GB&lt;/td&gt;
          &lt;td&gt;Inference model, smallest in this group&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;DeepSeek-V4-Pro&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;1.6T total / 49B active&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;864.70GB&lt;/td&gt;
          &lt;td&gt;Inference model, stronger but enormous&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;DeepSeek-V4-Flash-Base&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;284B total&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;294.67GB&lt;/td&gt;
          &lt;td&gt;Base model, closer to full FP8 weight size&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;DeepSeek-V4-Pro-Base&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;1.6T total&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1606.03GB&lt;/td&gt;
          &lt;td&gt;Base model, about 1.6TB&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Incluso el &lt;code&gt;V4-Flash&lt;/code&gt; más pequeño se acerca a 160GB de pesos oficiales. No debe tratarse como un 13B solo por tener &lt;code&gt;13B active params&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;estimación-de-vram-para-deepseek-v4-flash&#34;&gt;Estimación de VRAM para DeepSeek V4 Flash
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;V4-Flash&lt;/code&gt; es la variante más abordable para experimentos locales, pero sigue sin ser un modelo de una sola GPU de consumo.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Version / Quantization&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Estimated Weight Size&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Minimum VRAM&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Safer VRAM&lt;/th&gt;
          &lt;th&gt;Best For&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;FP8 / official weights&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;159.61GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;192GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;256GB&lt;/td&gt;
          &lt;td&gt;Multi-GPU servers, inference service&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q6&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;120GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;160GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;192GB&lt;/td&gt;
          &lt;td&gt;Quality-first quantization tests&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q5&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;100GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;128GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;160GB&lt;/td&gt;
          &lt;td&gt;Quality/size balance&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q4&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;80GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;96GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;128GB&lt;/td&gt;
          &lt;td&gt;More realistic starting point for Flash&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q3&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;60GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;80GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;96GB&lt;/td&gt;
          &lt;td&gt;Large-VRAM single GPU or multi-GPU tests&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q2&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;40GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;48GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;64GB&lt;/td&gt;
          &lt;td&gt;Extreme low-bit experiments with clear quality risk&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Si aparecen builds maduros de &lt;code&gt;V4-Flash Q4&lt;/code&gt;, probablemente seguirán sin ser modelos para 24GB. El punto de partida realista es 96GB a 128GB de VRAM total, o setups con offload que sacrifican velocidad por capacidad.&lt;/p&gt;
&lt;h2 id=&#34;estimación-de-vram-para-deepseek-v4-pro&#34;&gt;Estimación de VRAM para DeepSeek V4 Pro
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;V4-Pro&lt;/code&gt; es el modelo de inferencia insignia, con unos 864.70GB de pesos oficiales.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Version / Quantization&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Estimated Weight Size&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Minimum VRAM&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Safer VRAM&lt;/th&gt;
          &lt;th&gt;Best For&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;FP8 / official weights&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;864.70GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1TB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1.2TB+&lt;/td&gt;
          &lt;td&gt;Multi-node or multi-GPU inference service&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q6&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;648GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;768GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1TB&lt;/td&gt;
          &lt;td&gt;High-quality quantized service&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q5&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;540GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;640GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;768GB&lt;/td&gt;
          &lt;td&gt;Quality/cost balance&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q4&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;432GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;512GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;640GB&lt;/td&gt;
          &lt;td&gt;Lowest practical quality line for Pro&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q3&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;324GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;384GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;512GB&lt;/td&gt;
          &lt;td&gt;Low-bit experiments&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q2&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;216GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;256GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;320GB&lt;/td&gt;
          &lt;td&gt;Extreme experiments with high risk&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Para usuarios individuales, &lt;code&gt;V4-Pro&lt;/code&gt; se consume mejor por API. Para despliegue local completo, trátalo como modelo de servidor multi-GPU.&lt;/p&gt;
&lt;h2 id=&#34;estimación-de-vram-para-flash-base-y-pro-base&#34;&gt;Estimación de VRAM para Flash-Base y Pro-Base
&lt;/h2&gt;&lt;p&gt;Los modelos Base suelen ser para investigación, fine-tuning o entrenamiento continuo, no para chat común.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;V4-Flash-Base&lt;/code&gt; pesa unos 294.67GB:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Version / Quantization&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Estimated Weight Size&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Minimum VRAM&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Safer VRAM&lt;/th&gt;
          &lt;th&gt;Best For&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;FP8 / official weights&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;294.67GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;384GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;512GB&lt;/td&gt;
          &lt;td&gt;Research, preprocessing, evaluation&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q6&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;221GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;256GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;320GB&lt;/td&gt;
          &lt;td&gt;High-quality quantization research&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q5&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;184GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;224GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;256GB&lt;/td&gt;
          &lt;td&gt;Quality/size balance&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q4&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;147GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;192GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;224GB&lt;/td&gt;
          &lt;td&gt;Lower-cost Base experiments&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q3&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;111GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;128GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;160GB&lt;/td&gt;
          &lt;td&gt;Low-bit experiments&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q2&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;74GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;96GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;128GB&lt;/td&gt;
          &lt;td&gt;Extreme experiments&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;code&gt;V4-Pro-Base&lt;/code&gt; pesa unos 1606.03GB:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Version / Quantization&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Estimated Weight Size&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Minimum VRAM&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Safer VRAM&lt;/th&gt;
          &lt;th&gt;Best For&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;FP8 / official weights&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1606.03GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2TB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2.4TB+&lt;/td&gt;
          &lt;td&gt;Large-scale research clusters&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q6&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1205GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1.5TB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2TB&lt;/td&gt;
          &lt;td&gt;High-quality quantization research&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q5&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1004GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1.2TB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1.5TB&lt;/td&gt;
          &lt;td&gt;Research and evaluation&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q4&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;803GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1TB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1.2TB&lt;/td&gt;
          &lt;td&gt;Low-bit research&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q3&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;602GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;768GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1TB&lt;/td&gt;
          &lt;td&gt;Extreme low-bit research&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q2&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;402GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;512GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;640GB&lt;/td&gt;
          &lt;td&gt;Extreme experiments&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Este tipo de modelo no debe evaluarse con la pregunta &amp;ldquo;¿lo corre una GPU doméstica?&amp;rdquo;. Incluso Q4 queda fuera de la comodidad de la mayoría de estaciones.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-active-params-no-basta&#34;&gt;Por qué active params no basta
&lt;/h2&gt;&lt;p&gt;MoE activa solo parte de los expertos por token, por eso el cómputo puede ser mucho menor que el total de parámetros. Pero eso no significa que la VRAM solo tenga que cargar los parámetros activos.&lt;/p&gt;
&lt;p&gt;El despliegue local completo depende de:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;si todos los expertos deben residir en GPU;&lt;/li&gt;
&lt;li&gt;si hay carga bajo demanda de expertos;&lt;/li&gt;
&lt;li&gt;coste de transferencia CPU-GPU;&lt;/li&gt;
&lt;li&gt;latencia de offload a NVMe;&lt;/li&gt;
&lt;li&gt;crecimiento de KV cache con contexto largo;&lt;/li&gt;
&lt;li&gt;sobrecarga de runtime en contexto muy largo;&lt;/li&gt;
&lt;li&gt;coste de comunicación multi-GPU o multinodo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;V4-Pro&lt;/code&gt; con &lt;code&gt;49B active&lt;/code&gt; no se despliega como un 49B. &lt;code&gt;V4-Flash&lt;/code&gt; con &lt;code&gt;13B active&lt;/code&gt; tampoco debe tratarse como un 13B pequeño.&lt;/p&gt;
&lt;h2 id=&#34;cómo-elegir&#34;&gt;Cómo elegir
&lt;/h2&gt;&lt;p&gt;Si eres usuario individual:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;no intentes alojar DeepSeek V4 completo;&lt;/li&gt;
&lt;li&gt;usa la API oficial cuando necesites sus capacidades;&lt;/li&gt;
&lt;li&gt;para despliegue privado, revisa primero tu infraestructura multi-GPU;&lt;/li&gt;
&lt;li&gt;con 24GB a 48GB, los modelos cuantizados 7B, 14B, 32B o 70B son más prácticos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Con 128GB a 256GB de VRAM total, observa implementaciones estables de &lt;code&gt;V4-Flash Q4/Q5&lt;/code&gt;. Con 512GB+, &lt;code&gt;V4-Pro Q4&lt;/code&gt; empieza a ser un objetivo de validación de ingeniería.&lt;/p&gt;
&lt;p&gt;La pregunta clave no es &amp;ldquo;qué archivo cuantizado descargo&amp;rdquo;, sino &amp;ldquo;si tengo capacidad de inferencia de sistema para este modelo&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://api-docs.deepseek.com/news/news260424&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DeepSeek V4 Preview Release - DeepSeek API Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/collections/deepseek-ai/deepseek-v4&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DeepSeek-V4 collection - Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/deepseek-ai/DeepSeek-V4-Pro&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;deepseek-ai/DeepSeek-V4-Pro - Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/deepseek-ai/DeepSeek-V4-Flash&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;deepseek-ai/DeepSeek-V4-Flash - Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/deepseek-ai/DeepSeek-V4-Pro-Base&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;deepseek-ai/DeepSeek-V4-Pro-Base - Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/deepseek-ai/DeepSeek-V4-Flash-Base&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;deepseek-ai/DeepSeek-V4-Flash-Base - Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Ejecutar Gemma 4 en local: requisitos de VRAM para modelos cuantizados E2B, E4B, 26B y 31B</title>
        <link>https://knightli.com/es/2026/05/01/gemma-4-local-vram-quantization-table/</link>
        <pubDate>Fri, 01 May 2026 11:42:34 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/01/gemma-4-local-vram-quantization-table/</guid>
        <description>&lt;p&gt;Gemma 4 tiene cuatro tamaños principales para despliegue local: &lt;code&gt;E2B&lt;/code&gt;, &lt;code&gt;E4B&lt;/code&gt;, &lt;code&gt;26B A4B&lt;/code&gt; y &lt;code&gt;31B&lt;/code&gt;.
&lt;code&gt;E2B&lt;/code&gt; y &lt;code&gt;E4B&lt;/code&gt; apuntan a dispositivos ligeros y edge, &lt;code&gt;26B A4B&lt;/code&gt; usa arquitectura MoE, y &lt;code&gt;31B&lt;/code&gt; es el modelo denso más grande.&lt;/p&gt;
&lt;p&gt;El error más común al hacer inferencia local es confundir dos números:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tamaño del archivo GGUF&lt;/strong&gt;: cuánto ocupa el archivo de pesos.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Uso real de VRAM&lt;/strong&gt;: depende de pesos, KV cache, sobrecarga del runtime, longitud de contexto y módulos multimodales.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Las tablas siguientes estiman VRAM a partir del tamaño GGUF. La suposición base es inferencia local de texto con &lt;code&gt;llama.cpp&lt;/code&gt;, LM Studio, Ollama o runtimes similares, usando contexto corto o medio. Para contexto largo, entrada de imagen/audio o concurrencia, deja más margen.&lt;/p&gt;
&lt;h2 id=&#34;resumen-rápido&#34;&gt;Resumen rápido
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;VRAM&lt;/th&gt;
          &lt;th&gt;Buena opción&lt;/th&gt;
          &lt;th&gt;Evitar&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;4GB&lt;/td&gt;
          &lt;td&gt;Cuantizaciones E2B de bajo bit&lt;/td&gt;
          &lt;td&gt;E4B y superiores&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;6GB&lt;/td&gt;
          &lt;td&gt;E2B Q4/Q5, E4B de bajo bit&lt;/td&gt;
          &lt;td&gt;26B, 31B&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;8GB&lt;/td&gt;
          &lt;td&gt;E2B Q8, E4B Q4/Q5&lt;/td&gt;
          &lt;td&gt;26B Q4, 31B Q4&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;12GB&lt;/td&gt;
          &lt;td&gt;E4B Q8, pruebas 26B/31B de 2-3 bits&lt;/td&gt;
          &lt;td&gt;26B Q4 con contexto largo&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;16GB&lt;/td&gt;
          &lt;td&gt;26B y 31B de bajo bit&lt;/td&gt;
          &lt;td&gt;31B Q4 con contexto largo&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;24GB&lt;/td&gt;
          &lt;td&gt;26B Q4/Q5, 31B Q4&lt;/td&gt;
          &lt;td&gt;31B Q8, BF16&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;32GB&lt;/td&gt;
          &lt;td&gt;26B Q6/Q8, 31B Q5/Q6&lt;/td&gt;
          &lt;td&gt;BF16&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;48GB&lt;/td&gt;
          &lt;td&gt;31B Q8 más cómodo&lt;/td&gt;
          &lt;td&gt;31B BF16&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;80GB+&lt;/td&gt;
          &lt;td&gt;26B/31B BF16&lt;/td&gt;
          &lt;td&gt;GPU de consumo única&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Para algo usable en local, empieza con &lt;code&gt;E4B Q4_K_M&lt;/code&gt; o &lt;code&gt;E2B Q4_K_M&lt;/code&gt;. Con 24GB de VRAM, &lt;code&gt;26B A4B Q4_K_M&lt;/code&gt; y &lt;code&gt;31B Q4_K_M&lt;/code&gt; empiezan a ser opciones realistas.&lt;/p&gt;
&lt;h2 id=&#34;tabla-de-vram-de-gemma-4-e2b&#34;&gt;Tabla de VRAM de Gemma 4 E2B
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;E2B&lt;/code&gt; es la versión más ligera, adecuada para portátiles, mini PC, móviles y pruebas con poca VRAM.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Quantization&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;GGUF File Size&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Minimum VRAM&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Safer VRAM&lt;/th&gt;
          &lt;th&gt;Best For&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-IQ2_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2.29GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6GB&lt;/td&gt;
          &lt;td&gt;Extreme low-VRAM tests&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-Q2_K_XL&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2.40GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6GB&lt;/td&gt;
          &lt;td&gt;Low-VRAM usability&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q3_K_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2.54GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6GB&lt;/td&gt;
          &lt;td&gt;Lightweight chat and summaries&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;IQ4_XS&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2.98GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8GB&lt;/td&gt;
          &lt;td&gt;Balance of quality and size&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q4_K_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3.11GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8GB&lt;/td&gt;
          &lt;td&gt;Recommended E2B default&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q5_K_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3.36GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8GB&lt;/td&gt;
          &lt;td&gt;Slightly steadier than Q4&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q6_K&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4.50GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;10GB&lt;/td&gt;
          &lt;td&gt;Higher-quality small model&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q8_0&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;5.05GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;10GB&lt;/td&gt;
          &lt;td&gt;Near-original precision&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;BF16&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;9.31GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;12GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16GB&lt;/td&gt;
          &lt;td&gt;Debugging, comparison, research&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Para uso diario, &lt;code&gt;E2B Q4_K_M&lt;/code&gt; suele bastar. Con solo 4GB de VRAM, variantes de 2 o 3 bits pueden arrancar, pero la calidad será menos estable.&lt;/p&gt;
&lt;h2 id=&#34;tabla-de-vram-de-gemma-4-e4b&#34;&gt;Tabla de VRAM de Gemma 4 E4B
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;E4B&lt;/code&gt; es el modelo ligero más práctico. Sirve mejor para escritura diaria, resúmenes, ayuda ligera de código y asistentes locales.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Quantization&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;GGUF File Size&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Minimum VRAM&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Safer VRAM&lt;/th&gt;
          &lt;th&gt;Best For&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-IQ2_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3.53GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8GB&lt;/td&gt;
          &lt;td&gt;Low-VRAM tests&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-Q2_K_XL&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3.74GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8GB&lt;/td&gt;
          &lt;td&gt;Low-VRAM usability&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q3_K_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4.06GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;10GB&lt;/td&gt;
          &lt;td&gt;Lightweight local assistant&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;IQ4_XS&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4.72GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;12GB&lt;/td&gt;
          &lt;td&gt;Balance of quality and speed&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q4_K_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4.98GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;12GB&lt;/td&gt;
          &lt;td&gt;Recommended E4B default&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q5_K_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;5.48GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;12GB&lt;/td&gt;
          &lt;td&gt;Steadier everyday use&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q6_K&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;7.07GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;10GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16GB&lt;/td&gt;
          &lt;td&gt;Quality first&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q8_0&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8.19GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;12GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16GB&lt;/td&gt;
          &lt;td&gt;Near-original precision&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;BF16&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;15.05GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;24GB&lt;/td&gt;
          &lt;td&gt;Research, evaluation, precision comparison&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Con 8GB de VRAM, &lt;code&gt;E4B Q4_K_M&lt;/code&gt; es un punto de partida realista. Con 12GB o 16GB, &lt;code&gt;E4B Q8_0&lt;/code&gt; también merece consideración.&lt;/p&gt;
&lt;h2 id=&#34;tabla-de-vram-de-gemma-4-26b-a4b&#34;&gt;Tabla de VRAM de Gemma 4 26B A4B
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;26B A4B&lt;/code&gt; es la versión MoE. Tiene más parámetros totales, pero activa solo parte de los expertos por paso de inferencia. Es más adecuada para preguntas complejas, código, uso de herramientas y agentes.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Quantization&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;GGUF File Size&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Minimum VRAM&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Safer VRAM&lt;/th&gt;
          &lt;th&gt;Best For&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-IQ2_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;9.97GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;14GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16GB&lt;/td&gt;
          &lt;td&gt;Extreme 16GB GPU tests&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-Q2_K_XL&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;10.55GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;14GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16GB&lt;/td&gt;
          &lt;td&gt;Running 26B with low VRAM&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-Q3_K_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;12.53GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20GB&lt;/td&gt;
          &lt;td&gt;Better quality while still VRAM-conscious&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-IQ4_XS&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;13.42GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;24GB&lt;/td&gt;
          &lt;td&gt;Balance of quality and size&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-Q4_K_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16.87GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;24GB&lt;/td&gt;
          &lt;td&gt;Recommended 26B default&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-Q5_K_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;21.15GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;24GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;32GB&lt;/td&gt;
          &lt;td&gt;Higher-quality quantization&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-Q6_K&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;23.17GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;28GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;32GB&lt;/td&gt;
          &lt;td&gt;Quality first&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q8_0&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;26.86GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;32GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;40GB&lt;/td&gt;
          &lt;td&gt;Near-original precision&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;BF16&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;50.51GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;64GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;80GB&lt;/td&gt;
          &lt;td&gt;Not realistic for most single consumer GPUs&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;24GB de VRAM es la línea cómoda para 26B A4B. Una GPU de 16GB puede probar versiones de bajo bit, pero conviene mantener contexto y concurrencia moderados.&lt;/p&gt;
&lt;h2 id=&#34;tabla-de-vram-de-gemma-4-31b&#34;&gt;Tabla de VRAM de Gemma 4 31B
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;31B&lt;/code&gt; es el modelo denso más grande. Tiene más capacidad general, pero la presión de VRAM es directa.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Quantization&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;GGUF File Size&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Minimum VRAM&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Safer VRAM&lt;/th&gt;
          &lt;th&gt;Best For&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-IQ2_XXS&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8.53GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;12GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16GB&lt;/td&gt;
          &lt;td&gt;Extreme low-VRAM tests with clear quality loss&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-IQ2_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;10.75GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;14GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;18GB&lt;/td&gt;
          &lt;td&gt;Low-VRAM tests&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;UD-Q2_K_XL&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;11.77GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20GB&lt;/td&gt;
          &lt;td&gt;16GB GPU experiments&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q3_K_S&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;13.21GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;24GB&lt;/td&gt;
          &lt;td&gt;More VRAM-efficient 3-bit&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q3_K_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;14.74GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;24GB&lt;/td&gt;
          &lt;td&gt;Common 3-bit compromise&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;IQ4_XS&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;16.37GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;20GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;24GB&lt;/td&gt;
          &lt;td&gt;Near-Q4 compromise&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q4_K_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;18.32GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;24GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;32GB&lt;/td&gt;
          &lt;td&gt;Recommended 31B default&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q5_K_M&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;21.66GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;28GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;32GB&lt;/td&gt;
          &lt;td&gt;Higher-quality quantization&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q6_K&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;25.20GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;32GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;40GB&lt;/td&gt;
          &lt;td&gt;Quality first&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Q8_0&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;32.64GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;40GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;48GB&lt;/td&gt;
          &lt;td&gt;Near-original precision&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;BF16&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;61.41GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;80GB&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;96GB&lt;/td&gt;
          &lt;td&gt;Server or large-VRAM workstation&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Se puede probar 31B de bajo bit en 16GB, pero para uso diario 24GB es mejor. &lt;code&gt;Q4_K_M&lt;/code&gt; es el equilibrio; &lt;code&gt;Q5_K_M&lt;/code&gt; y superiores tienen más sentido con 32GB+.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-el-uso-real-supera-el-tamaño-del-archivo&#34;&gt;Por qué el uso real supera el tamaño del archivo
&lt;/h2&gt;&lt;p&gt;El tamaño GGUF solo representa los pesos. En ejecución también cuentan:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;KV cache&lt;/code&gt;: más contexto implica más memoria.&lt;/li&gt;
&lt;li&gt;Batch y concurrencia: más tokens o usuarios consumen más VRAM.&lt;/li&gt;
&lt;li&gt;Componentes multimodales: imagen, audio o vídeo añaden módulos como &lt;code&gt;mmproj&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Backend: CUDA, Metal, ROCm y split CPU/GPU no consumen igual.&lt;/li&gt;
&lt;li&gt;Cuantización de KV cache: &lt;code&gt;q8_0&lt;/code&gt;, &lt;code&gt;q4_0&lt;/code&gt; y modos similares ahorran VRAM, con posibles efectos en detalle.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La columna de VRAM mínima debe leerse como umbral para arrancar e inferir con contexto corto. Para 32K, 64K, 128K o 256K, los requisitos suben bastante.&lt;/p&gt;
&lt;h2 id=&#34;cómo-elegir&#34;&gt;Cómo elegir
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;4GB a 6GB: &lt;code&gt;E2B Q3_K_M&lt;/code&gt; o &lt;code&gt;E2B Q4_K_M&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;8GB: &lt;code&gt;E4B Q4_K_M&lt;/code&gt;; &lt;code&gt;E2B Q8_0&lt;/code&gt; también va bien.&lt;/li&gt;
&lt;li&gt;12GB: &lt;code&gt;E4B Q8_0&lt;/code&gt;, o pruebas de bajo bit de 26B/31B.&lt;/li&gt;
&lt;li&gt;16GB: &lt;code&gt;26B A4B UD-Q3_K_M&lt;/code&gt; o &lt;code&gt;31B Q3_K_S&lt;/code&gt;, sin esperar contexto largo cómodo.&lt;/li&gt;
&lt;li&gt;24GB: &lt;code&gt;26B A4B UD-Q4_K_M&lt;/code&gt; y &lt;code&gt;31B Q4_K_M&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;32GB+: considerar &lt;code&gt;Q5_K_M&lt;/code&gt;, &lt;code&gt;Q6_K&lt;/code&gt; o más contexto.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La mayoría de usuarios no necesita BF16. El despliegue local consiste en equilibrar VRAM, velocidad, contexto y calidad, no en elegir el archivo más grande.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/google/gemma-4-E2B-it&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;google/gemma-4-E2B-it - Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/google/gemma-4-E4B-it&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;google/gemma-4-E4B-it - Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/ggml-org/gemma-4-26B-A4B-it-GGUF&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ggml-org/gemma-4-26B-A4B-it-GGUF - Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/unsloth/gemma-4-E2B-it-GGUF&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;unsloth/gemma-4-E2B-it-GGUF - Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/unsloth/gemma-4-E4B-it-GGUF&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;unsloth/gemma-4-E4B-it-GGUF - Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/unsloth/gemma-4-26B-A4B-it-GGUF&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;unsloth/gemma-4-26B-A4B-it-GGUF - Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/unsloth/gemma-4-31B-it-GGUF&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;unsloth/gemma-4-31B-it-GGUF - Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>OpenAI presenta Advanced Account Security: una capa más fuerte para proteger cuentas de ChatGPT y Codex</title>
        <link>https://knightli.com/es/2026/05/01/openai-advanced-account-security/</link>
        <pubDate>Fri, 01 May 2026 06:15:29 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/01/openai-advanced-account-security/</guid>
        <description>&lt;p&gt;OpenAI presentó &lt;code&gt;Advanced Account Security&lt;/code&gt; el 30 de abril de 2026 como una opción de alta seguridad para cuentas de ChatGPT.&lt;/p&gt;
&lt;p&gt;Está pensada sobre todo para dos grupos: personas con mayor riesgo de ataques dirigidos, como periodistas, cargos electos, disidentes políticos o investigadores; y usuarios especialmente sensibles a la seguridad que quieren más protección para sus cuentas de ChatGPT y Codex.&lt;/p&gt;
&lt;p&gt;Una vez activada, la función protege no solo ChatGPT, sino también Codex cuando se accede con la misma cuenta.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-las-cuentas-de-chatgpt-necesitan-más-seguridad&#34;&gt;Por qué las cuentas de ChatGPT necesitan más seguridad
&lt;/h2&gt;&lt;p&gt;Cada vez más personas usan ChatGPT para trabajo privado o de alto impacto. Una cuenta puede contener:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;preguntas personales y conversaciones largas;&lt;/li&gt;
&lt;li&gt;documentos de trabajo y contexto de proyectos;&lt;/li&gt;
&lt;li&gt;herramientas conectadas y flujos de trabajo;&lt;/li&gt;
&lt;li&gt;código y tareas de desarrollo en Codex;&lt;/li&gt;
&lt;li&gt;materiales empresariales, de investigación o de seguridad.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si una cuenta se compromete, el daño no se limita al historial de chat. Un atacante puede acceder a herramientas conectadas, ver contexto sensible o interferir con trabajo en curso.&lt;/p&gt;
&lt;p&gt;Por eso OpenAI no está añadiendo solo otra forma de inicio de sesión, sino un conjunto más estricto de protección de cuenta.&lt;/p&gt;
&lt;h2 id=&#34;qué-incluye-advanced-account-security&#34;&gt;Qué incluye Advanced Account Security
&lt;/h2&gt;&lt;p&gt;OpenAI coloca esta opción en la sección Security de ChatGPT web, donde el usuario puede activarla.&lt;/p&gt;
&lt;p&gt;Primero, el inicio de sesión se vuelve más fuerte.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Advanced Account Security&lt;/code&gt; requiere &lt;code&gt;passkeys&lt;/code&gt; o llaves físicas de seguridad y desactiva el inicio de sesión con contraseña. El objetivo es que la autenticación resistente al phishing sea el valor por defecto para quienes más la necesitan.&lt;/p&gt;
&lt;p&gt;Segundo, la recuperación de cuenta se vuelve más estricta.&lt;/p&gt;
&lt;p&gt;La recuperación tradicional suele depender de correo o SMS. Si un atacante controla el correo o el número del usuario, puede usarlo para restablecer la cuenta. Para reducir este riesgo, Advanced Account Security desactiva la recuperación por email y SMS y usa métodos más fuertes, como passkeys de respaldo, llaves de seguridad y claves de recuperación.&lt;/p&gt;
&lt;p&gt;Hay una contrapartida importante: después de activar la función, recuperar la cuenta depende mucho más de que el usuario guarde bien esos métodos. OpenAI indica explícitamente que, si los usuarios inscritos pierden sus métodos de recuperación, OpenAI Support no podrá recuperar la cuenta.&lt;/p&gt;
&lt;p&gt;Tercero, las sesiones son más cortas y más fáciles de gestionar.&lt;/p&gt;
&lt;p&gt;OpenAI reduce la duración de las sesiones para acortar la ventana de exposición si un dispositivo o sesión activa se ve comprometido. El usuario recibe alertas de inicio de sesión y puede revisar y gestionar sesiones activas en sus dispositivos.&lt;/p&gt;
&lt;p&gt;Cuarto, la exclusión de entrenamiento se activa automáticamente.&lt;/p&gt;
&lt;p&gt;Para quienes manejan información sensible, impedir que las conversaciones se usen para entrenar modelos es una opción de privacidad importante. Al activar Advanced Account Security, las conversaciones de esas cuentas no se usarán para entrenar modelos de OpenAI.&lt;/p&gt;
&lt;h2 id=&#34;colaboración-con-yubico&#34;&gt;Colaboración con Yubico
&lt;/h2&gt;&lt;p&gt;OpenAI también anunció una colaboración con Yubico para ofrecer un paquete personalizado de llaves de seguridad.&lt;/p&gt;
&lt;p&gt;Incluye:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;YubiKey C Nano&lt;/code&gt;: pensada para quedarse conectada al portátil y reducir fricción diaria;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;YubiKey C NFC&lt;/code&gt;: pensada como respaldo y para uso entre portátiles y móviles.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;OpenAI dice que también se pueden usar otras llaves físicas compatibles con FIDO o passkeys de software. La función no depende de un hardware concreto, sino de métodos resistentes al phishing.&lt;/p&gt;
&lt;h2 id=&#34;trusted-access-for-cyber-tendrá-que-activarlo&#34;&gt;Trusted Access for Cyber tendrá que activarlo
&lt;/h2&gt;&lt;p&gt;OpenAI también indica que los miembros individuales de &lt;code&gt;Trusted Access for Cyber&lt;/code&gt; que acceden a modelos de ciberseguridad más capaces y permisivos deberán activar Advanced Account Security desde el 1 de junio de 2026.&lt;/p&gt;
&lt;p&gt;Las organizaciones pueden cumplir de otra forma: certificando que su flujo de SSO ya usa autenticación resistente al phishing.&lt;/p&gt;
&lt;p&gt;La lógica es clara. Cuanto más potente es la capacidad del modelo, más fuerte debe ser la protección de cuenta, sobre todo en investigación de seguridad, análisis de vulnerabilidades y red teaming.&lt;/p&gt;
&lt;h2 id=&#34;quién-debería-considerarlo&#34;&gt;Quién debería considerarlo
&lt;/h2&gt;&lt;p&gt;No es una función necesaria para todo el mundo.&lt;/p&gt;
&lt;p&gt;Si usas ChatGPT solo para conversaciones comunes y no quieres gestionar recuperación estricta, puede tener sentido esperar.&lt;/p&gt;
&lt;p&gt;Pero estos usuarios deberían considerarla en serio:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;personas que manejan materiales sensibles en ChatGPT;&lt;/li&gt;
&lt;li&gt;usuarios de Codex con repositorios privados;&lt;/li&gt;
&lt;li&gt;periodistas, profesionales públicos, investigadores, ejecutivos y otros usuarios de alto riesgo;&lt;/li&gt;
&lt;li&gt;profesionales de ciberseguridad;&lt;/li&gt;
&lt;li&gt;personas cómodas con passkeys o llaves físicas;&lt;/li&gt;
&lt;li&gt;usuarios preocupados por phishing, SIM swapping o toma de control del correo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Antes de activarla, conviene preparar passkeys de respaldo, llaves de seguridad y claves de recuperación, y guardarlas de forma segura.&lt;/p&gt;
&lt;h2 id=&#34;qué-significa-para-productos-de-ia&#34;&gt;Qué significa para productos de IA
&lt;/h2&gt;&lt;p&gt;Advanced Account Security no es una mejora del modelo, pero muestra que los productos de IA están entrando en usos de mayor riesgo.&lt;/p&gt;
&lt;p&gt;Cuando ChatGPT y Codex cargan flujos de trabajo, código, documentos, conectores empresariales y contexto de largo plazo, la cuenta ya no es solo una entrada a un chat. Es la llave de un entorno de trabajo con IA.&lt;/p&gt;
&lt;p&gt;Cuanto más se parecen estos productos a espacios personales de trabajo, más importantes se vuelven seguridad de cuenta, recuperación, sesiones y controles de datos de entrenamiento.&lt;/p&gt;
&lt;h2 id=&#34;conclusión&#34;&gt;Conclusión
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Advanced Account Security&lt;/code&gt; puede entenderse como un modo de alta seguridad para ChatGPT y Codex.&lt;/p&gt;
&lt;p&gt;Reduce el riesgo de toma de cuenta mediante inicio de sesión más fuerte, recuperación más estricta, sesiones más cortas, alertas y exclusión automática de entrenamiento. La contrapartida es que el usuario debe cuidar mejor sus métodos de recuperación: después de activarlo ya no existe recuperación tradicional por correo o SMS, y OpenAI Support no sirve como respaldo.&lt;/p&gt;
&lt;p&gt;Si ya usas ChatGPT o Codex para trabajo importante, especialmente con código privado, documentos sensibles o una identidad de alto riesgo, esta función merece atención.&lt;/p&gt;
&lt;p&gt;Referencia:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://openai.com/index/advanced-account-security/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Introducing Advanced Account Security - OpenAI&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Gemini llega a los coches con Google built-in: el asistente de voz del vehículo empieza a parecer un asistente de IA real</title>
        <link>https://knightli.com/es/2026/05/01/gemini-cars-with-google-built-in/</link>
        <pubDate>Fri, 01 May 2026 06:09:57 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/01/gemini-cars-with-google-built-in/</guid>
        <description>&lt;p&gt;Google anunció el 30 de abril de 2026 que &lt;code&gt;Gemini&lt;/code&gt; empezaría a llegar a coches con &lt;code&gt;Google built-in&lt;/code&gt;, como una evolución del Google Assistant dentro del vehículo.&lt;/p&gt;
&lt;p&gt;Lo importante no es solo que &amp;ldquo;hay otro asistente de IA en el coche&amp;rdquo;. El cambio real es que la interacción por voz en el automóvil empieza a moverse desde comandos rígidos hacia conversaciones más naturales. El usuario no necesita recordar fórmulas exactas: puede hablar con Gemini para navegar, manejar mensajes, consultar información del coche o controlar algunos ajustes del habitáculo.&lt;/p&gt;
&lt;h2 id=&#34;primero-para-usuarios-de-inglés-en-estados-unidos&#34;&gt;Primero para usuarios de inglés en Estados Unidos
&lt;/h2&gt;&lt;p&gt;Según Google, la actualización cubrirá vehículos nuevos y existentes, siempre que el coche soporte &lt;code&gt;Google built-in&lt;/code&gt; y el usuario haya iniciado sesión con su cuenta de Google en el sistema del vehículo.&lt;/p&gt;
&lt;p&gt;El despliegue empieza con usuarios de inglés en Estados Unidos y luego se ampliará a más idiomas y países. Los usuarios compatibles verán una indicación para actualizar a Gemini. Después, podrán invocarlo con:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;decir &lt;code&gt;Hey Google&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;tocar el micrófono en la pantalla principal;&lt;/li&gt;
&lt;li&gt;usar el botón de voz del volante.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Google no está creando una entrada nueva que haya que aprender desde cero: conserva el punto de acceso de voz existente y cambia el asistente de fondo por Gemini.&lt;/p&gt;
&lt;h2 id=&#34;la-voz-en-el-coche-deja-de-depender-solo-de-comandos-fijos&#34;&gt;La voz en el coche deja de depender solo de comandos fijos
&lt;/h2&gt;&lt;p&gt;El problema clásico de los asistentes de voz en coches es que podían hacer bastantes cosas, pero el usuario tenía que hablar de forma muy &amp;ldquo;estándar&amp;rdquo;. Si la petición era un poco compleja, el asistente fallaba o ejecutaba solo una acción básica.&lt;/p&gt;
&lt;p&gt;Con Gemini, Google subraya la conversación natural. Por ejemplo, el usuario puede decir:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I need to grab lunch, find some highly rated sit-down restaurants along the way. I&amp;rsquo;m not in a rush, oh, and I’d like to eat outside.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Gemini puede combinar esa intención con Google Maps para buscar restaurantes adecuados en la ruta. Luego el usuario puede preguntar por aparcamiento, opciones vegetarianas u otros detalles sin iniciar una búsqueda completa desde cero.&lt;/p&gt;
&lt;p&gt;Esto encaja mejor con la conducción. Al manejar es difícil filtrar, tocar y ajustar condiciones como en un móvil. Si el asistente entiende una intención más completa, reduce distracciones.&lt;/p&gt;
&lt;h2 id=&#34;mapas-mensajes-y-música-se-vuelven-más-fluidos&#34;&gt;Mapas, mensajes y música se vuelven más fluidos
&lt;/h2&gt;&lt;p&gt;Los ejemplos de Google giran alrededor de necesidades comunes mientras se conduce.&lt;/p&gt;
&lt;p&gt;La primera categoría es búsqueda de rutas y lugares. Gemini puede buscar restaurantes, sitios turísticos o cargadores en el camino con información de Google Maps, y responder preguntas relacionadas con la ruta actual. Si pasas cerca de un estadio, puedes preguntar si hay un evento y si afectará al tráfico.&lt;/p&gt;
&lt;p&gt;La segunda categoría es mensajería. Gemini puede resumir mensajes nuevos y responder usando el contexto. Por ejemplo, puede decir a un amigo que vas en camino e incluir la hora estimada de llegada. Si quieres ajustar el texto, puedes seguir hablando sin empezar de nuevo.&lt;/p&gt;
&lt;p&gt;La tercera categoría es música y ambiente. No hace falta conocer una emisora o lista exacta. Puedes describir lo que quieres escuchar, como una radio de jazz o folk-rock alegre de los 70 en YouTube Music para conducir por montaña, y pedir que salte canciones lentas.&lt;/p&gt;
&lt;p&gt;Las funciones no son completamente nuevas, pero el valor de Gemini está en procesar varias condiciones en una frase natural en lugar de obligar al usuario a usar comandos fijos.&lt;/p&gt;
&lt;h2 id=&#34;gemini-live-también-entra-al-coche&#34;&gt;Gemini Live también entra al coche
&lt;/h2&gt;&lt;p&gt;Google también mencionó que &lt;code&gt;Gemini Live&lt;/code&gt; llegará al contexto del vehículo, por ahora en beta. El usuario puede tocar el botón de Gemini Live o decir &lt;code&gt;Hey Google, let&#39;s talk&lt;/code&gt; para iniciar una conversación más libre.&lt;/p&gt;
&lt;p&gt;Esto se parece más a una experiencia de aprendizaje o lluvia de ideas durante el viaje. Por ejemplo, al ir a Lake Tahoe, Gemini puede contar historia y datos locales; si algo interesa, se puede interrumpir y preguntar más. También puede ayudar a planear rutas a pie y actividades al llegar.&lt;/p&gt;
&lt;p&gt;La diferencia con el asistente tradicional es clara: el asistente clásico es más parecido a un botón de herramienta; Gemini Live se acerca más a una interfaz de voz continua.&lt;/p&gt;
&lt;h2 id=&#34;manual-del-coche-y-estado-en-tiempo-real-son-la-diferencia-clave&#34;&gt;Manual del coche y estado en tiempo real son la diferencia clave
&lt;/h2&gt;&lt;p&gt;Más interesante aún, Gemini no responde solo preguntas generales. Google dice que trabaja con fabricantes para integrarlo más profundamente en los sistemas del vehículo.&lt;/p&gt;
&lt;p&gt;Esto permite varios tipos de capacidades más cercanas al coche real.&lt;/p&gt;
&lt;p&gt;Primero, el usuario puede preguntar por funciones del vehículo. Por ejemplo: &amp;ldquo;¿Qué debo hacer antes de un lavado automático?&amp;rdquo; o &amp;ldquo;El techo de mi garaje es bajo, ¿cómo limito la apertura del portón trasero?&amp;rdquo;. Gemini puede usar el manual del propietario proporcionado por el fabricante para responder según el modelo concreto. El detalle disponible dependerá de cada marca y vehículo.&lt;/p&gt;
&lt;p&gt;Segundo, los usuarios de EV pueden preguntar por batería y autonomía en tiempo real: carga actual, carga estimada al llegar o cargadores cercanos. También puede combinarlo con Google Maps para buscar cafeterías cerca de estaciones de carga.&lt;/p&gt;
&lt;p&gt;Tercero, algunos ajustes del habitáculo pueden controlarse con lenguaje natural. El ejemplo de Google es decir que el coche está &amp;ldquo;húmedo y frío&amp;rdquo;; Gemini puede entender la intención, subir la calefacción y activar desempañado.&lt;/p&gt;
&lt;p&gt;Este tipo de integración es más útil que meter un chatbot genérico en el coche. Un automóvil tiene estado, hardware y límites de seguridad claros. Si el asistente entiende ese contexto, aporta más valor.&lt;/p&gt;
&lt;h2 id=&#34;los-límites-del-ai-en-el-coche-importan-más&#34;&gt;Los límites del AI en el coche importan más
&lt;/h2&gt;&lt;p&gt;El contexto del coche exige más que el móvil o la web. Al conducir, el usuario no puede mirar la pantalla constantemente ni dedicar demasiada atención a corregir al asistente. El sistema debe ser breve, fiable y no crear carga adicional en momentos críticos.&lt;/p&gt;
&lt;p&gt;Por eso, Gemini en coches no significa que todas las tareas complejas deban hacerse durante la conducción. La dirección razonable es:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;reducir el coste operativo de navegación y consultas;&lt;/li&gt;
&lt;li&gt;sustituir menús de varias capas por lenguaje natural;&lt;/li&gt;
&lt;li&gt;ayudar a entender funciones del vehículo;&lt;/li&gt;
&lt;li&gt;manejar mensajes y medios sin distraer;&lt;/li&gt;
&lt;li&gt;dar a usuarios EV información más fluida de carga y ruta.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En sentido contrario, las operaciones de alto riesgo necesitan límites claros. Ajustes que afecten a la seguridad, envío de mensajes que requieran confirmación o acciones de control del vehículo deben tener flujos de confirmación explícitos.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Gemini en coches con &lt;code&gt;Google built-in&lt;/code&gt; es otro paso de los asistentes de IA desde el móvil y la web hacia entornos cotidianos.&lt;/p&gt;
&lt;p&gt;Su importancia no está en poder &amp;ldquo;charlar con el coche&amp;rdquo;, sino en que el asistente de voz entiende intenciones más complejas y combina mapas, mensajes, música, manual del vehículo y parte del estado del coche para completar tareas.&lt;/p&gt;
&lt;p&gt;Si el despliegue funciona bien, la interacción por voz en coches podría pasar de &amp;ldquo;recordar comandos&amp;rdquo; a &amp;ldquo;describir necesidades&amp;rdquo;. Eso importa mucho al conducir, porque un buen AI para el coche no debería exigir demasiada atención del conductor.&lt;/p&gt;
&lt;p&gt;Referencias:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://blog.google/products-and-platforms/platforms/android/cars-with-google-built-in-gemini-tips-2026/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Your car with Google built-in is about to get smarter, thanks to Gemini - Google Blog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Claude for Creative Work: Anthropic lleva Claude a Adobe, Blender, Ableton y SketchUp</title>
        <link>https://knightli.com/es/2026/05/01/claude-for-creative-work-connectors/</link>
        <pubDate>Fri, 01 May 2026 05:52:14 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/01/claude-for-creative-work-connectors/</guid>
        <description>&lt;p&gt;Anthropic lanzó &lt;code&gt;Claude for Creative Work&lt;/code&gt; el 28 de abril de 2026. El punto no es otro chatbot nuevo, sino llevar Claude al software que las industrias creativas ya usan.&lt;/p&gt;
&lt;p&gt;La lista de socios es muy representativa: &lt;code&gt;Blender&lt;/code&gt;, &lt;code&gt;Autodesk&lt;/code&gt;, &lt;code&gt;Adobe&lt;/code&gt;, &lt;code&gt;Ableton&lt;/code&gt; y &lt;code&gt;Splice&lt;/code&gt;, junto con ecosistemas como &lt;code&gt;Affinity by Canva&lt;/code&gt;, &lt;code&gt;Resolume&lt;/code&gt; y &lt;code&gt;SketchUp&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;En pocas palabras, Anthropic quiere que Claude no solo dé consejos en una ventana de chat, sino que entre en flujos concretos de diseño, 3D, música, vídeo y visuales en vivo.&lt;/p&gt;
&lt;h2 id=&#34;claude-no-reemplaza-el-gusto-pero-sí-mucho-trabajo-repetitivo&#34;&gt;Claude no reemplaza el gusto, pero sí mucho trabajo repetitivo
&lt;/h2&gt;&lt;p&gt;Anthropic mantiene un tono prudente: Claude no reemplaza el gusto ni la imaginación de los creadores.&lt;/p&gt;
&lt;p&gt;Ese juicio es correcto. En el trabajo creativo, lo difícil muchas veces no es &amp;ldquo;generar algo&amp;rdquo;, sino decidir qué dirección vale la pena, qué detalles conservar y qué propuesta encaja con el carácter del proyecto.&lt;/p&gt;
&lt;p&gt;Pero los flujos creativos también contienen mucha labor repetitiva:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;redimensionar imágenes por lotes;&lt;/li&gt;
&lt;li&gt;renombrar capas;&lt;/li&gt;
&lt;li&gt;exportar archivos en distintos formatos;&lt;/li&gt;
&lt;li&gt;ordenar recursos;&lt;/li&gt;
&lt;li&gt;buscar documentación del software;&lt;/li&gt;
&lt;li&gt;escribir scripts para modificar escenas;&lt;/li&gt;
&lt;li&gt;convertir formatos entre herramientas;&lt;/li&gt;
&lt;li&gt;convertir una idea en un borrador visible rápidamente.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas tareas no siempre requieren inspiración, pero consumen tiempo. El papel de Claude se parece más a liberar al creador de esos pasos mecánicos.&lt;/p&gt;
&lt;h2 id=&#34;los-connectors-son-el-centro-del-lanzamiento&#34;&gt;Los connectors son el centro del lanzamiento
&lt;/h2&gt;&lt;p&gt;La clave del lanzamiento son los &lt;code&gt;connectors&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Un &lt;code&gt;connector&lt;/code&gt; es un puente entre Claude y plataformas o software externos. En lugar de copiar una petición a Claude y volver manualmente al software para actuar, el usuario puede dejar que Claude entienda la herramienta, invoque capacidades o lea documentación relevante.&lt;/p&gt;
&lt;p&gt;Anthropic menciona conexiones como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Ableton&lt;/code&gt;: Claude responde preguntas a partir de documentación oficial de Live y Push.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Adobe for creativity&lt;/code&gt;: conexión con más de 50 herramientas de Creative Cloud, incluidas Photoshop, Premiere y Express.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Affinity by Canva&lt;/code&gt;: automatización de tareas repetitivas como ajustes por lote, renombrado de capas y exportación.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Autodesk Fusion&lt;/code&gt;: creación y modificación de modelos 3D por conversación.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Blender&lt;/code&gt;: uso de la API Python de Blender mediante lenguaje natural.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Resolume Arena&lt;/code&gt; y &lt;code&gt;Resolume Wire&lt;/code&gt;: control en tiempo real para VJs y artistas visuales.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SketchUp&lt;/code&gt;: convertir una conversación en punto de partida para modelado 3D.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Splice&lt;/code&gt;: búsqueda de samples royalty-free directamente desde Claude.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas integraciones cubren diseño, audio, 3D, vídeo, performance en vivo y modelado de ingeniería. No es un experimento pequeño; muestra que Anthropic quiere avanzar hacia una especie de banco de trabajo creativo.&lt;/p&gt;
&lt;h2 id=&#34;qué-aporta-al-trabajo-creativo&#34;&gt;Qué aporta al trabajo creativo
&lt;/h2&gt;&lt;p&gt;Los usos se pueden agrupar en varias categorías.&lt;/p&gt;
&lt;p&gt;La primera es aprender herramientas complejas. Blender, Ableton, Fusion y Premiere son potentes, pero tienen curvas de aprendizaje pronunciadas. Claude puede explicar un modifier stack, una técnica de composición o una función desconocida sin que el usuario salte entre buscadores, foros y documentación.&lt;/p&gt;
&lt;p&gt;La segunda es escribir scripts y plugins. El software creativo tiene mucho espacio para automatización. Claude Code puede ayudar con scripts, plugins, shaders, animación procedural o modelos paramétricos.&lt;/p&gt;
&lt;p&gt;La tercera es conectar cadenas de herramientas. Un proyecto real rara vez vive en una sola aplicación: diseño en Adobe, 3D en Blender o SketchUp, audio en Ableton, recursos desde Splice y salida final hacia vídeo o sistemas de performance. Claude puede ayudar con conversión de formatos, reorganización de datos y sincronización de recursos.&lt;/p&gt;
&lt;p&gt;La cuarta es exploración rápida. Anthropic también mencionó &lt;code&gt;Claude Design&lt;/code&gt;, un producto de Anthropic Labs para explorar ideas de experiencia de software. Puede iterar propuestas visuales con feedback y exportar resultados a otras herramientas, empezando por Canva.&lt;/p&gt;
&lt;p&gt;La quinta es reducir producción repetitiva: procesar recursos por lotes, crear estructuras de proyecto, modificar objetos de escena o automatizar exportaciones. Muchos creadores saben hacerlo, pero no quieren pasar una tarde repitiendo clics.&lt;/p&gt;
&lt;h2 id=&#34;blender-es-la-pieza-más-interesante&#34;&gt;Blender es la pieza más interesante
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Blender&lt;/code&gt; ocupa un lugar especial en este anuncio.&lt;/p&gt;
&lt;p&gt;Blender es una suite 3D libre y de código abierto usada en juegos independientes, motion graphics, visualización arquitectónica, cine y más. Ya tiene una API Python potente y muchos flujos complejos.&lt;/p&gt;
&lt;p&gt;Los desarrolladores de Blender crearon un connector MCP que ahora puede usarse oficialmente en Claude. Puede:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;analizar y depurar una escena completa;&lt;/li&gt;
&lt;li&gt;modificar objetos de una escena en lote;&lt;/li&gt;
&lt;li&gt;escribir scripts personalizados con la API Python de Blender;&lt;/li&gt;
&lt;li&gt;añadir herramientas directamente a la interfaz;&lt;/li&gt;
&lt;li&gt;ayudar a entender configuraciones y documentación complejas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Más importante aún: Anthropic se unió al Blender Development Fund como patron, apoyando el desarrollo continuo de la API Python de Blender.&lt;/p&gt;
&lt;p&gt;Esto envía dos señales. Primero, Anthropic no solo quiere conectarse con software comercial, también apuesta por herramientas creativas open source. Segundo, el connector se basa en &lt;code&gt;MCP&lt;/code&gt;, así que en teoría no está limitado a Claude.&lt;/p&gt;
&lt;h2 id=&#34;no-es-ai-reemplazando-diseñadores-es-ai-entrando-en-la-capa-de-herramientas&#34;&gt;No es &amp;ldquo;AI reemplazando diseñadores&amp;rdquo;; es &amp;ldquo;AI entrando en la capa de herramientas&amp;rdquo;
&lt;/h2&gt;&lt;p&gt;Lo importante no es si Claude puede generar una imagen, una canción o un modelo 3D.&lt;/p&gt;
&lt;p&gt;El punto es que la IA se está moviendo de la caja de chat a la capa de herramientas.&lt;/p&gt;
&lt;p&gt;Antes, muchas herramientas creativas de IA seguían este flujo:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Describir una necesidad en la herramienta de IA.&lt;/li&gt;
&lt;li&gt;Obtener un resultado.&lt;/li&gt;
&lt;li&gt;Descargar o copiar.&lt;/li&gt;
&lt;li&gt;Volver al software profesional y corregir manualmente.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;La nueva dirección se parece más a esto:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Claude entiende tu software creativo.&lt;/li&gt;
&lt;li&gt;Claude lee documentación o contexto del proyecto.&lt;/li&gt;
&lt;li&gt;Claude genera scripts, opera herramientas, organiza recursos o crea borradores.&lt;/li&gt;
&lt;li&gt;El creador sigue juzgando y refinando dentro del software familiar.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Esto es más atractivo para profesionales porque no quieren abandonar sus cadenas actuales ni migrar todo a una nueva plataforma de IA.&lt;/p&gt;
&lt;h2 id=&#34;impacto-en-estudiantes-y-educación-creativa&#34;&gt;Impacto en estudiantes y educación creativa
&lt;/h2&gt;&lt;p&gt;Anthropic también está colaborando con programas de arte y diseño para apoyar cursos con creative computation.&lt;/p&gt;
&lt;p&gt;Los primeros programas incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Art and Computation en Rhode Island School of Design;&lt;/li&gt;
&lt;li&gt;Fundamentals of AI for Creatives en Ringling College of Art and Design;&lt;/li&gt;
&lt;li&gt;MA/MFA Computational Arts en Goldsmiths, University of London.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estudiantes y docentes tendrán acceso a Claude y a los nuevos connectors, y su feedback ayudará a Anthropic a entender qué necesitan de verdad los creadores.&lt;/p&gt;
&lt;p&gt;Esto es interesante porque, si la IA creativa se queda solo en &amp;ldquo;generar recursos&amp;rdquo;, se vuelve fácilmente una demo. En cursos, las preguntas importantes son otras: cómo entender los procesos detrás de las herramientas, cómo usar IA para explorar y prototipar, cómo conservar criterio propio, cómo ampliar límites creativos con código y cómo evitar que todo tenga el mismo sabor de IA.&lt;/p&gt;
&lt;h2 id=&#34;quién-debería-prestar-atención&#34;&gt;Quién debería prestar atención
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Claude for Creative Work&lt;/code&gt; merece atención para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;usuarios de Blender, SketchUp o Fusion para modelado 3D;&lt;/li&gt;
&lt;li&gt;personas que usan Adobe o Affinity para diseño y vídeo;&lt;/li&gt;
&lt;li&gt;productores que usan Ableton o Splice;&lt;/li&gt;
&lt;li&gt;equipos que conectan varias herramientas creativas;&lt;/li&gt;
&lt;li&gt;creadores con algo de scripting que quieren automatizar software;&lt;/li&gt;
&lt;li&gt;docentes de creatividad, diseño interactivo o computational arts.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si solo generas imágenes con IA de vez en cuando, quizá no cambie tu experiencia de inmediato. Pero si trabajas en software profesional y a menudo piensas &amp;ldquo;sé qué hacer, pero estos pasos son tediosos&amp;rdquo;, los connectors pueden ser valiosos.&lt;/p&gt;
&lt;h2 id=&#34;límites-a-recordar&#34;&gt;Límites a recordar
&lt;/h2&gt;&lt;p&gt;Estas herramientas no son mágicas.&lt;/p&gt;
&lt;p&gt;Claude sigue necesitando que el usuario juzgue estética, marca y objetivos. Al automatizar software profesional, conviene empezar con tareas pequeñas y no dejar que modifique en lote archivos difíciles de recuperar. La calidad del connector es crítica: consultar documentación y operar de verdad el software son experiencias muy distintas.&lt;/p&gt;
&lt;p&gt;Los proyectos creativos también tienen archivos complejos, dependencias y control de versiones. Con IA en el flujo, backups y rollback son aún más importantes. Y derechos, licencias y fuentes de recursos siguen siendo responsabilidad del usuario.&lt;/p&gt;
&lt;h2 id=&#34;conclusión&#34;&gt;Conclusión
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Claude for Creative Work&lt;/code&gt; no es una actualización aislada. Es un paso de Anthropic para insertar Claude en el ecosistema de software creativo.&lt;/p&gt;
&lt;p&gt;El objetivo no es convertir a Claude en creador, sino en un asistente de herramientas: consultar documentación, escribir scripts, procesar por lotes, conectar aplicaciones, generar borradores y reducir trabajo repetitivo.&lt;/p&gt;
&lt;p&gt;El valor a largo plazo está en que Claude empiece a entrar en entornos que los creadores usan todos los días, como Blender, Adobe, Ableton y SketchUp.&lt;/p&gt;
&lt;p&gt;Referencia:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.anthropic.com/news/claude-for-creative-work&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Claude for Creative Work - Anthropic&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>FinceptTerminal: terminal financiera open source, investigaci贸n cuantitativa y banco de trabajo para AI Agents</title>
        <link>https://knightli.com/es/2026/05/01/finceptterminal-open-source-financial-terminal/</link>
        <pubDate>Fri, 01 May 2026 03:47:18 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/01/finceptterminal-open-source-financial-terminal/</guid>
        <description>&lt;p&gt;&lt;code&gt;FinceptTerminal&lt;/code&gt; es un proyecto de terminal financiera de código abierto de Fincept Corporation.&lt;/p&gt;
&lt;p&gt;Según el README, no es un simple panel de cotizaciones de mercado. Es una plataforma de escritorio integral para análisis financiero, investigación quant, flujos de trabajo de trading y AI Agents. La Versión 4 está construida con C++20 y Qt6 como una aplicación de escritorio nativa, mientras incrusta el ecosistema Python para análisis, scripting, machine learning y modelado financiero.&lt;/p&gt;
&lt;p&gt;Si necesitamos una comparación, se asemeja más a un banco de trabajo (workbench) de investigación financiera de código abierto: conectando fuentes de datos en un lado, y gestionando gráficos, carteras (portfolios), investigación quant, trading, análisis de inteligencia y flujos de trabajo automatizados en el otro.&lt;/p&gt;
&lt;p&gt;Primero debe quedar claro algo: herramientas como esta pueden usarse para investigación, análisis, educación y construcción de herramientas internas, pero ninguna salida debe tratarse directamente como asesoramiento de inversión. Los mercados financieros son riesgosos, y los datos, modelos, estrategias y la ejecución requieren verificación independiente.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;qué-problema-resuelve&#34;&gt;¿Qué problema resuelve?
&lt;/h2&gt;&lt;p&gt;La investigación financiera a menudo está dispersa en muchas herramientas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Los datos de mercado se encuentran en una aplicación&lt;/li&gt;
&lt;li&gt;El código de investigación se encuentra en Jupyter&lt;/li&gt;
&lt;li&gt;Los gráficos se encuentran en otra herramienta&lt;/li&gt;
&lt;li&gt;El análisis de cartera se realiza en hojas de cálculo&lt;/li&gt;
&lt;li&gt;Los registros de trading se encuentran en los sistemas de corretaje&lt;/li&gt;
&lt;li&gt;Las noticias y la inteligencia se encuentran en el navegador&lt;/li&gt;
&lt;li&gt;El análisis de IA se encuentra en una ventana de chat&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Este enfoque funciona, pero la colaboración y la reproducibilidad son difíciles.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;FinceptTerminal&lt;/code&gt; intenta integrar estas capacidades en una única terminal de escritorio, para que los usuarios puedan completar flujos de trabajo relacionados con el acceso a datos, el análisis, el modelado, la visualización, la colaboración de Agentes y el trading en el mismo entorno.&lt;/p&gt;
&lt;p&gt;Su objetivo no es reemplazar cada sistema profesional, sino proporcionar una base de código abierto y extensible para una terminal financiera.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;arquitectura-técnica&#34;&gt;Arquitectura técnica
&lt;/h2&gt;&lt;p&gt;El README menciona que v4 usa C++20 y Qt6.&lt;/p&gt;
&lt;p&gt;Esto significa que no es un panel web puro, sino una aplicación de escritorio nativa. Para una terminal financiera, las aplicaciones nativas tienen varias ventajas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mayor estabilidad en la capacidad de respuesta de la UI&lt;/li&gt;
&lt;li&gt;Mejor adaptación para ventanas complejas y diseños multipanel&lt;/li&gt;
&lt;li&gt;Acceso más fácil a archivos locales y recursos del sistema&lt;/li&gt;
&lt;li&gt;Capacidad para integrar componentes de alto rendimiento&lt;/li&gt;
&lt;li&gt;Mejor adecuada para flujos de trabajo de escritorio de larga duración&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Al mismo tiempo, el proyecto también integra Python.&lt;/p&gt;
&lt;p&gt;Esto es importante. En la investigación financiera y el análisis quant, Python es uno de los lenguajes principales de facto. El análisis de datos, el machine learning, las estadísticas, el backtesting, la creación de gráficos (charting) y la modelización financiera dependen en gran medida del ecosistema Python. C++/Qt maneja el framework de la aplicación y la experiencia de escritorio, mientras que Python se encarga de la investigación y la extensibilidad. Esa es una combinación muy práctica.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;data-connectors&#34;&gt;Data connectors
&lt;/h2&gt;&lt;p&gt;El README indica que el proyecto proporciona más de 100 data connectors.&lt;/p&gt;
&lt;p&gt;El valor de una terminal financiera depende en gran medida del acceso a datos. Sin datos, incluso la mejor UI y los mejores models son solo una cáscara vacía.&lt;/p&gt;
&lt;p&gt;Estos conectores suelen poder cubrir diferentes fuentes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Market quotes&lt;/li&gt;
&lt;li&gt;Macroeconomic data&lt;/li&gt;
&lt;li&gt;Company financials&lt;/li&gt;
&lt;li&gt;News and intelligence&lt;/li&gt;
&lt;li&gt;Exchange data&lt;/li&gt;
&lt;li&gt;Crypto asset data&lt;/li&gt;
&lt;li&gt;Research data sources&lt;/li&gt;
&lt;li&gt;Internal or custom APIs&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para los usuarios, los data connectors reducen el flujo de trabajo de &amp;ldquo;descargar CSV, limpiarlo manualmente y luego importarlo de nuevo&amp;rdquo;, haciendo que el análisis se acerque al tiempo real y a la automatización.&lt;/p&gt;
&lt;p&gt;Dicho esto, la calidad, la licencia, la latencia, la cobertura y el costo de los datos financieros son todos críticos. Antes de utilizar cualquier fuente de datos, su licencia y los límites de uso deben ser confirmados.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;módulo-ai-agents&#34;&gt;Módulo AI Agents
&lt;/h2&gt;&lt;p&gt;El proyecto hace hincapié en AI Agents, lo que también es donde difiere de las terminales financieras tradicionales.&lt;/p&gt;
&lt;p&gt;Las terminales tradicionales son interfaces operadas principalmente por humanos: las personas miran los datos y emiten juicios. Con AI Agents, la herramienta puede asumir más trabajo de estilo asistente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Resumir información de mercado&lt;/li&gt;
&lt;li&gt;Explicar informes y anuncios financieros&lt;/li&gt;
&lt;li&gt;Generar resúmenes de investigación&lt;/li&gt;
&lt;li&gt;Ayudar a filtrar datos&lt;/li&gt;
&lt;li&gt;Asistir con scripts de análisis&lt;/li&gt;
&lt;li&gt;Organizar flujos de trabajo de trading o de investigación&lt;/li&gt;
&lt;li&gt;Pasar contexto entre módulos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto no significa que la IA pueda reemplazar a los analistas o a los traders.&lt;/p&gt;
&lt;p&gt;Una postura más razonable es esta: AI Agents ayudan a reducir el trabajo de organización repetitivo y proporcionan análisis preliminares y consultas interactivas, pero las conclusiones importantes aún requieren validación de datos, validación de modelos y juicio humano.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;capacidades-de-investigación-cuantitativa&#34;&gt;Capacidades de investigación cuantitativa
&lt;/h2&gt;&lt;p&gt;FinceptTerminal también está orientado a la investigación quant.&lt;/p&gt;
&lt;p&gt;La investigación quant generalmente incluye:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Limpieza de datos&lt;/li&gt;
&lt;li&gt;Construcción de factores&lt;/li&gt;
&lt;li&gt;Hipótesis de estrategia&lt;/li&gt;
&lt;li&gt;Backtesting&lt;/li&gt;
&lt;li&gt;Evaluación de riesgos&lt;/li&gt;
&lt;li&gt;Optimización de portafolio&lt;/li&gt;
&lt;li&gt;Estimación de costos de trading&lt;/li&gt;
&lt;li&gt;Visualización de resultados&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si una terminal puede integrar conexiones de datos, análisis en Python, gráficos y flujos de trabajo, puede ser muy útil para la investigación quant. Los investigadores pueden pasar paso a paso de los datos a la validación de la estrategia en un solo entorno.&lt;/p&gt;
&lt;p&gt;Sin embargo, el mayor peligro en la investigación quant es algo que &amp;ldquo;parece efectivo&amp;rdquo;. Si una estrategia no maneja estrictamente la validación fuera de muestra (out-of-sample validation), los costos de trading, el deslizamiento (slippage), el sesgo de supervivencia (survivorship bias), el sobreajuste (overfitting) y la fuga de datos (data leakage), incluso un hermoso backtest no es confiable.&lt;/p&gt;
&lt;p&gt;Por lo tanto, este tipo de herramienta debe tratarse como una plataforma de investigación, no como una máquina automática para ganar dinero.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;quantlib-y-modelado-financiero&#34;&gt;QuantLib y modelado financiero
&lt;/h2&gt;&lt;p&gt;El README menciona capacidades relacionadas con QuantLib.&lt;/p&gt;
&lt;p&gt;QuantLib es una librería de código abierto común en ingeniería financiera. Se utiliza a menudo para tasas de interés, bonos, opciones, valoración de derivados, construcción de curvas, cálculo de riesgo y áreas relacionadas.&lt;/p&gt;
&lt;p&gt;Esto significa que FinceptTerminal no se trata solo de ver cotizaciones de acciones. También intenta cubrir escenarios de modelado financiero más profesionales.&lt;/p&gt;
&lt;p&gt;Estas capacidades son adecuadas para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Aprender ingeniería financiera&lt;/li&gt;
&lt;li&gt;Experimentos en valoración de derivados&lt;/li&gt;
&lt;li&gt;Cálculo de métricas de curva y riesgo&lt;/li&gt;
&lt;li&gt;Análisis de riesgo de cartera&lt;/li&gt;
&lt;li&gt;Prototipado de modelos de investigación&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Sin embargo, el modelado financiero en sí mismo tiene una alta barrera. Los parámetros del modelo, las suposiciones del mercado, las fuentes de datos y la lógica de precios afectan todos los resultados. Una herramienta puede reducir los costos operativos, pero no puede reemplazar el juicio profesional.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;node-workflows&#34;&gt;Node workflows
&lt;/h2&gt;&lt;p&gt;El README también menciona los workflows basados en Node.&lt;/p&gt;
&lt;p&gt;Los Node workflows son adecuados para dividir tareas complejas en procesos visuales:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Read data&lt;/li&gt;
&lt;li&gt;Clean data&lt;/li&gt;
&lt;li&gt;Run models&lt;/li&gt;
&lt;li&gt;Generate charts&lt;/li&gt;
&lt;li&gt;Trigger AI analysis&lt;/li&gt;
&lt;li&gt;Output reports&lt;/li&gt;
&lt;li&gt;Send notifications&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para escenarios financieros, este enfoque tiene dos ventajas.&lt;/p&gt;
&lt;p&gt;Primero, el proceso se vuelve visible. El análisis complejo ya no está oculto solo dentro de una pila de scripts, y los usuarios pueden ver cómo fluyen los datos.&lt;/p&gt;
&lt;p&gt;Segundo, es adecuado para la automatización. Los procesos de investigación repetitivos se pueden guardar, reutilizar y ajustar.&lt;/p&gt;
&lt;p&gt;Si estos workflows se pueden combinar con Python scripts, data connectors, Agents y reporting systems, este tipo de node workflow puede convertirse en un módulo muy valioso dentro de una terminal financiera.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;trading-y-gestión-de-portafolio&#34;&gt;Trading y gestión de portafolio
&lt;/h2&gt;&lt;p&gt;El proyecto también menciona capacidades relacionadas con el trading y la gestión de portafolio.&lt;/p&gt;
&lt;p&gt;Esta es el área que requiere la mayor cautela.&lt;/p&gt;
&lt;p&gt;La gestión de portafolio puede ayudar a los usuarios a comprender la exposición de activos, rendimientos, drawdowns, volatilidad, correlación y concentración de riesgos. Los módulos de trading pueden involucrar órdenes, cuentas, ejecución y registros.&lt;/p&gt;
&lt;p&gt;Pero siempre que esté involucrado el trading real, deben considerarse lo siguiente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Latencia de datos&lt;/li&gt;
&lt;li&gt;Riesgo de ejecución de órdenes&lt;/li&gt;
&lt;li&gt;Permisos de API&lt;/li&gt;
&lt;li&gt;Costos de trading&lt;/li&gt;
&lt;li&gt;Slippage&lt;/li&gt;
&lt;li&gt;Liquidez&lt;/li&gt;
&lt;li&gt;Límites de control de riesgo&lt;/li&gt;
&lt;li&gt;Auditoría y registros (logs)&lt;/li&gt;
&lt;li&gt;Disparadores accidentales de estrategias&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Las características de trading en entornos de desarrollo e investigación no deben equipararse con sistemas de trading de grado de producción. Antes de conectarse al trading en vivo, se requieren pruebas estrictas, aislamiento de permisos, mecanismos de control de riesgo y revisión manual.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;en-qué-se-diferencia-de-bloomberg-terminal&#34;&gt;¿En qué se diferencia de Bloomberg Terminal?
&lt;/h2&gt;&lt;p&gt;Muchos proyectos de terminales financieros se comparan con Bloomberg Terminal.&lt;/p&gt;
&lt;p&gt;Pero el posicionamiento es diferente.&lt;/p&gt;
&lt;p&gt;El valor de Bloomberg Terminal no es solo su interfaz de software. También incluye:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cobertura de datos&lt;/li&gt;
&lt;li&gt;Licenciamiento de datos&lt;/li&gt;
&lt;li&gt;Red de noticias&lt;/li&gt;
&lt;li&gt;Ecosistema de trading&lt;/li&gt;
&lt;li&gt;Soporte al cliente&lt;/li&gt;
&lt;li&gt;Flujos de trabajo de instituciones financieras&lt;/li&gt;
&lt;li&gt;Confianza industrial acumulada a lo largo del tiempo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;FinceptTerminal es más parecido a un framework de terminal financiero de código abierto y una plataforma de investigación. Sus fortalezas son la extensibilidad, la personalización, la localización y la integración con flujos de trabajo de Python y AI.&lt;/p&gt;
&lt;p&gt;No debe entenderse simplemente como un reemplazo gratuito para Bloomberg.&lt;/p&gt;
&lt;p&gt;Una visión más razonable es esta: si quieres estudiar cómo se construyen los terminales financieros, o si quieres crear tu propio banco de trabajo de análisis financiero, FinceptTerminal proporciona un punto de partida de código abierto.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;licenciamiento-y-límites-comerciales&#34;&gt;Licenciamiento y límites comerciales
&lt;/h2&gt;&lt;p&gt;El README menciona que el proyecto utiliza AGPL y un modelo de licenciamiento comercial.&lt;/p&gt;
&lt;p&gt;AGPL tiene requisitos explícitos para servicios de red y obras derivadas. Si solo lo utilizas para aprender, investigación o experimentos personales, generalmente no es un problema importante. Pero si planeas convertirlo en un producto comercial, una plataforma interna o un servicio externo, necesitas leer la licencia cuidadosamente.&lt;/p&gt;
&lt;p&gt;Las herramientas financieras a menudo entran en sistemas empresariales internos. En ese caso, las licencias de código abierto, las licencias comerciales, las licencias de datos y las licencias de modelo deben revisarse todas juntas, en lugar de solo preguntar si el código puede ejecutarse.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;a-quién-debe-prestar-atención&#34;&gt;¿A quién debe prestar atención?
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;FinceptTerminal&lt;/code&gt; es adecuado para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Desarrolladores interesados en la arquitectura de terminales financieras&lt;/li&gt;
&lt;li&gt;Personas que realizan investigación cuantitativa o experimentos de ingeniería financiera&lt;/li&gt;
&lt;li&gt;Personas que desean integrar análisis de Python en herramientas de escritorio&lt;/li&gt;
&lt;li&gt;Personas que exploran flujos de trabajo de AI Agent + finanzas&lt;/li&gt;
&lt;li&gt;Equipos que desarrollan plataformas internas de análisis financiero&lt;/li&gt;
&lt;li&gt;Personas que aprenden el desarrollo de aplicaciones financieras en C++/Qt&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si solo desea seguir cotizaciones de algunas acciones, el software de mercado ordinario puede ser más sencillo.&lt;/p&gt;
&lt;p&gt;Si quiere entender cómo se integra un terminal financiero datos, gráficos, modelos, Agents, trading y flujos de trabajo, este proyecto vale más la pena estudiar.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;cosas-a-tener-en-cuenta-al-usarlo&#34;&gt;Cosas a tener en cuenta al usarlo
&lt;/h2&gt;&lt;p&gt;Primero, distingue la investigación del trading.&lt;/p&gt;
&lt;p&gt;Los entornos de investigación pueden tolerar experimentos y fallos. Los entornos de trading no pueden. No conectes una herramienta de investigación a cuentas reales antes de que haya sido verificada.&lt;/p&gt;
&lt;p&gt;Segundo, toma en serio la licencia de datos.&lt;/p&gt;
&lt;p&gt;Los datos financieros no pueden simplemente ser raspados y utilizados comercialmente. Las diferentes fuentes de datos tienen diferentes términos de licencia, especialmente los datos de mercado, las noticias, los estados financieros y los datos de intercambio.&lt;/p&gt;
&lt;p&gt;Tercero, no confíes ciegamente en los AI Agents.&lt;/p&gt;
&lt;p&gt;La IA puede ayudar a organizar la información, pero las conclusiones financieras deben basarse en datos, modelos, riesgos y validación fáctica.&lt;/p&gt;
&lt;p&gt;Cuarto, presta atención a la seguridad.&lt;/p&gt;
&lt;p&gt;Si una herramienta se conecta a cuentas, API keys, interfaces de trading o datos internos, la gestión de claves, el aislamiento de permisos, los logs y los límites de red deben manejarse correctamente.&lt;/p&gt;
&lt;p&gt;Quinto, comprende la licencia open-source.&lt;/p&gt;
&lt;p&gt;AGPL tiene implicaciones importantes para el uso comercial y el despliegue de servicios. Antes de la productización, los problemas de licencia deben manejarse primero.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;referencia&#34;&gt;Referencia
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Fincept-Corporation/FinceptTerminal&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Fincept-Corporation/FinceptTerminal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;pensamiento-final&#34;&gt;Pensamiento final
&lt;/h2&gt;&lt;p&gt;Lo que hace que &lt;code&gt;FinceptTerminal&lt;/code&gt; merezca la pena es que integra terminales financieros, investigación quant en Python, AI Agents, data connectors y node workflows en el mismo concepto de plataforma de escritorio de código abierto.&lt;/p&gt;
&lt;p&gt;Está mejor orientado como punto de partida para la investigación de tecnología financiera y la creación de herramientas internas, que como un producto terminado que pueda reemplazar directamente los terminales financieros profesionales o los sistemas de trading en vivo.
false&lt;/p&gt;
</description>
        </item>
        <item>
        <title>mattpocock/skills: una colecci贸n pr谩ctica de habilidades para agentes de codificaci贸n con IA</title>
        <link>https://knightli.com/es/2026/05/01/mattpocock-skills-ai-agent-coding-workflows/</link>
        <pubDate>Fri, 01 May 2026 03:43:20 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/01/mattpocock-skills-ai-agent-coding-workflows/</guid>
        <description>&lt;p&gt;&lt;code&gt;mattpocock/skills&lt;/code&gt; es una colección pública de habilidades de agentes de codificación IA de Matt Pocock.&lt;/p&gt;
&lt;p&gt;No es una aplicación completa ni un nuevo cliente de chat. Es un conjunto de habilidades funcionales que pueden ser utilizadas por asistentes de codificación IA. La idea es práctica: desglosar problemas comunes de codificación de IA en pequeñas habilidades que un Agent puede llamar en la tarea adecuada, en lugar de depender de un solo prompt enorme cada vez.&lt;/p&gt;
&lt;p&gt;Si a menudo utilizas Claude Code, Codex, Cursor o herramientas de codificación IA similares, vale la pena observar este tipo de colección de habilidades. Lo que realmente afecta la experiencia de codificación con IA a menudo no es si el modelo puede escribir código, sino si puede avanzar en la tarea según tu estilo de trabajo preferido.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;qué-problema-resuelve&#34;&gt;Qué Problema Resuelve
&lt;/h2&gt;&lt;p&gt;Los asistentes de codificación de IA son potentes, pero pueden cometer errores fácilmente.&lt;/p&gt;
&lt;p&gt;Las situaciones comunes incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Comenzar cambios de código sin entender el requisito&lt;/li&gt;
&lt;li&gt;Modificar demasiados archivos a la vez&lt;/li&gt;
&lt;li&gt;Producir mucha explicación pero poca acción útil&lt;/li&gt;
&lt;li&gt;Intentar cosas a ciegas después de errores&lt;/li&gt;
&lt;li&gt;No ejecutar pruebas o verificaciones a tiempo&lt;/li&gt;
&lt;li&gt;Ignorar patrones de proyecto existentes&lt;/li&gt;
&lt;li&gt;Introducir abstracciones innecesarias para terminar una tarea&lt;/li&gt;
&lt;li&gt;Escribir código sin revisar realmente los riesgos después&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estos problemas no siempre son causados por una débil capacidad del modelo. A menudo, el flujo de trabajo no está lo suficientemente restringido.&lt;/p&gt;
&lt;p&gt;El valor de &lt;code&gt;mattpocock/skills&lt;/code&gt; es que transforma estos modos de fallo comunes en métodos operativos reutilizables, haciendo que el Agent se comporte más como un colaborador de ingeniería experimentado en diferentes escenarios.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;qué-son-los-skills&#34;&gt;¿Qué son los Skills
&lt;/h2&gt;&lt;p&gt;En el contexto de AI Agent, un skill se puede entender como una instrucción de tarea reutilizable, un método de trabajo o un flujo de trabajo profesional.&lt;/p&gt;
&lt;p&gt;No tiene por qué ser un código plugin, y no siempre necesita llamar a un servicio externo. En muchos casos, un skill es simplemente un conjunto claro de reglas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cuándo usarlo&lt;/li&gt;
&lt;li&gt;Qué hacer primero&lt;/li&gt;
&lt;li&gt;Qué no hacer&lt;/li&gt;
&lt;li&gt;Qué salida se requiere&lt;/li&gt;
&lt;li&gt;Cómo juzgar la finalización de la tarea&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto es algo parecido a una normal prompt template, pero la granularidad está más cerca de una capacidad de tarea.&lt;/p&gt;
&lt;p&gt;Las normal prompt templates suelen copiarse y pegarse manualmente por el usuario. Los skills son mejores como parte de una toolbox de agente, lo que permite al Agent elegir el flujo de trabajo correcto para la tarea.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;por-qué-es-importante-la-pequeñez-y-la-componibilidad&#34;&gt;Por qué es importante la pequeñez y la componibilidad
&lt;/h2&gt;&lt;p&gt;El README enfatiza que estas habilidades son pequeñas y componibles.&lt;/p&gt;
&lt;p&gt;Esta dirección es importante.&lt;/p&gt;
&lt;p&gt;Si una habilidad intenta manejarlo todo, rápidamente se convierte en un nuevo prompt gigante: largo, vago y difícil de mantener. La ventaja de las habilidades pequeñas son los límites claros.&lt;/p&gt;
&lt;p&gt;Por ejemplo, una habilidad puede centrarse en:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Planificar primero&lt;/li&gt;
&lt;li&gt;Arreglar errores de TypeScript&lt;/li&gt;
&lt;li&gt;Ejecutar pruebas y corregir basándose en los resultados&lt;/li&gt;
&lt;li&gt;Realizar revisión de código (code review)&lt;/li&gt;
&lt;li&gt;Resumir convenciones del proyecto&lt;/li&gt;
&lt;li&gt;Mejorar prompts&lt;/li&gt;
&lt;li&gt;Eliminar abstracciones innecesarias&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas habilidades se pueden combinar según la tarea. Una tarea simple puede necesitar solo una habilidad, mientras que una tarea compleja puede encadenar varias.&lt;/p&gt;
&lt;p&gt;Esto se acerca más al trabajo de ingeniería real. No utilizas el mismo flujo de trabajo (workflow) para cada problema; eliges las herramientas según la situación.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;manteniendo-al-ingeniero-en-control&#34;&gt;Manteniendo al Ingeniero en Control
&lt;/h2&gt;&lt;p&gt;Una dirección importante de este repositorio es mantener al ingeniero en control.&lt;/p&gt;
&lt;p&gt;La codificación con IA puede derivarse fácilmente en dos extremos.&lt;/p&gt;
&lt;p&gt;El primero es completamente manual. La IA solo ayuda a escribir unas pocas líneas de código, mientras que todo el contexto, la planificación y la verificación todavía dependen de ti.&lt;/p&gt;
&lt;p&gt;El segundo es completamente automatizado (hands-off). Tú envías una tarea a un Agent, lo dejas cambiar muchas cosas, y luego te enfrentas a un &lt;code&gt;diff&lt;/code&gt; que es difícil de revisar.&lt;/p&gt;
&lt;p&gt;Las habilidades ayudan a encontrar una posición intermedia más estable.&lt;/p&gt;
&lt;p&gt;Permiten que la IA asuma más flujo de trabajo repetitivo, mientras la sigue limitando con reglas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Entender la tarea antes de actuar&lt;/li&gt;
&lt;li&gt;Leer los archivos relevantes antes de editar&lt;/li&gt;
&lt;li&gt;Mantener el alcance de la modificación controlado&lt;/li&gt;
&lt;li&gt;Informar sobre la incertidumbre&lt;/li&gt;
&lt;li&gt;Verificar después de los cambios&lt;/li&gt;
&lt;li&gt;No refactorizar código no relacionado solo para demostrar&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto no debilita a la IA. Hace que las acciones de la IA sean más fáciles de revisar y asumir para los humanos.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;problemas-de-alineación&#34;&gt;Problemas de Alineación
&lt;/h2&gt;&lt;p&gt;El primer tipo de fallo de codificación de IA suele ser un fallo de alineación.&lt;/p&gt;
&lt;p&gt;El usuario quiere un cambio muy específico, pero el Agent puede entenderlo como una refactorización más amplia. El usuario solo quiere que se arregle un bug, pero cambia estilos en el proceso. El usuario quiere que se siga la arquitectura existente, pero introduce un patrón nuevo.&lt;/p&gt;
&lt;p&gt;Las habilidades pueden ayudar al Agent a hacer varias cosas al comienzo de una tarea:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Restatear el objetivo&lt;/li&gt;
&lt;li&gt;Identificar el alcance del impacto&lt;/li&gt;
&lt;li&gt;Reconocer los patrones de implementación existentes&lt;/li&gt;
&lt;li&gt;Proporcionar un plan&lt;/li&gt;
&lt;li&gt;Aclarar lo que no se hará&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Este paso es como una autocomprobación del ingeniero antes de comenzar el trabajo.&lt;/p&gt;
&lt;p&gt;Si el Agent no puede declarar claramente los límites de la tarea y comienza a escribir código directamente, es fácil que la tarea se desvíe.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;problemas-del-bucle-de-retroalimentación&#34;&gt;Problemas del Bucle de Retroalimentación
&lt;/h2&gt;&lt;p&gt;La IA no debe escribir código únicamente mediante la generación one-shot.&lt;/p&gt;
&lt;p&gt;En el desarrollo real, los bucles de retroalimentación son importantes:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Cambiar una pequeña parte&lt;/li&gt;
&lt;li&gt;Ejecutar pruebas o type checks&lt;/li&gt;
&lt;li&gt;Leer los errores&lt;/li&gt;
&lt;li&gt;Corregirlos&lt;/li&gt;
&lt;li&gt;Verificar de nuevo&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Muchos Agents fallan porque omiten la retroalimentación intermedia. Cambian muchas cosas a la vez y luego resumen por intuición que &amp;ldquo;it should work&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Las Skills pueden hacer explícito el bucle de retroalimentación. Por ejemplo, pueden exigir al Agent que:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ejecute comprobaciones relevantes después de la modificación&lt;/li&gt;
&lt;li&gt;Lea los mensajes de error primero si las comprobaciones fallan&lt;/li&gt;
&lt;li&gt;Evite cambiar ciegamente archivos no relacionados&lt;/li&gt;
&lt;li&gt;Verifique de nuevo después de cada ronda de correcciones&lt;/li&gt;
&lt;li&gt;Informe los resultados finales de la verificación&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto hace que la codificación con IA se parezca más al depurado (debugging) real y menos a la escritura one-shot.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;problemas-de-control-de-arquitectura&#34;&gt;Problemas de Control de Arquitectura
&lt;/h2&gt;&lt;p&gt;AI es bueno generando abstracciones, y también bueno sobregenerando abstracciones.&lt;/p&gt;
&lt;p&gt;Para completar un requisito pequeño, puede crear una capa de servicio (service layer), funciones auxiliares (helper functions), objetos de configuración, &lt;em&gt;type wrappers&lt;/em&gt; y adaptadores, haciendo que el código sea mucho más complejo que el requisito en sí.&lt;/p&gt;
&lt;p&gt;Esto es especialmente peligroso en proyectos grandes. Las abstracciones generadas por AI a menudo parecen profesionales, pero pueden no coincidir con el estilo del proyecto existente y pueden aumentar el costo de mantenimiento.&lt;/p&gt;
&lt;p&gt;Las buenas habilidades recuerdan al Agent que:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Preferir patrones existentes&lt;/li&gt;
&lt;li&gt;Evitar nuevas abstracciones innecesarias&lt;/li&gt;
&lt;li&gt;Evitar la refactorización de áreas no relacionadas&lt;/li&gt;
&lt;li&gt;Ajustar el cambio al tamaño de la tarea&lt;/li&gt;
&lt;li&gt;Comprender el código antes de diseñar la estructura&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto reduce la producción que parece ingenierizada pero que en realidad es más difícil de mantener.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;por-qué-son-importantes-las-habilidades-de-revisión&#34;&gt;Por qué son importantes las habilidades de revisión
&lt;/h2&gt;&lt;p&gt;Escribir código y revisar código son estados diferentes.&lt;/p&gt;
&lt;p&gt;Cuando un Agent escribe código, generalmente tiende a demostrar que su implementación funciona. Puede explicar por qué el cambio debería funcionar, pero no siempre busca activamente riesgos.&lt;/p&gt;
&lt;p&gt;El propósito de una habilidad de revisión es cambiar el rol del Agent:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Encontrar posibles errores (bugs)&lt;/li&gt;
&lt;li&gt;Encontrar regresiones de comportamiento&lt;/li&gt;
&lt;li&gt;Encontrar pruebas faltantes&lt;/li&gt;
&lt;li&gt;Encontrar casos límite (edge cases)&lt;/li&gt;
&lt;li&gt;Encontrar mayor complejidad&lt;/li&gt;
&lt;li&gt;Encontrar inconsistencias con las convenciones existentes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto es importante para la programación con IA porque la IA genera código rápidamente. Sin revisión, los usuarios pueden sentirse fácilmente abrumados por grandes &lt;em&gt;diffs&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Una buena salida de revisión debe listar los problemas primero, no alabar la implementación primero. Debe ayudar al ingeniero a decidir si el cambio se puede fusionar (&lt;em&gt;merged&lt;/em&gt;).&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;diferencia-con-los-archivos-de-reglas-normales&#34;&gt;Diferencia con los archivos de reglas normales
&lt;/h2&gt;&lt;p&gt;Muchas herramientas de codificación de IA admiten reglas, instrucciones o memoria.&lt;/p&gt;
&lt;p&gt;Estos archivos generalmente registran reglas a largo plazo, como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Stack tecnológico del proyecto&lt;/li&gt;
&lt;li&gt;Convenciones de nomenclatura&lt;/li&gt;
&lt;li&gt;Comandos de prueba&lt;/li&gt;
&lt;li&gt;Directorios que no deben modificarse&lt;/li&gt;
&lt;li&gt;Preferencias de estilo de respuesta&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Las habilidades (Skills) se centran más en el flujo de trabajo de la tarea.&lt;/p&gt;
&lt;p&gt;Las reglas le dicen al Agent &amp;ldquo;cómo comportarse a largo plazo&amp;rdquo;, mientras que las habilidades le dicen al Agent &amp;ldquo;cómo ejecutar este tipo de tarea&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Ambos funcionan mejor juntos.&lt;/p&gt;
&lt;p&gt;Por ejemplo, las reglas pueden indicar que el proyecto usa &lt;code&gt;pnpm test&lt;/code&gt;, mientras que una habilidad de revisión requiere verificar la cobertura de pruebas después de los cambios. Entonces el Agent sabe no solo el comando, sino también cuándo usarlo.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;escenarios-adecuados&#34;&gt;Escenarios Adecuados
&lt;/h2&gt;&lt;p&gt;Los repositorios como &lt;code&gt;mattpocock/skills&lt;/code&gt; son adecuados para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Uso frecuente de AI coding tools&lt;/li&gt;
&lt;li&gt;Agents que trabajan en codebases reales&lt;/li&gt;
&lt;li&gt;Reducir ediciones de AI fuera de alcance&lt;/li&gt;
&lt;li&gt;Hacer que el Agent verifique los resultados de forma más activa&lt;/li&gt;
&lt;li&gt;Convertir tus hábitos de ingeniería en skills&lt;/li&gt;
&lt;li&gt;Aprender cómo otros diseñan workflows de agentes&lt;/li&gt;
&lt;li&gt;Convertir prompts temporales en una colección de skills mantenible&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si solo pides ocasionalmente a AI que escriba una función pequeña, quizás no necesites mantener skills.&lt;/p&gt;
&lt;p&gt;Pero si ya tratas a AI como un socio de desarrollo a largo plazo, las skills se vuelven cada vez más importantes. Son como un método de trabajo reutilizable para el Agent.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;cómo-aprender-de-este-repositorio&#34;&gt;Cómo aprender de este repositorio
&lt;/h2&gt;&lt;p&gt;Incluso si no utilizas cada habilidad directamente, puedes aprender varias cosas de este repositorio.&lt;/p&gt;
&lt;p&gt;Primero, anota los modos de fallo.&lt;/p&gt;
&lt;p&gt;No solo te quejes cuando la AI comete un error. Convierte los patrones que a menudo se equivoca en reglas, para que una habilidad pueda evitarlos la próxima vez.&lt;/p&gt;
&lt;p&gt;Segundo, mantén las habilidades cortas.&lt;/p&gt;
&lt;p&gt;Una habilidad debe resolver un problema claro. Cuanto más corta sea, más fácil será llamarla correctamente y mantenerla.&lt;/p&gt;
&lt;p&gt;Tercero, haz que el formato de salida sea claro.&lt;/p&gt;
&lt;p&gt;Si quieres que el Agent enumere un plan primero, ejecute después y resuma los resultados de verificación al final, escribe esa estructura claramente. Los requisitos vagos suelen producir resultados vagos.&lt;/p&gt;
&lt;p&gt;Cuarto, conserva puntos de traspaso humano.&lt;/p&gt;
&lt;p&gt;Una buena habilidad no debe permitir que la AI funcione sola durante demasiado tiempo. Cuando haya incertidumbre, un alcance de impacto expandido, pruebas fallidas o una decisión de producto, debe detenerse y explicar la situación.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;notas-de-uso&#34;&gt;Notas de uso
&lt;/h2&gt;&lt;p&gt;Primero, no conviertas todo en habilidades (skills).&lt;/p&gt;
&lt;p&gt;Demasiadas habilidades hacen que el sistema sea complejo, y el Agent podría no saber cuál elegir. Empieza con los escenarios más frecuentes y más problemáticos.&lt;/p&gt;
&lt;p&gt;Segundo, las habilidades necesitan iteración.&lt;/p&gt;
&lt;p&gt;La primera versión de una habilidad puede no ser buena. Observa cómo la IA la ejecuta realmente, luego elimina, añade y reescribe gradualmente.&lt;/p&gt;
&lt;p&gt;Tercero, no permitas que las habilidades reemplacen el juicio de la ingeniería.&lt;/p&gt;
&lt;p&gt;Las habilidades pueden mejorar el flujo de trabajo, pero no pueden garantizar una implementación correcta. Las pruebas (tests), la revisión, las comprobaciones de compilación (build checks) y el juicio humano siguen siendo importantes.&lt;/p&gt;
&lt;p&gt;Cuarto, presta atención a las diferencias entre los Agents.&lt;/p&gt;
&lt;p&gt;Claude Code, Codex, Cursor y Copilot soportan las instrucciones, las habilidades y las reglas de manera diferente. La misma idea se puede reutilizar, pero el formato específico debe ajustarse para cada herramienta.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;referencia&#34;&gt;Referencia
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/mattpocock/skills&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;mattpocock/skills&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;pensamiento-final&#34;&gt;Pensamiento Final
&lt;/h2&gt;&lt;p&gt;Lo que hace que &lt;code&gt;mattpocock/skills&lt;/code&gt; merezca la pena es no un único prompt mágico dentro de él, sino la idea práctica de codificación con IA que demuestra: dividir la experiencia de ingeniería en pequeñas habilidades y luego permitir que el Agent las combine según el escenario.&lt;/p&gt;
&lt;p&gt;A medida que la codificación con IA pasa de ser una asistencia ocasional a formar parte del flujo de trabajo diario, las habilidades se convierten en herramientas importantes para limitar a los Agents, mantener a los ingenieros en control y mejorar la calidad de la retroalimentación.
false&lt;/p&gt;
</description>
        </item>
        <item>
        <title>free-claude-code: conectar Claude Code a OpenRouter, DeepSeek y modelos locales mediante un proxy</title>
        <link>https://knightli.com/es/2026/05/01/free-claude-code-anthropic-compatible-proxy/</link>
        <pubDate>Fri, 01 May 2026 03:41:49 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/01/free-claude-code-anthropic-compatible-proxy/</guid>
        <description>&lt;p&gt;&lt;code&gt;free-claude-code&lt;/code&gt; es un Anthropic-compatible proxy para usar con &lt;code&gt;Claude Code&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;La idea no es crackear Claude Code ni ofrecer un servicio Claude oficial gratuito, sino iniciar localmente un proxy compatible con la forma de la API de Anthropic y reenviar las solicitudes de Claude Code a otros backends de modelos. El README menciona backends como NVIDIA NIM, OpenRouter, DeepSeek, LM Studio, llama.cpp y Ollama.&lt;/p&gt;
&lt;p&gt;En pocas palabras, resuelve este problema: te gusta la experiencia de Claude Code en la terminal, pero quieres conectar las peticiones del modelo a otro provider o a un modelo local.&lt;/p&gt;
&lt;h2 id=&#34;qué-problema-resuelve&#34;&gt;Qué problema resuelve
&lt;/h2&gt;&lt;p&gt;La experiencia interactiva de Claude Code es muy adecuada para tareas de desarrollo.&lt;/p&gt;
&lt;p&gt;Puede leer código en la terminal, modificar archivos, ejecutar comandos y avanzar según el contexto del proyecto. El problema es que muchos usuarios no necesariamente quieren usar siempre el mismo backend de modelo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Quieren probar distintos modelos en OpenRouter&lt;/li&gt;
&lt;li&gt;Quieren usar modelos como DeepSeek para reducir costes&lt;/li&gt;
&lt;li&gt;Quieren conectar las peticiones a Ollama local&lt;/li&gt;
&lt;li&gt;Quieren ejecutar modelos locales con LM Studio o llama.cpp&lt;/li&gt;
&lt;li&gt;Quieren unificar en el entorno de desarrollo una entrada de proxy&lt;/li&gt;
&lt;li&gt;Quieren comparar el rendimiento de distintos modelos dentro del flujo de Claude Code&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El posicionamiento de &lt;code&gt;free-claude-code&lt;/code&gt; es añadir una capa de proxy compatible entre Claude Code y estos servicios de modelos.&lt;/p&gt;
&lt;p&gt;Así, Claude Code sigue enviando solicitudes con estilo Anthropic, y el proxy se encarga de adaptarlas a distintos backends.&lt;/p&gt;
&lt;h2 id=&#34;funcionamiento&#34;&gt;Funcionamiento
&lt;/h2&gt;&lt;p&gt;Puede entenderse como tres capas:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;El frontend es Claude Code&lt;/li&gt;
&lt;li&gt;En medio está el proxy &lt;code&gt;free-claude-code&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;El backend es OpenRouter, DeepSeek, un modelo local u otro servicio de modelo&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Claude Code cree que está accediendo a una API Anthropic-compatible.&lt;/p&gt;
&lt;p&gt;El proxy recibe la solicitud, elige el provider objetivo según la configuración, transforma los campos necesarios y devuelve la respuesta a Claude Code.&lt;/p&gt;
&lt;p&gt;La ventaja de esta estructura es que no necesitas modificar Claude Code ni exigir que cada servicio de modelo soporte Claude Code de forma nativa. Mientras el proxy pueda alinear la interfaz, puede conectar más modelos al mismo flujo de trabajo.&lt;/p&gt;
&lt;h2 id=&#34;backends-soportados&#34;&gt;Backends soportados
&lt;/h2&gt;&lt;p&gt;Las direcciones listadas en el README incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;NVIDIA NIM&lt;/li&gt;
&lt;li&gt;OpenRouter&lt;/li&gt;
&lt;li&gt;DeepSeek&lt;/li&gt;
&lt;li&gt;LM Studio&lt;/li&gt;
&lt;li&gt;llama.cpp&lt;/li&gt;
&lt;li&gt;Ollama&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estos backends representan varias formas de uso.&lt;/p&gt;
&lt;p&gt;OpenRouter se parece más a una entrada agregadora de modelos, útil para probar distintos modelos comerciales y open source.&lt;/p&gt;
&lt;p&gt;DeepSeek conviene a quienes se preocupan por capacidad en chino, capacidad de código y coste.&lt;/p&gt;
&lt;p&gt;LM Studio, llama.cpp y Ollama se inclinan hacia la ruta de modelos locales. Sirven para ejecutar modelos en tu propia máquina o en un entorno de intranet, reducir dependencia de APIs externas y facilitar experimentos offline.&lt;/p&gt;
&lt;p&gt;NVIDIA NIM está más orientado a inferencia empresarial y despliegue con GPU.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-un-anthropic-compatible-proxy&#34;&gt;Por qué un Anthropic-compatible proxy
&lt;/h2&gt;&lt;p&gt;Claude Code está diseñado alrededor de la interfaz y los hábitos de modelo de Anthropic.&lt;/p&gt;
&lt;p&gt;Si quieres conectarlo a otros modelos, el problema más directo es que las interfaces no coinciden:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Campos de solicitud distintos&lt;/li&gt;
&lt;li&gt;Nombres de modelo distintos&lt;/li&gt;
&lt;li&gt;Formatos de streaming distintos&lt;/li&gt;
&lt;li&gt;Expresión de tool use distinta&lt;/li&gt;
&lt;li&gt;Formatos de error distintos&lt;/li&gt;
&lt;li&gt;Límites de tokens y contexto distintos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El valor de la capa proxy está ahí.&lt;/p&gt;
&lt;p&gt;Mantiene la interfaz vista por Claude Code con una forma cercana a Anthropic y adapta el backend. Para el usuario, después de configurar el proxy, puede probar distintos modelos dentro del mismo flujo de Claude Code.&lt;/p&gt;
&lt;h2 id=&#34;escenarios-adecuados&#34;&gt;Escenarios adecuados
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;free-claude-code&lt;/code&gt; es adecuado para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Querer usar el flujo de terminal de Claude Code&lt;/li&gt;
&lt;li&gt;Probar modelos no Anthropic dentro de Claude Code&lt;/li&gt;
&lt;li&gt;Reducir costes de llamadas de modelo&lt;/li&gt;
&lt;li&gt;Conectar Claude Code a OpenRouter&lt;/li&gt;
&lt;li&gt;Integrar DeepSeek u otros servicios de modelo compatibles&lt;/li&gt;
&lt;li&gt;Usar Ollama, LM Studio o llama.cpp para ejecutar modelos locales&lt;/li&gt;
&lt;li&gt;Configurar para un equipo una entrada unificada de proxy de modelos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si solo usas Claude Code oficial normalmente y no tienes necesidades especiales de provider, coste o despliegue local, quizá no necesites este tipo de proxy.&lt;/p&gt;
&lt;p&gt;Pero si comparas modelos con frecuencia o quieres que Claude Code acceda a modelos locales y de terceros, este tipo de herramienta es útil.&lt;/p&gt;
&lt;h2 id=&#34;diferencia-frente-a-usar-directamente-openrouter-u-ollama&#34;&gt;Diferencia frente a usar directamente OpenRouter u Ollama
&lt;/h2&gt;&lt;p&gt;Usar directamente OpenRouter, Ollama o LM Studio normalmente significa conversar con el modelo o llamarlo mediante API.&lt;/p&gt;
&lt;p&gt;El punto central de &lt;code&gt;free-claude-code&lt;/code&gt; no es sustituir esos servicios, sino conectarlos al flujo de desarrollo de Claude Code.&lt;/p&gt;
&lt;p&gt;La diferencia está en:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sigues usando la experiencia de terminal de Claude Code&lt;/li&gt;
&lt;li&gt;La IA puede realizar tareas alrededor del repositorio de código&lt;/li&gt;
&lt;li&gt;El backend de modelo puede cambiarse por otro provider&lt;/li&gt;
&lt;li&gt;Los modelos locales también tienen oportunidad de entrar en el flujo de Claude Code&lt;/li&gt;
&lt;li&gt;La configuración se concentra en la capa proxy, no se cambia por separado en cada herramienta&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por eso se parece más a un puente que a un nuevo cliente de chat.&lt;/p&gt;
&lt;h2 id=&#34;precauciones-con-modelos-locales&#34;&gt;Precauciones con modelos locales
&lt;/h2&gt;&lt;p&gt;Conectar Claude Code a modelos locales es atractivo, pero también tiene límites prácticos.&lt;/p&gt;
&lt;p&gt;Primero, diferencia de capacidad del modelo.&lt;/p&gt;
&lt;p&gt;Las tareas de Claude Code no son solo chat; incluyen entender código, planificar cambios, editar archivos y procesar salidas de comandos. Un modelo local pequeño no necesariamente puede completar estas tareas de forma estable.&lt;/p&gt;
&lt;p&gt;Segundo, ventana de contexto.&lt;/p&gt;
&lt;p&gt;Las tareas de código consumen mucho contexto. Si la ventana del modelo es demasiado pequeña, puede no leer archivos completos, perder restricciones o olvidar contexto durante varias rondas.&lt;/p&gt;
&lt;p&gt;Tercero, compatibilidad con tool use.&lt;/p&gt;
&lt;p&gt;El flujo de Claude Code depende de llamadas a herramientas y comportamiento estructurado. Aunque un backend pueda chatear, no necesariamente sigue bien protocolos de tool calling.&lt;/p&gt;
&lt;p&gt;Cuarto, velocidad y hardware.&lt;/p&gt;
&lt;p&gt;La velocidad del modelo local depende de la máquina, el método de cuantización y el tamaño del modelo. Si una tarea de código responde demasiado lento, la experiencia se degrada de forma notable.&lt;/p&gt;
&lt;p&gt;Por eso, los modelos locales son más adecuados para experimentos, tareas de bajo riesgo y escenarios concretos. Para tareas de código realmente complejas, todavía hay que elegir con cuidado según la capacidad del modelo.&lt;/p&gt;
&lt;h2 id=&#34;límites-de-uso&#34;&gt;Límites de uso
&lt;/h2&gt;&lt;p&gt;Este tipo de proyecto puede malinterpretarse fácilmente por el título, así que conviene aclarar los límites.&lt;/p&gt;
&lt;p&gt;Primero, no es cuota gratuita oficial de Claude Code.&lt;/p&gt;
&lt;p&gt;Solo reenvía las solicitudes de Claude Code a otros backends de modelos. Al usar OpenRouter, DeepSeek, NVIDIA NIM u otras APIs, sigues teniendo que cumplir precios, cuotas y condiciones de uso de esos servicios.&lt;/p&gt;
&lt;p&gt;Segundo, no es una herramienta para saltarse autorización.&lt;/p&gt;
&lt;p&gt;Al usar cualquier proxy, hay que cumplir las licencias y términos de Claude Code, del proveedor de modelo y del propio proyecto. No debería entenderse como una forma de evitar restricciones oficiales.&lt;/p&gt;
&lt;p&gt;Tercero, el proxy procesará el contenido de tus solicitudes.&lt;/p&gt;
&lt;p&gt;Código, salida de comandos y contexto del proyecto pueden pasar por el proxy y por el servicio backend. Al desplegarlo, hay que considerar logs, claves, red y límites de privacidad. Para código de empresa o proyectos sensibles, es mejor usar un entorno controlado.&lt;/p&gt;
&lt;p&gt;Cuarto, el rendimiento de distintos modelos puede variar mucho.&lt;/p&gt;
&lt;p&gt;La misma operación de Claude Code puede comportarse de forma completamente distinta al cambiar de modelo. No asumas que todos los modelos pueden sustituir a Claude.&lt;/p&gt;
&lt;h2 id=&#34;relación-con-proxies-como-litellm&#34;&gt;Relación con proxies como LiteLLM
&lt;/h2&gt;&lt;p&gt;Desde el punto de vista de diseño, &lt;code&gt;free-claude-code&lt;/code&gt; pertenece a la categoría de &amp;ldquo;proxies de interfaz compatible&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;El objetivo común de estas herramientas es reducir el acoplamiento entre la aplicación superior y los servicios de modelos inferiores. La aplicación superior solo se enfrenta a una interfaz relativamente unificada, y los providers de abajo pueden cambiarse por configuración.&lt;/p&gt;
&lt;p&gt;Cada proyecto tiene un foco distinto. Algunos se orientan a gateway de modelos general, otros a OpenAI-compatible API, y otros se adaptan específicamente a herramientas como Claude Code.&lt;/p&gt;
&lt;p&gt;Lo interesante de &lt;code&gt;free-claude-code&lt;/code&gt; es que coloca el escenario objetivo directamente en Claude Code, no en un proxy de chat genérico.&lt;/p&gt;
&lt;h2 id=&#34;usuarios-adecuados&#34;&gt;Usuarios adecuados
&lt;/h2&gt;&lt;p&gt;Es más adecuado para usuarios con cierta capacidad de configuración:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Conocen Claude Code&lt;/li&gt;
&lt;li&gt;Saben configurar API key y provider de modelos&lt;/li&gt;
&lt;li&gt;Entienden cómo arrancar un proxy y variables de entorno&lt;/li&gt;
&lt;li&gt;Pueden diagnosticar problemas de red, puertos, nombres de modelo y streaming&lt;/li&gt;
&lt;li&gt;Quieren comparar el rendimiento de distintos modelos en tareas de código&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si solo quieres algo listo para usar, la configuración oficial suele ser más tranquila.&lt;/p&gt;
&lt;p&gt;Si estás dispuesto a montar proxy, cambiar modelos, ajustar parámetros y quieres llevar Claude Code a más entornos de modelo, este proyecto merece estudio.&lt;/p&gt;
&lt;h2 id=&#34;referencia&#34;&gt;Referencia
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Alishahryar1/free-claude-code&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Alishahryar1/free-claude-code&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;una-última-frase&#34;&gt;Una última frase
&lt;/h2&gt;&lt;p&gt;El valor de &lt;code&gt;free-claude-code&lt;/code&gt; no está en la palabra &amp;ldquo;free&amp;rdquo;, sino en construir un puente entre Claude Code y más backends de modelos.&lt;/p&gt;
&lt;p&gt;Cuando quieres conservar la experiencia de desarrollo de Claude Code y al mismo tiempo probar OpenRouter, DeepSeek, modelos locales o servicios de inferencia empresariales, este tipo de Anthropic-compatible proxy tiene sentido.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Compound Engineering Plugin: convertir la programación con IA en un ciclo de planificación, ejecución y revisión</title>
        <link>https://knightli.com/es/2026/05/01/compound-engineering-plugin-ai-coding-workflow/</link>
        <pubDate>Fri, 01 May 2026 03:15:39 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/01/compound-engineering-plugin-ai-coding-workflow/</guid>
        <description>&lt;p&gt;&lt;code&gt;Compound Engineering Plugin&lt;/code&gt; es un plugin de flujo de trabajo de programación con IA publicado como open source por Every Inc.&lt;/p&gt;
&lt;p&gt;No se centra en &amp;ldquo;hacer que la IA escriba un fragmento de código más rápido&amp;rdquo;, sino en colocar la programación con IA dentro de un ciclo más parecido al de un equipo de ingeniería: primero planificar, luego implementar, después revisar y finalmente conservar la experiencia aprendida. Para quienes usan con frecuencia herramientas como Claude Code, Codex, Cursor o Copilot, este tipo de plugin resuelve un problema de flujo de trabajo, no solo de prompts.&lt;/p&gt;
&lt;p&gt;Las herramientas de programación con IA son cada vez más fuertes, pero en proyectos reales lo más difícil no suele ser generar código, sino lograr que siga de forma continua las reglas del proyecto, entienda los límites de la tarea, evite repetir errores y acumule contexto durante iteraciones largas.&lt;/p&gt;
&lt;h2 id=&#34;qué-problema-resuelve&#34;&gt;Qué problema resuelve
&lt;/h2&gt;&lt;p&gt;Muchas personas usan asistentes de programación con IA más o menos así:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Describen directamente el requisito&lt;/li&gt;
&lt;li&gt;Dejan que la IA modifique código&lt;/li&gt;
&lt;li&gt;Miran si el resultado puede ejecutarse&lt;/li&gt;
&lt;li&gt;Si hay error, añaden más instrucciones&lt;/li&gt;
&lt;li&gt;En la siguiente tarea vuelven a explicar desde cero&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Este método puede completar tareas pequeñas, pero en proyectos complejos aparecen problemas con facilidad:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El requisito no se divide primero con claridad y la IA empieza a modificar directamente&lt;/li&gt;
&lt;li&gt;Falta una review sistemática después de los cambios&lt;/li&gt;
&lt;li&gt;Las reglas del proyecto dependen de que el usuario las recuerde una y otra vez&lt;/li&gt;
&lt;li&gt;El mismo tipo de error vuelve a aparecer en la siguiente ocasión&lt;/li&gt;
&lt;li&gt;Falta un método de trabajo común entre varias herramientas Agent&lt;/li&gt;
&lt;li&gt;La experiencia no se convierte en reglas reutilizables&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;Compound Engineering Plugin&lt;/code&gt; quiere resolver precisamente estos problemas. Divide la programación con IA en varias etapas, para que el Agent no solo ejecute comandos, sino que participe en un proceso de ingeniería más completo.&lt;/p&gt;
&lt;h2 id=&#34;qué-es-compound-engineering&#34;&gt;Qué es Compound Engineering
&lt;/h2&gt;&lt;p&gt;Según la descripción del README del proyecto, Compound Engineering puede entenderse como un método de desarrollo de software asistido por IA.&lt;/p&gt;
&lt;p&gt;Destaca un ciclo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Planificación: entender primero el objetivo, dividir tareas y confirmar la ruta&lt;/li&gt;
&lt;li&gt;Ejecución: modificar código según el plan, ejecutar comandos y tratar problemas&lt;/li&gt;
&lt;li&gt;Revisión: comprobar calidad de implementación, riesgos y cobertura de pruebas&lt;/li&gt;
&lt;li&gt;Aprendizaje: convertir la experiencia en reglas reutilizables para el futuro&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Este ciclo se parece mucho a la forma de trabajo de un equipo de ingeniería real.&lt;/p&gt;
&lt;p&gt;Un ingeniero fiable no recibe un requisito y empieza a cambiar cosas sin rumbo, ni entrega directamente después de modificar. Primero evalúa el alcance de impacto, luego implementa, después revisa riesgos y resultados de pruebas, y finalmente registra los problemas encontrados. Los AI Agent también necesitan restricciones similares.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-hace-falta-un-plugin&#34;&gt;Por qué hace falta un plugin
&lt;/h2&gt;&lt;p&gt;Un prompt puede decirle a la IA &amp;ldquo;planifica antes de ejecutar&amp;rdquo;, pero el prompt por sí mismo no siempre es estable.&lt;/p&gt;
&lt;p&gt;Cuando la conversación se alarga y el contexto se vuelve complejo, el modelo puede saltarse la planificación, ignorar reglas o volverse demasiado confiado para terminar la tarea. El valor del plugin está en fijar el proceso para que distintos entornos Agent sigan un método parecido.&lt;/p&gt;
&lt;p&gt;Este tipo de plugin suele dividir el flujo de trabajo en comandos, reglas, plantillas o subprocesos. El usuario no necesita escribir cada vez un prompt completo, sino que activa una etapa mediante una entrada fija.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pedir primero al Agent que genere un plan&lt;/li&gt;
&lt;li&gt;Implementar después paso a paso según el plan&lt;/li&gt;
&lt;li&gt;Activar review tras terminar los cambios&lt;/li&gt;
&lt;li&gt;Volver a corregir cuando se encuentren problemas&lt;/li&gt;
&lt;li&gt;Escribir las experiencias valiosas en memoria o reglas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto hace que la programación con IA se parezca más a una &amp;ldquo;colaboración controlada&amp;rdquo; que a una conversación de una sola vez.&lt;/p&gt;
&lt;h2 id=&#34;qué-entornos-agent-soporta&#34;&gt;Qué entornos Agent soporta
&lt;/h2&gt;&lt;p&gt;El README menciona que el proyecto soporta varios entornos de programación con IA, incluyendo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Claude Code&lt;/li&gt;
&lt;li&gt;Codex&lt;/li&gt;
&lt;li&gt;Cursor&lt;/li&gt;
&lt;li&gt;GitHub Copilot&lt;/li&gt;
&lt;li&gt;Amp&lt;/li&gt;
&lt;li&gt;Factory&lt;/li&gt;
&lt;li&gt;Qwen Code&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Este punto es importante.&lt;/p&gt;
&lt;p&gt;Muchas herramientas de flujo de trabajo están atadas a un solo cliente; al cambiar de herramienta, las reglas dejan de reutilizarse. &lt;code&gt;Compound Engineering Plugin&lt;/code&gt; se parece más a un método de ingeniería transversal a distintos Agent, llevando procesos similares de planificación, ejecución y revisión a varias herramientas.&lt;/p&gt;
&lt;p&gt;Si usas varios asistentes de programación con IA al mismo tiempo, este tipo de flujo unificado gana valor. Las herramientas tienen capacidades distintas, pero las normas del proyecto, los hábitos de review y el método de división de tareas deberían ser lo más consistentes posible.&lt;/p&gt;
&lt;h2 id=&#34;para-qué-sirve-la-etapa-de-planificación&#34;&gt;Para qué sirve la etapa de planificación
&lt;/h2&gt;&lt;p&gt;El valor de la planificación es evitar que la IA actúe demasiado pronto.&lt;/p&gt;
&lt;p&gt;En tareas complejas, las preguntas realmente importantes suelen ser:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Qué archivos hay que modificar&lt;/li&gt;
&lt;li&gt;Qué módulos pueden verse afectados&lt;/li&gt;
&lt;li&gt;Cuál es el patrón existente&lt;/li&gt;
&lt;li&gt;Si hay pruebas&lt;/li&gt;
&lt;li&gt;Dónde están los riesgos&lt;/li&gt;
&lt;li&gt;Si hay que leer documentación antes&lt;/li&gt;
&lt;li&gt;Si puede dividirse en pasos más pequeños&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si el Agent no piensa primero estas preguntas y se pone a escribir código directamente, es fácil que produzca una implementación que parece terminada, pero que se aleja de la estructura del proyecto.&lt;/p&gt;
&lt;p&gt;El plan no tiene que ser largo. Un buen plan debería ser corto, concreto y ejecutable. Su objetivo no es fabricar documentación, sino dar límites a la implementación posterior.&lt;/p&gt;
&lt;h2 id=&#34;qué-evitar-en-la-etapa-de-ejecución&#34;&gt;Qué evitar en la etapa de ejecución
&lt;/h2&gt;&lt;p&gt;Cuando la IA ejecuta tareas de código, aparecen con facilidad varios problemas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Refactorizar código no relacionado de paso&lt;/li&gt;
&lt;li&gt;Sobrescribir cambios existentes del usuario&lt;/li&gt;
&lt;li&gt;Cambiar solo el happy path&lt;/li&gt;
&lt;li&gt;Ignorar manejo de errores&lt;/li&gt;
&lt;li&gt;No seguir el estilo existente del proyecto&lt;/li&gt;
&lt;li&gt;No ejecutar validaciones necesarias&lt;/li&gt;
&lt;li&gt;Probar a ciegas tras encontrar errores&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un plugin de flujo de trabajo no puede garantizar que estos problemas desaparezcan por completo, pero puede reducir su frecuencia mediante reglas y restricciones por etapa.&lt;/p&gt;
&lt;p&gt;Por ejemplo, la etapa de ejecución puede pedir al Agent que avance paso a paso según el plan; si descubre algo fuera del alcance previsto, primero explica el riesgo; si modifica módulos compartidos, añade pruebas o al menos ejecuta validaciones relacionadas.&lt;/p&gt;
&lt;p&gt;Esta restricción es especialmente importante en codebases grandes. Cuanto más rápido escribe código la IA, más necesita un proceso que limite su inercia.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-importa-la-etapa-de-review&#34;&gt;Por qué importa la etapa de review
&lt;/h2&gt;&lt;p&gt;Muchos fallos de programación con IA no ocurren porque el código no pueda ejecutarse en absoluto, sino porque los detalles están mal:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No se tratan condiciones límite&lt;/li&gt;
&lt;li&gt;Las actualizaciones de estado no son consistentes&lt;/li&gt;
&lt;li&gt;El contrato de API se cambia en silencio&lt;/li&gt;
&lt;li&gt;Las pruebas no cubren rutas clave&lt;/li&gt;
&lt;li&gt;Los mensajes de error no son claros&lt;/li&gt;
&lt;li&gt;No se mencionan riesgos de rendimiento o seguridad&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La etapa de review cambia al Agent de &amp;ldquo;modo autor&amp;rdquo; a &amp;ldquo;modo revisor&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;El modo autor tiende a justificar su propia implementación; el modo revisor debe buscar activamente defectos, riesgos de regresión y pruebas omitidas. Separar estas dos etapas suele ser más fiable que pedir en una misma respuesta que implemente y se autoevalúe.&lt;/p&gt;
&lt;p&gt;Para el usuario, la salida de review también es más valiosa. Ayuda a decidir rápidamente si este cambio merece integrarse o si necesita otra ronda de trabajo.&lt;/p&gt;
&lt;h2 id=&#34;el-sentido-de-aprendizaje-y-memoria&#34;&gt;El sentido de aprendizaje y memoria
&lt;/h2&gt;&lt;p&gt;La palabra &amp;ldquo;Compound&amp;rdquo; del nombre del proyecto sugiere una idea importante: la experiencia de ingeniería debería crecer con efecto compuesto.&lt;/p&gt;
&lt;p&gt;Si cada vez que la IA comete un error solo lo arregla en ese momento, pero la próxima vez comete el mismo error, la mejora de eficiencia es limitada. Un mejor método es conservar la experiencia útil:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Convenciones de directorios del proyecto&lt;/li&gt;
&lt;li&gt;Métodos de diagnóstico para ciertos errores&lt;/li&gt;
&lt;li&gt;Comandos de prueba y precauciones&lt;/li&gt;
&lt;li&gt;Archivos generados que no deben tocarse&lt;/li&gt;
&lt;li&gt;Preferencias de estilo de código&lt;/li&gt;
&lt;li&gt;Patrones de implementación habituales&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas experiencias pueden convertirse en reglas, memoria, documentación o plantillas. En tareas posteriores, el Agent lee primero ese conocimiento acumulado y luego empieza a trabajar.&lt;/p&gt;
&lt;p&gt;Esa es la clave para que la programación con IA pase de &amp;ldquo;pregunta y respuesta puntual&amp;rdquo; a &amp;ldquo;colaboración de largo plazo&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;escenarios-adecuados&#34;&gt;Escenarios adecuados
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Compound Engineering Plugin&lt;/code&gt; es adecuado para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Usar AI Agent para escribir código de forma continua&lt;/li&gt;
&lt;li&gt;Modificar un mismo proyecto durante muchas rondas&lt;/li&gt;
&lt;li&gt;Querer que la IA planifique antes de implementar&lt;/li&gt;
&lt;li&gt;Querer que después de modificar entre automáticamente en mentalidad de review&lt;/li&gt;
&lt;li&gt;Equipos que quieren unificar el flujo de programación con IA&lt;/li&gt;
&lt;li&gt;Personas que usan a la vez Claude Code, Codex, Cursor y otras herramientas&lt;/li&gt;
&lt;li&gt;Querer convertir experiencia del proyecto en reglas reutilizables&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si solo pides ocasionalmente a la IA que escriba un pequeño script, el flujo completo puede parecer pesado.&lt;/p&gt;
&lt;p&gt;Pero si estás tratando al asistente de programación con IA como un compañero diario de desarrollo, el ciclo de planificación, ejecución, revisión y aprendizaje se vuelve claramente útil.&lt;/p&gt;
&lt;h2 id=&#34;diferencia-frente-a-plantillas-de-prompt-comunes&#34;&gt;Diferencia frente a plantillas de prompt comunes
&lt;/h2&gt;&lt;p&gt;Las plantillas de prompt comunes suelen resolver &amp;ldquo;cómo expresar bien la tarea&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Piensa paso a paso&lt;/li&gt;
&lt;li&gt;Lee primero los archivos&lt;/li&gt;
&lt;li&gt;Mantén el estilo de código&lt;/li&gt;
&lt;li&gt;Ejecuta pruebas&lt;/li&gt;
&lt;li&gt;Resume los cambios&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas indicaciones son útiles, pero siguen dependiendo de que el usuario las use correctamente cada vez.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Compound Engineering Plugin&lt;/code&gt; se sitúa más en la capa de flujo de trabajo. Organiza estos requisitos en un proceso repetible y lo adapta a distintas herramientas Agent. Así, no partes de cero escribiendo prompts cada vez, sino que avanzas dentro de un proceso.&lt;/p&gt;
&lt;p&gt;En pocas palabras, una plantilla de prompt se parece a un recordatorio; un plugin de flujo de trabajo se parece a un sistema.&lt;/p&gt;
&lt;h2 id=&#34;precauciones-al-usarlo&#34;&gt;Precauciones al usarlo
&lt;/h2&gt;&lt;p&gt;Primero, no conviertas el proceso en una carga.&lt;/p&gt;
&lt;p&gt;Las tareas pequeñas no siempre necesitan un plan completo y una review larga. Un buen flujo de trabajo debería ajustarse a la complejidad de la tarea: resolver rápido los problemas simples y usar el ciclo completo en problemas complejos.&lt;/p&gt;
&lt;p&gt;Segundo, la review no sustituye a las pruebas.&lt;/p&gt;
&lt;p&gt;Una review hecha por Agent puede encontrar muchos problemas, pero aun así puede omitir errores reales de ejecución. El juicio final depende de pruebas, type checking, resultados de build y revisión humana.&lt;/p&gt;
&lt;p&gt;Tercero, hay que limpiar reglas de forma continua.&lt;/p&gt;
&lt;p&gt;Acumular experiencia es importante, pero demasiadas reglas también se convierten en ruido. Reglas obsoletas, repetidas o que solo servían para una tarea puntual deberían ordenarse periódicamente.&lt;/p&gt;
&lt;p&gt;Cuarto, consistencia entre herramientas no significa identidad total.&lt;/p&gt;
&lt;p&gt;Claude Code, Codex, Cursor, Copilot y otras herramientas tienen capacidades e interacciones diferentes. Lo que se unifica es el método de trabajo, no necesariamente cada comando ni cada detalle de configuración.&lt;/p&gt;
&lt;h2 id=&#34;qué-equipos-pueden-aprovecharlo&#34;&gt;Qué equipos pueden aprovecharlo
&lt;/h2&gt;&lt;p&gt;Si un equipo ya permite que AI Agent modifique código real, no basta con discutir &amp;ldquo;qué modelo es más fuerte&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Debería preocuparse más por:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si la IA entiende la tarea antes de modificar&lt;/li&gt;
&lt;li&gt;Si respeta límites del proyecto mientras modifica&lt;/li&gt;
&lt;li&gt;Si revisa riesgos activamente después de modificar&lt;/li&gt;
&lt;li&gt;Si aprende de errores históricos&lt;/li&gt;
&lt;li&gt;Si el equipo tiene una norma común de uso de Agent&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ahí está el sentido de proyectos como &lt;code&gt;Compound Engineering Plugin&lt;/code&gt;. Llevan la programación con IA desde una habilidad personal hacia un proceso reutilizable por el equipo.&lt;/p&gt;
&lt;h2 id=&#34;referencia&#34;&gt;Referencia
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EveryInc/compound-engineering-plugin&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;EveryInc/compound-engineering-plugin&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;una-última-frase&#34;&gt;Una última frase
&lt;/h2&gt;&lt;p&gt;Lo que merece atención de &lt;code&gt;Compound Engineering Plugin&lt;/code&gt; no es que añada un comando más de programación con IA, sino que organiza la programación con IA como un proceso de ingeniería que puede mejorar en ciclos.&lt;/p&gt;
&lt;p&gt;Cuando los AI Agent empiezan a participar en proyectos reales, planificación, ejecución, revisión y acumulación de experiencia importan más que generar código una sola vez.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>TradingAgents-CN: un marco multiagente de investigación de trading financiero para usuarios chinos</title>
        <link>https://knightli.com/es/2026/05/01/tradingagents-cn-multi-agent-financial-research-framework/</link>
        <pubDate>Fri, 01 May 2026 03:14:15 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/01/tradingagents-cn-multi-agent-financial-research-framework/</guid>
        <description>&lt;p&gt;&lt;code&gt;TradingAgents-CN&lt;/code&gt; es un marco de investigación de trading financiero multiagente orientado a usuarios chinos.&lt;/p&gt;
&lt;p&gt;Su objetivo no es dar una respuesta simple a &amp;ldquo;qué acción comprar&amp;rdquo;, sino usar varios AI Agent para simular un equipo de análisis financiero más completo: alguien observa los fundamentales, alguien mira el análisis técnico, alguien sigue noticias y sentimiento, y alguien se encarga del riesgo y de la decisión final. Para quienes quieren estudiar LLM + Agent + análisis financiero, este tipo de proyecto es una buena puerta de entrada experimental.&lt;/p&gt;
&lt;p&gt;Primero hay que dejar algo claro: estas herramientas son adecuadas para aprendizaje, investigación y análisis asistido, y no deben tratarse como asesoramiento real de trading. Los mercados financieros tienen riesgo, y las salidas del modelo también pueden ser erróneas, retrasadas o demasiado confiadas.&lt;/p&gt;
&lt;h2 id=&#34;qué-problema-resuelve&#34;&gt;Qué problema resuelve
&lt;/h2&gt;&lt;p&gt;Un modelo de chat común también puede analizar acciones, por supuesto.&lt;/p&gt;
&lt;p&gt;Puedes preguntar directamente: &amp;ldquo;Ayúdame a analizar si cierta empresa se puede comprar.&amp;rdquo; El modelo dará una respuesta que parece completa. Pero ese enfoque tiene varios problemas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La cadena de análisis no es transparente&lt;/li&gt;
&lt;li&gt;Las distintas dimensiones se mezclan con facilidad&lt;/li&gt;
&lt;li&gt;Falta división de roles&lt;/li&gt;
&lt;li&gt;Falta choque entre puntos de vista favorables y contrarios&lt;/li&gt;
&lt;li&gt;Las advertencias de riesgo pueden quedarse en una formalidad&lt;/li&gt;
&lt;li&gt;Es difícil reproducir el mismo proceso de análisis&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La idea de &lt;code&gt;TradingAgents-CN&lt;/code&gt; es dividir el análisis financiero en varios roles, dejar que distintos Agent se encarguen de distintas perspectivas y formar el resultado mediante colaboración, discusión y síntesis.&lt;/p&gt;
&lt;p&gt;Esto se acerca más al proceso real de investigación de inversión. Un juicio de inversión normalmente no mira solo una noticia o un indicador técnico, sino que combina fundamentales de la empresa, entorno de mercado, tendencia de precios, sentimiento de capital, riesgo regulatorio y control de posición.&lt;/p&gt;
&lt;h2 id=&#34;qué-significa-análisis-multiagente&#34;&gt;Qué significa análisis multiagente
&lt;/h2&gt;&lt;p&gt;Multiagente no significa simplemente dejar que varios modelos hablen por turnos.&lt;/p&gt;
&lt;p&gt;Una práctica más valiosa es asignar responsabilidades claras a distintos Agent. Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Agent de análisis de mercado: observa tendencias de mercado, cambios de precio y entorno general&lt;/li&gt;
&lt;li&gt;Agent de análisis fundamental: observa negocio de la empresa, datos financieros y valor de largo plazo&lt;/li&gt;
&lt;li&gt;Agent de análisis de noticias: observa anuncios, noticias, opinión pública e impacto de eventos&lt;/li&gt;
&lt;li&gt;Agent de análisis técnico: observa tendencias, indicadores, soportes, resistencias y señales de trading&lt;/li&gt;
&lt;li&gt;Agent de gestión de riesgo: observa volatilidad, drawdown, posición e incertidumbre&lt;/li&gt;
&lt;li&gt;Agent de decisión: integra distintas opiniones y forma el juicio final&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esta estructura puede reducir el problema de que un único modelo &amp;ldquo;diga todas las conclusiones de una vez&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Cuando distintos roles analizan el mismo objetivo, el sistema puede presentar juicios multidimensionales con más facilidad y también exponer discrepancias. Para quien aprende, esto suele aportar más que leer solo un resumen.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-hace-falta-una-versión-china&#34;&gt;Por qué hace falta una versión china
&lt;/h2&gt;&lt;p&gt;El análisis financiero está muy ligado al entorno lingüístico.&lt;/p&gt;
&lt;p&gt;Las fuentes de información que siguen los usuarios chinos, los hábitos del mercado, los nombres de acciones, los sistemas de negociación, el estilo de las noticias y los términos comunes son distintos de los del entorno inglés. Al usar directamente un marco en inglés, aparecen a menudo varios problemas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Los nombres y códigos de acciones chinas no se procesan con fluidez&lt;/li&gt;
&lt;li&gt;Se mezclan contextos de acciones A, acciones de Hong Kong y acciones estadounidenses&lt;/li&gt;
&lt;li&gt;La comprensión de noticias financieras chinas es inestable&lt;/li&gt;
&lt;li&gt;No es cómodo integrar fuentes de datos nacionales&lt;/li&gt;
&lt;li&gt;El estilo de salida no encaja con los hábitos de lectura de usuarios chinos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El valor de &lt;code&gt;TradingAgents-CN&lt;/code&gt; está en adaptar este proceso de análisis financiero multiagente al usuario chino. Hace más fácil construir, ejecutar y entender todo el flujo experimental de análisis de trading.&lt;/p&gt;
&lt;h2 id=&#34;para-qué-se-puede-usar&#34;&gt;Para qué se puede usar
&lt;/h2&gt;&lt;p&gt;Este proyecto es más adecuado para investigación y análisis asistido que para órdenes automáticas.&lt;/p&gt;
&lt;p&gt;Usos relativamente adecuados:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Aprender cómo colaboran los sistemas multiagente&lt;/li&gt;
&lt;li&gt;Investigar el rendimiento de LLM en análisis financiero&lt;/li&gt;
&lt;li&gt;Organizar información de una acción desde múltiples ángulos&lt;/li&gt;
&lt;li&gt;Comparar diferencias entre modelos en tareas de investigación de inversión&lt;/li&gt;
&lt;li&gt;Construir tu propio prototipo de Agent de análisis financiero&lt;/li&gt;
&lt;li&gt;Revisar información histórica y puntos de riesgo de un activo&lt;/li&gt;
&lt;li&gt;Practicar la división del proceso de investigación de inversión en tareas ejecutables&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si estás estudiando trading cuantitativo, ingeniería financiera, AI Agent o desarrollo de aplicaciones LLM, este tipo de proyecto puede ayudarte a entender la estructura de ingeniería detrás de un &amp;ldquo;asistente de investigación de inversión con IA&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;para-qué-no-es-adecuado&#34;&gt;Para qué no es adecuado
&lt;/h2&gt;&lt;p&gt;No es adecuado tratarlo directamente como una herramienta para ganar dinero de forma segura.&lt;/p&gt;
&lt;p&gt;Especialmente no es adecuado para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Comprar o vender con toda la posición solo según la salida&lt;/li&gt;
&lt;li&gt;Sustituir tu propio juicio de riesgo por la conclusión del modelo&lt;/li&gt;
&lt;li&gt;Tratar predicciones de precio de corto plazo como resultados seguros&lt;/li&gt;
&lt;li&gt;Ignorar costes de transacción, slippage y liquidez&lt;/li&gt;
&lt;li&gt;Conectarlo a una cuenta real sin backtesting&lt;/li&gt;
&lt;li&gt;Sustituir una estrategia de inversión de largo plazo por una conclusión de análisis puntual&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Los LLM son buenos organizando información, generando explicaciones y simulando procesos de razonamiento, pero no poseen de forma natural una capacidad estable para predecir mercados. En los mercados financieros hay mucho ruido, eventos repentinos y juego conductual; la salida del modelo solo puede ser una referencia más.&lt;/p&gt;
&lt;h2 id=&#34;diferencia-frente-a-un-marco-cuantitativo-común&#34;&gt;Diferencia frente a un marco cuantitativo común
&lt;/h2&gt;&lt;p&gt;Los marcos cuantitativos tradicionales prestan más atención a datos, factores, backtesting, optimización de carteras y ejecución de trading.&lt;/p&gt;
&lt;p&gt;Por ejemplo, puedes definir reglas de estrategia:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ruptura de media móvil&lt;/li&gt;
&lt;li&gt;Factor de momentum&lt;/li&gt;
&lt;li&gt;Factor de valor&lt;/li&gt;
&lt;li&gt;Filtro de volatilidad&lt;/li&gt;
&lt;li&gt;Stop loss y take profit&lt;/li&gt;
&lt;li&gt;Gestión de posición&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Después usas datos históricos para hacer backtesting.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;TradingAgents-CN&lt;/code&gt; se inclina más hacia un &amp;ldquo;marco de análisis con agentes&amp;rdquo;. Lo que le importa es cómo hacer que varios LLM Agent colaboren alrededor de una tarea financiera, cómo simular una discusión de research y cómo organizar noticias, fundamentales, análisis técnico y juicio de riesgo.&lt;/p&gt;
&lt;p&gt;No son enfoques que se sustituyan entre sí.&lt;/p&gt;
&lt;p&gt;Un uso más realista es: el sistema cuantitativo tradicional se encarga de reglas verificables y backtesting; el sistema de Agent se encarga de organización de información, generación de informes, comparación de opiniones y apoyo a la decisión. Que finalmente pueda entrar en trading real depende todavía de backtesting riguroso, control de riesgo y revisión humana.&lt;/p&gt;
&lt;h2 id=&#34;diferencia-frente-a-preguntar-directamente-a-chatgpt&#34;&gt;Diferencia frente a preguntar directamente a ChatGPT
&lt;/h2&gt;&lt;p&gt;Preguntar directamente al modelo tiene la menor barrera de entrada, pero el proceso es muy laxo.&lt;/p&gt;
&lt;p&gt;Preguntas una vez y responde una vez. Si cambias la forma de preguntar, la conclusión puede cambiar. Es difícil garantizar que analice siempre desde las mismas dimensiones, y también es difícil hacer que interprete de forma estable varios roles que se equilibran entre sí.&lt;/p&gt;
&lt;p&gt;El valor de &lt;code&gt;TradingAgents-CN&lt;/code&gt; es estructurar el flujo de análisis:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Roles más claros&lt;/li&gt;
&lt;li&gt;Pasos más reproducibles&lt;/li&gt;
&lt;li&gt;Fuentes de información más fáciles de organizar&lt;/li&gt;
&lt;li&gt;Choque de opiniones más natural&lt;/li&gt;
&lt;li&gt;Revisión de riesgo más fácil de separar&lt;/li&gt;
&lt;li&gt;Salida más parecida al resultado de un proceso de investigación de inversión&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto es útil para aprendizaje e investigación. Puedes observar cómo distintos Agent influyen en la conclusión final, y también sustituir modelos, ajustar prompts o modificar la división de roles para comparar cambios en los resultados.&lt;/p&gt;
&lt;h2 id=&#34;riesgos-a-vigilar-al-usarlo&#34;&gt;Riesgos a vigilar al usarlo
&lt;/h2&gt;&lt;p&gt;Primero, calidad de datos.&lt;/p&gt;
&lt;p&gt;El análisis financiero depende mucho de los datos. Si datos de mercado, reportes financieros, noticias o anuncios son incompletos o no están actualizados, por muy fluido que sea el análisis del Agent, puede estar construido sobre una base equivocada.&lt;/p&gt;
&lt;p&gt;Segundo, alucinaciones del modelo.&lt;/p&gt;
&lt;p&gt;Un LLM puede inventar hechos inexistentes, malinterpretar el significado de los datos o tomar información antigua como nueva. Cuando se trata de acciones concretas, hay que volver a la fuente de datos para verificar.&lt;/p&gt;
&lt;p&gt;Tercero, sobreexplicación.&lt;/p&gt;
&lt;p&gt;El modelo es muy bueno dando explicaciones &amp;ldquo;que parecen razonables&amp;rdquo;, pero los cambios de precio del mercado no necesariamente vienen de las razones que enumera. No confundas explicación posterior con prueba causal.&lt;/p&gt;
&lt;p&gt;Cuarto, brecha entre backtesting y trading real.&lt;/p&gt;
&lt;p&gt;Incluso si una estrategia se comporta bien con datos históricos, en trading real seguirá enfrentándose a slippage, comisiones, liquidez, suspensiones, límites de subida/bajada y mercados extremos.&lt;/p&gt;
&lt;p&gt;Quinto, licencia y límites comerciales.&lt;/p&gt;
&lt;p&gt;El README menciona que el proyecto usa una licencia mixta. Las condiciones para aprendizaje personal, investigación y uso comercial pueden ser distintas. Si planeas incorporarlo en un producto o servicio comercial, primero lee con cuidado la licencia del proyecto.&lt;/p&gt;
&lt;h2 id=&#34;a-quién-le-conviene-estudiarlo&#34;&gt;A quién le conviene estudiarlo
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;TradingAgents-CN&lt;/code&gt; es adecuado para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Desarrolladores que quieren aprender arquitectura de AI Agent&lt;/li&gt;
&lt;li&gt;Personas que quieren estudiar la capacidad de LLM en análisis financiero&lt;/li&gt;
&lt;li&gt;Usuarios de trading cuantitativo que quieren incorporar análisis de lenguaje natural&lt;/li&gt;
&lt;li&gt;Equipos que quieren construir herramientas auxiliares de investigación de inversión&lt;/li&gt;
&lt;li&gt;Personas interesadas en cómo la colaboración multirol afecta decisiones&lt;/li&gt;
&lt;li&gt;Usuarios que quieren experimentar con trading Agent en entorno chino&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si tu objetivo es obtener una simple sugerencia de compra o venta, este proyecto quizá no sea la mejor forma de abrirlo. Lo que más merece atención es el proceso, los roles, la colaboración y el control de riesgo, no la conclusión de una salida puntual.&lt;/p&gt;
&lt;h2 id=&#34;cómo-puede-ampliarse&#34;&gt;Cómo puede ampliarse
&lt;/h2&gt;&lt;p&gt;Este tipo de marco tiene muchas direcciones de expansión:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Integrar más fuentes de datos fiables&lt;/li&gt;
&lt;li&gt;Añadir soporte para modelos locales&lt;/li&gt;
&lt;li&gt;Añadir módulo de backtesting&lt;/li&gt;
&lt;li&gt;Afinar reglas distintas para acciones A, Hong Kong y Estados Unidos&lt;/li&gt;
&lt;li&gt;Añadir Agent de análisis sectorial&lt;/li&gt;
&lt;li&gt;Añadir gestión de cartera y control de posición&lt;/li&gt;
&lt;li&gt;Reforzar citas de informes y trazabilidad de datos&lt;/li&gt;
&lt;li&gt;Combinar conclusiones de Agent con señales cuantitativas tradicionales&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un sistema financiero de IA realmente valioso normalmente no deja que el modelo decida todo por sí solo, sino que lo inserta en un proceso verificable, trazable y controlado por riesgo.&lt;/p&gt;
&lt;h2 id=&#34;referencia&#34;&gt;Referencia
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/hsliuping/TradingAgents-CN&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;hsliuping/TradingAgents-CN&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;una-última-frase&#34;&gt;Una última frase
&lt;/h2&gt;&lt;p&gt;Lo que merece atención de &lt;code&gt;TradingAgents-CN&lt;/code&gt; no es si puede predecir la siguiente vela K, sino que divide el análisis financiero en un proceso de colaboración multiagente.&lt;/p&gt;
&lt;p&gt;Tratarlo como herramienta de aprendizaje e investigación es más razonable que tratarlo como una máquina automática de ganar dinero.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>qmd: Búsqueda de documentos de rebajas locales para agentes de IA</title>
        <link>https://knightli.com/es/2026/05/01/qmd-markdown-search-for-ai-agents/</link>
        <pubDate>Fri, 01 May 2026 03:12:57 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/01/qmd-markdown-search-for-ai-agents/</guid>
        <description>&lt;p&gt;&lt;code&gt;qmd&lt;/code&gt; es una herramienta de búsqueda de documentos Markdown locales, con los agentes AI como sus principales usuarios objetivo.&lt;/p&gt;
&lt;p&gt;Resuelve un problema específico: cuando un proyecto contiene muchos documentos &lt;code&gt;.md&lt;/code&gt;, los asistentes de codificación de IA a menudo no saben qué archivo leer, qué sección citar o qué instrucciones están actualizadas. grep de texto completo puede encontrar palabras clave, pero no comprende bien el significado. Poner toda la documentación en contexto desperdicia espacio en la ventana e introduce fácilmente contenido irrelevante.&lt;/p&gt;
&lt;p&gt;La idea detrás de &lt;code&gt;qmd&lt;/code&gt; es indexar primero los documentos de Markdown y luego devolver los fragmentos más relevantes a través de una interfaz de búsqueda para que los utilice la IA. Puede usarse como una herramienta de línea de comandos, integrarse a través de un SDK o exponerse como un servidor MCP para clientes que admiten MCP.&lt;/p&gt;
&lt;h2 id=&#34;qué-problema-resuelve&#34;&gt;¿Qué problema resuelve?
&lt;/h2&gt;&lt;p&gt;Los proyectos reales suelen tener más de uno o dos archivos README.&lt;/p&gt;
&lt;p&gt;Es posible que tengas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Notas de arquitectura&lt;/li&gt;
&lt;li&gt;Documentación API&lt;/li&gt;
&lt;li&gt;Convenciones de desarrollo&lt;/li&gt;
&lt;li&gt;Procedimientos de implementación&lt;/li&gt;
&lt;li&gt;Registros de decisiones de arquitectura.&lt;/li&gt;
&lt;li&gt;Notas de solución de problemas&lt;/li&gt;
&lt;li&gt;Documentos de requisitos&lt;/li&gt;
&lt;li&gt;Instrucciones de uso de IA&lt;/li&gt;
&lt;li&gt;Notas y recordatorios de la cadena de herramientas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Los humanos pueden buscar documentos a través de directorios, pero los agentes de IA necesitan un punto de entrada de recuperación claro. En caso contrario, podrán:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Leer el documento equivocado&lt;/li&gt;
&lt;li&gt;Falta de restricciones clave&lt;/li&gt;
&lt;li&gt;Utilice instrucciones obsoletas&lt;/li&gt;
&lt;li&gt;Poner el contenido irrelevante en contexto.&lt;/li&gt;
&lt;li&gt;Inventar reglas en respuestas basadas en la experiencia.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Aquí es donde &amp;ldquo;qmd&amp;rdquo; resulta útil. Convierte los documentos locales de Markdown en una fuente de conocimiento con capacidad de búsqueda, de modo que la IA puede buscar primero cuando necesita contexto y luego responder o actuar en función de fragmentos coincidentes.&lt;/p&gt;
&lt;h2 id=&#34;enfoque-de-búsqueda&#34;&gt;Enfoque de búsqueda
&lt;/h2&gt;&lt;p&gt;El archivo README dice que &amp;ldquo;qmd&amp;rdquo; combina varios métodos de recuperación:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Búsqueda de palabras clave BM25&lt;/li&gt;
&lt;li&gt;Búsqueda de vectores&lt;/li&gt;
&lt;li&gt;Reclasificación de LLM&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;BM25 es bueno para palabras clave claras. Si busca el nombre de una función, una clave de configuración, un código de error o un nombre de archivo, suele ser directo y eficaz.&lt;/p&gt;
&lt;p&gt;La búsqueda de vectores es mejor para cuestiones semánticas. Por ejemplo, si pregunta &amp;ldquo;¿cómo maneja este proyecto la validación de permisos?&amp;rdquo;, es posible que la documentación no contenga esa frase exacta, pero puede contener descripciones relacionadas sobre autenticación, control de acceso y comprobaciones de roles.&lt;/p&gt;
&lt;p&gt;La reclasificación de LLM se utiliza para reordenar los resultados de los candidatos. Los dos primeros pasos encuentran contenido potencialmente relevante y luego el modelo juzga qué fragmentos coinciden mejor con la pregunta actual.&lt;/p&gt;
&lt;p&gt;Esta combinación es más adecuada para los agentes de IA que la simple búsqueda de palabras clave, porque las preguntas de los agentes suelen ser intenciones de tareas en lugar de palabras clave fijas.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-rebajas&#34;&gt;¿Por qué rebajas?
&lt;/h2&gt;&lt;p&gt;Markdown es el formato de documentación más común en proyectos de desarrollo.&lt;/p&gt;
&lt;p&gt;Es lo suficientemente simple como para almacenarlo en Git y lo suficientemente estructurado como para incluir encabezados, listas, bloques de código, enlaces y tablas. Para la IA, Markdown también es más fácil de analizar que los archivos PDF, las instantáneas web o las capturas de pantalla.&lt;/p&gt;
&lt;p&gt;Debido a que &lt;code&gt;qmd&lt;/code&gt; se centra en Markdown, puede procesar la documentación del desarrollador de forma más directa:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dividir el contenido por títulos y párrafos.&lt;/li&gt;
&lt;li&gt;Preservar bloques de código&lt;/li&gt;
&lt;li&gt;Preservar rutas de documentos&lt;/li&gt;
&lt;li&gt;Devolver fragmentos adecuados para citar&lt;/li&gt;
&lt;li&gt;Informar al Agente de qué documento proviene una respuesta.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto es más estable que pedirle a la IA que escanee aleatoriamente un repositorio y ahorra más contexto que poner todos los documentos en un mensaje a la vez.&lt;/p&gt;
&lt;h2 id=&#34;tres-puntos-de-entrada&#34;&gt;Tres puntos de entrada
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;qmd&lt;/code&gt; proporciona tres puntos de entrada: CLI, SDK y servidor MCP.&lt;/p&gt;
&lt;h3 id=&#34;1-cli&#34;&gt;1. CLI
&lt;/h3&gt;&lt;p&gt;La CLI es adecuada para uso directo de terminal y para scripts.&lt;/p&gt;
&lt;p&gt;Puede indexar un directorio de documentación y luego buscar contenido relacionado con comandos. Para los desarrolladores, la CLI es la forma más sencilla de validar la herramienta: primero vea si puede encontrar los documentos correctos y luego considere integrarla en flujos de trabajo más complejos.&lt;/p&gt;
&lt;p&gt;Este tipo de herramienta es útil dentro de proyectos locales. Por ejemplo, antes de cambiar el código puedes buscar documentos de diseño; antes de depurar, busque notas de solución de problemas; Antes de escribir una API, busque las convenciones de la API.&lt;/p&gt;
&lt;h3 id=&#34;2-sdk&#34;&gt;2. SDK
&lt;/h3&gt;&lt;p&gt;El SDK es adecuado para integrar &lt;code&gt;qmd&lt;/code&gt; en sus propias herramientas.&lt;/p&gt;
&lt;p&gt;Si está creando un asistente de desarrollo interno, un sistema de preguntas y respuestas sobre documentación, un robot de revisión de código o una base de conocimiento del proyecto, puede llamar a la capacidad de búsqueda a través del SDK en lugar de pedir a los usuarios que ejecuten comandos directamente.&lt;/p&gt;
&lt;p&gt;El SDK brinda más control sobre:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Buscar directorios&lt;/li&gt;
&lt;li&gt;Consultar contenido&lt;/li&gt;
&lt;li&gt;Número de resultados devueltos&lt;/li&gt;
&lt;li&gt;Formato de resultado&lt;/li&gt;
&lt;li&gt;Si se deben pasar los resultados a un modelo para su resumen.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto se adapta a escenarios que necesitan una integración más profunda.&lt;/p&gt;
&lt;h3 id=&#34;3-servidor-mcp&#34;&gt;3. Servidor MCP
&lt;/h3&gt;&lt;p&gt;MCP es el punto de entrada más valioso para los agentes de IA.&lt;/p&gt;
&lt;p&gt;A través del servidor MCP, los clientes que admiten MCP pueden llamar a &lt;code&gt;qmd&lt;/code&gt; como herramienta de búsqueda de documentos. Esto permite a un agente buscar documentos de Markdown locales antes de actuar, en lugar de adivinar las reglas del proyecto.&lt;/p&gt;
&lt;p&gt;Un flujo de trabajo típico podría ser:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;El usuario le pide a la IA que modifique una función.&lt;/li&gt;
&lt;li&gt;AI llama a &amp;ldquo;qmd&amp;rdquo; para buscar documentos de diseño relacionados&lt;/li&gt;
&lt;li&gt;&lt;code&gt;qmd&lt;/code&gt; devuelve los fragmentos de Markdown más relevantes&lt;/li&gt;
&lt;li&gt;La IA modifica el código en función de esas restricciones de documentos.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Esto es más natural que pegar manualmente todas las reglas en una nueva sesión y se adapta mejor a proyectos a largo plazo.&lt;/p&gt;
&lt;h2 id=&#34;escenarios-adecuados&#34;&gt;Escenarios adecuados
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;qmd&lt;/code&gt; es adecuado para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Proyectos con muchos documentos Markdown.&lt;/li&gt;
&lt;li&gt;Agentes de IA que a menudo necesitan buscar reglas del proyecto.&lt;/li&gt;
&lt;li&gt;Equipos que quieran respuestas de IA para citar documentos locales.&lt;/li&gt;
&lt;li&gt;Documentación distribuida en varios directorios.&lt;/li&gt;
&lt;li&gt;Reutilizar la misma capacidad de recuperación en CLI, SDK y MCP&lt;/li&gt;
&lt;li&gt;Reducir la tendencia de los asistentes de codificación de IA a adivinar las convenciones del proyecto.&lt;/li&gt;
&lt;li&gt;Conexión de bases de conocimientos locales a Claude Desktop, Claude Code u otros clientes MCP&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si su proyecto solo tiene un README corto, pedirle directamente a AI que lea el archivo es suficiente.&lt;/p&gt;
&lt;p&gt;Pero si la documentación ha crecido hasta llegar a docenas o cientos de archivos, o si desea que el Agente busque documentos antes de actuar, este tipo de herramienta de indexación adquiere sentido.&lt;/p&gt;
&lt;h2 id=&#34;diferencia-de-grep&#34;&gt;Diferencia de grep
&lt;/h2&gt;&lt;p&gt;Herramientas como &lt;code&gt;grep&lt;/code&gt; y &lt;code&gt;rg&lt;/code&gt; son excelentes para una búsqueda exacta.&lt;/p&gt;
&lt;p&gt;Si sabe que necesita &lt;code&gt;DATABASE_URL&lt;/code&gt;, &lt;code&gt;authMiddleware&lt;/code&gt;, &lt;code&gt;404&lt;/code&gt; o &lt;code&gt;docker compose&lt;/code&gt;, la búsqueda de palabras clave suele ser la más rápida.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;qmd&lt;/code&gt; es mejor cuando no sabes las palabras exactas.&lt;/p&gt;
&lt;p&gt;Por ejemplo, puedes preguntar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;¿Cuál es el proceso de lanzamiento de este proyecto?&lt;/li&gt;
&lt;li&gt;¿Qué convenciones se aplican al agregar una nueva API?&lt;/li&gt;
&lt;li&gt;¿Se documentó antes la estrategia de almacenamiento en caché?&lt;/li&gt;
&lt;li&gt;¿Qué documentos debería leer la IA antes de cambiar el código?&lt;/li&gt;
&lt;li&gt;¿Dónde está la base de diseño de un módulo?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas preguntas suelen requerir una recuperación semántica en lugar de hacer coincidir una palabra. La combinación BM25 + vector + reclasificación en &lt;code&gt;qmd&lt;/code&gt; tiene como objetivo hacer que estas preguntas encuentren el contexto correcto más fácilmente.&lt;/p&gt;
&lt;h2 id=&#34;relación-con-rag&#34;&gt;Relación con RAG
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;qmd&lt;/code&gt; puede verse como un componente RAG liviano para documentos Markdown.
No intenta crear un sistema completo de preguntas y respuestas para usted. Se centra en un paso: encontrar fragmentos de documentos relevantes. La forma en que se utilizan esos fragmentos posteriormente puede ser manejada por CLI, SDK, un cliente MCP o su propio flujo de trabajo del Agente.&lt;/p&gt;
&lt;p&gt;Este posicionamiento es práctico. Muchos proyectos no necesitan un gran sistema de base de conocimientos; solo necesitan IA para buscar documentos locales con mayor precisión y rapidez, y luego devolver los resultados a la tarea actual.&lt;/p&gt;
&lt;h2 id=&#34;notas-de-uso&#34;&gt;Notas de uso
&lt;/h2&gt;&lt;p&gt;En primer lugar, la calidad de la documentación sigue siendo importante.&lt;/p&gt;
&lt;p&gt;Una herramienta de recuperación sólo puede encontrar contenido existente. Si los documentos están desactualizados, duplicados o contradictorios, es posible que la IA aún reciba un contexto incorrecto. Antes de conectar &lt;code&gt;qmd&lt;/code&gt; a un Agente, primero limpie los documentos clave.&lt;/p&gt;
&lt;p&gt;En segundo lugar, no amplíe demasiado el alcance del índice.&lt;/p&gt;
&lt;p&gt;Indexar cada archivo Markdown en el repositorio no siempre es mejor. La documentación de dependencia, las notas temporales y los borradores de soluciones antiguos pueden contaminar los resultados. Un mejor enfoque es definir qué directorios son fuentes de documentación confiables.&lt;/p&gt;
&lt;p&gt;En tercer lugar, los resultados de la búsqueda deben preservar las fuentes.&lt;/p&gt;
&lt;p&gt;Cuando la IA utiliza fragmentos de documentos, debe saber de qué archivo y sección provienen. Esto hace que la revisión humana sea rastreable y reduce el riesgo de que &amp;ldquo;esto parezca la conclusión de un documento, pero es sólo un resumen modelo&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Cuarto, no reemplacen completamente el juicio humano.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;qmd&lt;/code&gt; puede mejorar la calidad de la recuperación del contexto, pero no reemplaza la fuente de la verdad. Los cambios importantes aún requieren código actualizado, resultados de pruebas y los requisitos más recientes.&lt;/p&gt;
&lt;h2 id=&#34;equipos-adecuados&#34;&gt;Equipos adecuados
&lt;/h2&gt;&lt;p&gt;Si su equipo ya ha comenzado a incluir agentes de IA en los flujos de trabajo de desarrollo diarios, herramientas como &lt;code&gt;qmd&lt;/code&gt; pueden resultar valiosas.&lt;/p&gt;
&lt;p&gt;Están especialmente indicados para equipos que:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Escribir mucha documentación.&lt;/li&gt;
&lt;li&gt;Tener una larga historia de proyectos.&lt;/li&gt;
&lt;li&gt;Necesita gente nueva e inteligencia artificial para comprender rápidamente el contexto.&lt;/li&gt;
&lt;li&gt;Mantener registros de decisiones de arquitectura.&lt;/li&gt;
&lt;li&gt;Tener muchos documentos de convención de Markdown.&lt;/li&gt;
&lt;li&gt;Quiero que AI verifique las reglas antes de modificar el código.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Su objetivo no es hacer que la IA lo sepa todo. Es hacer que la IA adivine menos y busque más.&lt;/p&gt;
&lt;h2 id=&#34;referencia&#34;&gt;Referencia
&lt;/h2&gt;&lt;p&gt;-&lt;a class=&#34;link&#34; href=&#34;https://github.com/tobi/qmd&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;tobi/qmd&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;pensamiento-final&#34;&gt;Pensamiento final
&lt;/h2&gt;&lt;p&gt;El valor de &lt;code&gt;qmd&lt;/code&gt; es que convierte los documentos Markdown locales en un punto de entrada de búsqueda al que los agentes de IA pueden llamar de manera confiable.&lt;/p&gt;
&lt;p&gt;Cuando la documentación del proyecto pasa de “instrucciones para humanos” a “una fuente de contexto que pueden buscar tanto humanos como IA”, los asistentes de codificación de IA pueden seguir las reglas del proyecto más fácilmente.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Dominio de los ganchos de Claude Code: una introducción a los 13 eventos del ciclo de vida de los ganchos y al control de automatización</title>
        <link>https://knightli.com/es/2026/05/01/claude-code-hooks-mastery-guide/</link>
        <pubDate>Fri, 01 May 2026 03:11:27 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/01/claude-code-hooks-mastery-guide/</guid>
        <description>&lt;p&gt;&lt;code&gt;claude-code-hooks-mastery&lt;/code&gt; es un proyecto de aprendizaje centrado en &lt;code&gt;Claude Code Hooks&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;No es sólo una colección de guiones dispersos. Explica el ciclo de vida del gancho de Claude Code, los métodos de configuración, los patrones de script y los escenarios de automatización comunes en un solo lugar. Para las personas que quieren que Claude Code sea más controlable y más parecido a un asistente de ingeniería, vale la pena leer este tipo de material.&lt;/p&gt;
&lt;p&gt;Claude Code ya puede leer código, editar archivos y ejecutar comandos de forma predeterminada. Pero si desea que verifique permisos automáticamente, bloquee operaciones riesgosas, inyecte reglas de proyecto, ejecute pruebas o le recuerde las convenciones del equipo en momentos específicos, las instrucciones de chat por sí solas no son lo suficientemente estables. El valor de los ganchos es que convierten las “reglas que necesito recordarle a la IA cada vez” en un flujo de trabajo ejecutable.&lt;/p&gt;
&lt;h2 id=&#34;qué-problemas-resuelven-los-ganchos&#34;&gt;Qué problemas resuelven los ganchos
&lt;/h2&gt;&lt;p&gt;Después de usar Claude Code por un tiempo, los puntos débiles comunes incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cada nueva sesión necesita repetir las mismas reglas del proyecto.&lt;/li&gt;
&lt;li&gt;Te preocupa que pueda ejecutar comandos que no debería ejecutar.&lt;/li&gt;
&lt;li&gt;Quieres verificaciones antes y después de la edición de archivos.&lt;/li&gt;
&lt;li&gt;Quiere formatear, realizar pruebas o realizar análisis de seguridad antes de confirmar&lt;/li&gt;
&lt;li&gt;Quieres que las convenciones del equipo sean un flujo de trabajo fijo en lugar de recordatorios verbales.&lt;/li&gt;
&lt;li&gt;Quiere contexto antes y después de las llamadas a herramientas para iniciar sesión o bloquear&lt;/li&gt;
&lt;li&gt;Quiere que tareas complejas activen subagentes o scripts dedicados&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Los ganchos están diseñados para estas &amp;ldquo;acciones automáticas en momentos fijos&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Puedes considerarlos como enlaces de eventos en el flujo de trabajo de Claude Code. Cuando se inicia una sesión, un usuario envía un mensaje, el modelo está a punto de llamar a una herramienta, finaliza una llamada a una herramienta o un agente está a punto de detenerse, Claude Code puede ejecutar los scripts que usted configuró.&lt;/p&gt;
&lt;h2 id=&#34;los-13-eventos-del-ciclo-de-vida-del-gancho&#34;&gt;Los 13 eventos del ciclo de vida del gancho
&lt;/h2&gt;&lt;p&gt;Uno de los puntos principales del proyecto README es que cubre sistemáticamente los 13 eventos de gancho del Código Claude.&lt;/p&gt;
&lt;p&gt;Estos eventos abarcan varias etapas, desde el inicio de la sesión hasta las llamadas a las herramientas, y desde la entrada del usuario hasta la terminación del agente. Por finalidad, se pueden agrupar a grandes rasgos como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Inicio de sesión: inicializa el entorno e inyecta el contexto del proyecto.&lt;/li&gt;
&lt;li&gt;Entrada del usuario: inspeccionar indicaciones, agregar reglas y realizar auditorías&lt;/li&gt;
&lt;li&gt;Antes de las llamadas a la herramienta: comprobaciones de permisos, bloqueo de comandos y validación de seguridad.&lt;/li&gt;
&lt;li&gt;Después de las llamadas a la herramienta: registrar resultados, activar el formateo y ejecutar la verificación&lt;/li&gt;
&lt;li&gt;Finalización de tareas: resumir, limpiar, notificar o guardar estado&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Este diseño de ciclo de vida significa que no es necesario incluir todas las reglas en un mensaje muy largo.&lt;/p&gt;
&lt;p&gt;Por ejemplo, el control de permisos debe realizarse antes de las llamadas a la herramienta. Las comprobaciones de formato son mejores después de editar los archivos. La inyección de reglas del proyecto es mejor al inicio de la sesión o después de la entrada del usuario. Poner reglas en el punto de enlace correcto suele ser más confiable que meter todo en un indicador del sistema.&lt;/p&gt;
&lt;h2 id=&#34;dónde-vive-la-configuración&#34;&gt;Dónde vive la configuración
&lt;/h2&gt;&lt;p&gt;Los ganchos de Claude Code generalmente se configuran a través de archivos de configuración.&lt;/p&gt;
&lt;p&gt;Las ubicaciones comunes incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Configuración a nivel de usuario: &lt;code&gt;~/.claude/settings.json&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Configuración a nivel de proyecto: &lt;code&gt;.claude/settings.json&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La configuración a nivel de usuario es buena para las preferencias personales, como reglas generales de seguridad, bloqueo de comandos y rutas de registro.&lt;/p&gt;
&lt;p&gt;La configuración a nivel de proyecto es mejor para reglas específicas del repositorio, como qué pruebas se deben ejecutar, qué directorios no se pueden editar, cómo se manejan los archivos generados y qué comprobaciones se requieren antes de la confirmación.
Si usa Claude Code en un equipo, es mejor colocar la configuración a nivel de proyecto en el repositorio. De esa manera, todos inician el proyecto con las mismas limitaciones de colaboración de IA en lugar de depender de la memoria personal.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-son-importantes-los-scripts-de-un-solo-archivo&#34;&gt;Por qué son importantes los scripts de un solo archivo
&lt;/h2&gt;&lt;p&gt;El proyecto enfatiza los scripts de un solo archivo &amp;ldquo;UV&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;El beneficio es una implementación simple. Un único archivo Python puede declarar dependencias y ejecutarse sin mantener un entorno complejo para un enlace. Esto encaja bien con los ganchos porque muchos ganchos solo hacen una pequeña cosa:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Comprobar si un comando está permitido&lt;/li&gt;
&lt;li&gt;Determinar si la ruta de un archivo es segura&lt;/li&gt;
&lt;li&gt;Leer las reglas del proyecto y devolvérselas a Claude.&lt;/li&gt;
&lt;li&gt;Escanear la salida en busca de información confidencial&lt;/li&gt;
&lt;li&gt;Ejecutar formateo o pruebas después de las ediciones.&lt;/li&gt;
&lt;li&gt;Escribir eventos en registros.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cuanto más pequeño sea un script de enlace, más fácil será de mantener y es menos probable que se convierta en un sistema nuevo y complicado.&lt;/p&gt;
&lt;h2 id=&#34;qué-pueden-hacer-los-ganchos-con-la-automatización&#34;&gt;¿Qué pueden hacer los ganchos con la automatización?
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;claude-code-hooks-mastery&lt;/code&gt; muestra muchas direcciones. En el trabajo real, los más comunes se encuentran a continuación.&lt;/p&gt;
&lt;h3 id=&#34;1-control-de-permisos-y-seguridad&#34;&gt;1. Control de permisos y seguridad
&lt;/h3&gt;&lt;p&gt;Este es el uso más directo de los ganchos.&lt;/p&gt;
&lt;p&gt;Antes de que Claude Code ejecute un comando, un gancho puede inspeccionar el contenido del comando. Si contiene acciones de alto riesgo, como eliminar, restablecer, limpiar o sobrescribir, puede bloquear la ejecución o requerir confirmación manual.&lt;/p&gt;
&lt;p&gt;Se pueden aplicar reglas similares a las rutas de archivos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No modificar la configuración de producción.&lt;/li&gt;
&lt;li&gt;No escribir en archivos secretos&lt;/li&gt;
&lt;li&gt;No eliminar scripts de migración&lt;/li&gt;
&lt;li&gt;No tocar directorios específicos&lt;/li&gt;
&lt;li&gt;No ejecute comandos de red no aprobados&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Anteponer esta protección a las llamadas a herramientas es más confiable que escribir &amp;ldquo;no realizar operaciones peligrosas&amp;rdquo; en un mensaje.&lt;/p&gt;
&lt;h3 id=&#34;2-inyección-de-contexto&#34;&gt;2. Inyección de contexto
&lt;/h3&gt;&lt;p&gt;Muchos proyectos tienen información de fondo fija:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pila de tecnología&lt;/li&gt;
&lt;li&gt;Convenciones de codificación&lt;/li&gt;
&lt;li&gt;Comandos de prueba&lt;/li&gt;
&lt;li&gt;Estrategia de ramificación&lt;/li&gt;
&lt;li&gt;Estructura del directorio&lt;/li&gt;
&lt;li&gt;Acciones prohibidas&lt;/li&gt;
&lt;li&gt;Reglas para archivos generados.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Decirle esto a Claude Code manualmente cada vez es molesto y fácil de olvidar. Los ganchos pueden inyectar automáticamente el contexto necesario al inicio de la sesión o después de que el usuario envía un mensaje.&lt;/p&gt;
&lt;p&gt;Esto es como darle a Claude Code un manual de trabajo a nivel de proyecto. No reemplaza el README ni la documentación de desarrollo, pero ayuda a la IA a ingresar al estado correcto antes de ejecutar una tarea.&lt;/p&gt;
&lt;h3 id=&#34;3-verificación-después-de-las-ediciones&#34;&gt;3. Verificación después de las ediciones
&lt;/h3&gt;&lt;p&gt;Después de que Claude Code modifica archivos, los ganchos pueden activar comprobaciones automáticamente.&lt;/p&gt;
&lt;p&gt;Las acciones comunes incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ejecutar formateo&lt;/li&gt;
&lt;li&gt;Ejecutar pelusa&lt;/li&gt;
&lt;li&gt;Ejecutar pruebas unitarias.&lt;/li&gt;
&lt;li&gt;Verificar errores de tipo&lt;/li&gt;
&lt;li&gt;Escanear archivos generados&lt;/li&gt;
&lt;li&gt;Validar formato Markdown o JSON&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto ayuda a reducir los errores de bajo nivel. Cuando la IA edita varios archivos, una verificación ligera después de la modificación puede revelar problemas antes.&lt;/p&gt;
&lt;p&gt;Sin embargo, los ganchos no deberían ejecutar tareas pesadas de forma predeterminada. Ejecutar el conjunto de pruebas completo después de cada cambio de archivo puede ralentizar la experiencia. Un mejor enfoque es elegir comprobaciones según el tipo de archivo, el directorio y el riesgo de la tarea.&lt;/p&gt;
&lt;h3 id=&#34;4-validación-de-las-reglas-del-equipo&#34;&gt;4. Validación de las reglas del equipo
&lt;/h3&gt;&lt;p&gt;Si un equipo ya tiene convenciones claras, algunas de ellas pueden colocarse en ganchos.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Confirmar formato de mensaje&lt;/li&gt;
&lt;li&gt;Reglas de estilo de código&lt;/li&gt;
&lt;li&gt;No editar directamente ciertos archivos generados&lt;/li&gt;
&lt;li&gt;La documentación debe actualizarse en conjunto.&lt;/li&gt;
&lt;li&gt;Los cambios de API deben actualizar las pruebas.&lt;/li&gt;
&lt;li&gt;Ciertos directorios sólo pueden ser generados por herramientas específicas
Esto hace que Claude Code se parezca más a una parte del flujo de trabajo del equipo que a un asistente externo sin restricciones.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por supuesto, los ganchos no deberían reemplazar a la CI. Son mejores para recordatorios locales y bloqueo temprano. La validación final aún debe pertenecer a los sistemas de CI, revisión y prueba.&lt;/p&gt;
&lt;h3 id=&#34;5-subagentes-y-tareas-dedicadas&#34;&gt;5. Subagentes y tareas dedicadas
&lt;/h3&gt;&lt;p&gt;El archivo README también menciona contenido relacionado con subagentes.&lt;/p&gt;
&lt;p&gt;Este tipo de uso es adecuado para enviar tareas complejas a flujos de trabajo más especializados. Por ejemplo, la conversación principal puede comprender el requisito, mientras que un enlace o una configuración desencadenan tareas dedicadas de verificación, auditoría, resumen o documentación.&lt;/p&gt;
&lt;p&gt;Para los usuarios individuales, el primer paso útil no es la compleja orquestación de agentes. Es mejor entregar primero a los ganchos acciones repetitivas, claras y de bajo riesgo. Una vez que las reglas se estabilicen, puede producirse una automatización más compleja.&lt;/p&gt;
&lt;h2 id=&#34;línea-de-estado-y-estilos-de-salida&#34;&gt;Línea de estado y estilos de salida
&lt;/h2&gt;&lt;p&gt;El proyecto también cubre la línea de estado y los estilos de salida.&lt;/p&gt;
&lt;p&gt;Esto puede parecer un pequeño detalle de la experiencia, pero es importante para el uso a largo plazo del Código Claude. Una línea de estado puede mostrar el contexto actual, el estado de la tarea, información del entorno o sugerencias. Los estilos de salida pueden hacer que las respuestas de Claude Code se ajusten mejor a sus hábitos de trabajo.&lt;/p&gt;
&lt;p&gt;Si colaboras con IA en el mismo terminal todos los días, estos detalles afectan la eficiencia. Las buenas sugerencias de estado reducen los errores y le ayudan a determinar rápidamente si la sesión actual se encuentra en el proyecto, rama y entorno correctos.&lt;/p&gt;
&lt;h2 id=&#34;no-hagas-que-los-ganchos-sean-demasiado-pesados&#34;&gt;No hagas que los ganchos sean demasiado pesados
&lt;/h2&gt;&lt;p&gt;Los ganchos son poderosos, pero no son el lugar para poner todo.&lt;/p&gt;
&lt;p&gt;Las buenas reglas son:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Las acciones de alta frecuencia deben ser rápidas.&lt;/li&gt;
&lt;li&gt;El bloqueo de seguridad debe ser claro.&lt;/li&gt;
&lt;li&gt;La salida debe ser corta.&lt;/li&gt;
&lt;li&gt;Los motivos del fallo deben ser legibles.&lt;/li&gt;
&lt;li&gt;Los scripts deben tener una única responsabilidad.&lt;/li&gt;
&lt;li&gt;Las comprobaciones exhaustivas deben ser comandos explícitos o tareas de CI&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si un enlace tarda más de diez segundos cada vez, los usuarios pronto querrán desactivarlo. Si un gancho tiene reglas de bloqueo vagas, tanto Claude Code como el usuario tendrán dificultades para entender qué hacer a continuación.&lt;/p&gt;
&lt;p&gt;Los ganchos son mejores para tareas con límites claros: permitir o rechazar, agregar contexto, registrar eventos, ejecutar comprobaciones ligeras y sugerir el siguiente paso.&lt;/p&gt;
&lt;h2 id=&#34;quién-debería-usarlo&#34;&gt;¿Quién debería usarlo?
&lt;/h2&gt;&lt;p&gt;Si solo ocasionalmente le pides a Claude Code que edite un pequeño fragmento de código, es posible que aún no necesites estudiar los ganchos en profundidad.&lt;/p&gt;
&lt;p&gt;Pero este proyecto es útil si:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Utilice Claude Code con frecuencia&lt;/li&gt;
&lt;li&gt;A menudo deja que la IA modifique el código del proyecto real.&lt;/li&gt;
&lt;li&gt;Preocupación por que la IA ejecute comandos peligrosos&lt;/li&gt;
&lt;li&gt;Quiere inyectar automáticamente reglas de equipo en los flujos de trabajo de IA&lt;/li&gt;
&lt;li&gt;Quiere que las comprobaciones se ejecuten automáticamente después de las ediciones&lt;/li&gt;
&lt;li&gt;Quiere convertir recordatorios repetidos en configuración&lt;/li&gt;
&lt;li&gt;Están creando un flujo de trabajo de codificación de IA más estable.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Los ganchos son especialmente significativos en proyectos colaborativos. Pueden convertir parte de la experiencia del equipo en guiones en lugar de depender de que cada persona se lo recuerde a la IA manualmente.&lt;/p&gt;
&lt;h2 id=&#34;notas-de-uso&#34;&gt;Notas de uso
&lt;/h2&gt;&lt;p&gt;Primero, comience con los ganchos de seguridad.&lt;/p&gt;
&lt;p&gt;En comparación con la automatización compleja, el bloqueo de comandos, la protección de rutas y las comprobaciones de archivos confidenciales son más fáciles de implementar y reducen el riesgo de inmediato.&lt;/p&gt;
&lt;p&gt;En segundo lugar, comprometa cuidadosamente las reglas a nivel de proyecto.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;.claude/settings.json&lt;/code&gt; afecta a todos los que usan el repositorio. Antes de comprometer reglas, asegúrese de que no restrinjan demasiado el desarrollo normal ni dependan de rutas que solo existen en su máquina.&lt;/p&gt;
&lt;p&gt;En tercer lugar, mantenga la salida del gancho concisa.
Claude Code consume esta salida. Si es demasiado largo, contamina el contexto. Si es demasiado vago, no guía el siguiente paso. Lo mejor es devolver sólo el juicio necesario y la siguiente recomendación.&lt;/p&gt;
&lt;p&gt;Cuarto, mantenga los ganchos depurables.&lt;/p&gt;
&lt;p&gt;Cuando los ganchos aumentan en número, los problemas pueden provenir de la configuración, los scripts, los permisos, las rutas, las dependencias o el propio Claude Code. Los registros claros facilitan mucho la depuración posterior.&lt;/p&gt;
&lt;h2 id=&#34;referencia&#34;&gt;Referencia
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/disler/claude-code-hooks-mastery&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;disler/claude-code-hooks-mastery&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;pensamiento-final&#34;&gt;Pensamiento final
&lt;/h2&gt;&lt;p&gt;El valor de &amp;ldquo;Claude Code Hooks&amp;rdquo; es convertir &amp;ldquo;reglas que espero que la IA recuerde siempre&amp;rdquo; en flujos de trabajo que realmente se ejecutan.&lt;/p&gt;
&lt;p&gt;Si ya utiliza Claude Code en proyectos reales, los ganchos son un paso clave desde &amp;ldquo;un asistente de codificación que puede conversar&amp;rdquo; hasta &amp;ldquo;un colaborador de ingeniería limitado&amp;rdquo;.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Prompt Optimizer: una herramienta de código abierto para optimización, pruebas y MCP rápidos</title>
        <link>https://knightli.com/es/2026/05/01/prompt-optimizer-prompt-engineering-tool/</link>
        <pubDate>Fri, 01 May 2026 03:09:07 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/01/prompt-optimizer-prompt-engineering-tool/</guid>
        <description>&lt;p&gt;&lt;code&gt;Prompt Optimizer&lt;/code&gt; es una herramienta de código abierto para mejorar las indicaciones. Su objetivo es sencillo: ayudarle a convertir una indicación aproximada en algo más claro, más estable y más fácil de seguir para modelos de lenguaje grandes.&lt;/p&gt;
&lt;p&gt;No es sólo una página que “pule mi mensaje”. El proyecto proporciona optimización rápida, prueba, comparación y evaluación de resultados, acceso a múltiples modelos, manejo de imágenes rápidas e integración MCP. Para las personas que suelen escribir avisos del sistema, avisos de usuario y plantillas de flujo de trabajo de IA, se siente más como un banco de trabajo de avisos dedicado.&lt;/p&gt;
&lt;h2 id=&#34;qué-problema-resuelve&#34;&gt;¿Qué problema resuelve?
&lt;/h2&gt;&lt;p&gt;Mucha gente se encuentra con problemas similares cuando utiliza la IA:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Las indicaciones son cada vez más largas, pero la calidad del resultado no mejora claramente&lt;/li&gt;
&lt;li&gt;La misma tarea se comporta de manera diferente después de cambiar de modelo.&lt;/li&gt;
&lt;li&gt;Las indicaciones del sistema y las indicaciones del usuario están mezcladas y son difíciles de depurar.&lt;/li&gt;
&lt;li&gt;Después de cambiar un mensaje, no está claro si la nueva versión es mejor&lt;/li&gt;
&lt;li&gt;Las plantillas variables son útiles, pero el reemplazo manual y las pruebas son tediosos&lt;/li&gt;
&lt;li&gt;La optimización rápida debería estar disponible para otras herramientas de IA, pero no existe una interfaz estándar&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;Prompt Optimizer&lt;/code&gt; está diseñado en torno a estos problemas. Divide la “escripción de un mensaje” en optimización, prueba, evaluación, comparación e iteración, por lo que el ajuste del mensaje ya no se basa únicamente en la intuición.&lt;/p&gt;
&lt;h2 id=&#34;características-principales&#34;&gt;Características principales
&lt;/h2&gt;&lt;h3 id=&#34;1-optimice-las-indicaciones-del-sistema-y-las-indicaciones-del-usuario&#34;&gt;1. Optimice las indicaciones del sistema y las indicaciones del usuario
&lt;/h3&gt;&lt;p&gt;Hay más de un tipo de aviso.&lt;/p&gt;
&lt;p&gt;Las indicaciones del sistema suelen definir roles, objetivos, límites, reglas de salida y métodos de trabajo. Las indicaciones del usuario están más cerca de la entrada para una tarea específica. Cuando los dos se mezclan, el modelo puede perder el punto clave y la reutilización se vuelve más difícil.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Prompt Optimizer&lt;/code&gt; admite tanto la optimización de los mensajes del sistema como la optimización de los mensajes del usuario. Puede mejorar las definiciones de roles reutilizables a largo plazo por separado de la entrada para una tarea específica.&lt;/p&gt;
&lt;p&gt;Esto es útil para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Redacción de reglas para asistentes de codificación de IA.&lt;/li&gt;
&lt;li&gt;Diseño de roles de atención al cliente, revisor, traducción y análisis.&lt;/li&gt;
&lt;li&gt;Optimización de mensajes de texto a imagen&lt;/li&gt;
&lt;li&gt;Convertir requisitos temporales en plantillas reutilizables&lt;/li&gt;
&lt;li&gt;Preparar diferentes estilos de mensajes para diferentes modelos.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2-probar-y-comparar-resultados&#34;&gt;2. Probar y comparar resultados
&lt;/h3&gt;&lt;p&gt;Optimizar un mensaje no es suficiente. La pregunta importante es si el mensaje optimizado realmente funciona mejor.&lt;/p&gt;
&lt;p&gt;El proyecto apoya el análisis, la evaluación de un solo resultado y la comparación de múltiples resultados. Puede ejecutar el mensaje original y el mensaje optimizado en la misma tarea y luego comparar si el resultado es más preciso, estable y está alineado con el objetivo.&lt;/p&gt;
&lt;p&gt;Esto es más práctico que las indicaciones que sólo &amp;ldquo;parecen más profesionales&amp;rdquo;. Muchas indicaciones parecen completas en la superficie, pero producen resultados detallados, rígidos o incluso mal dirigidos. Las pruebas comparativas ayudan a revelarlo tempranamente.&lt;/p&gt;
&lt;h3 id=&#34;3-soporte-multimodelo&#34;&gt;3. Soporte multimodelo
&lt;/h3&gt;&lt;p&gt;El README dice que el proyecto admite servicios modelo como OpenAI, Gemini, DeepSeek, Zhipu AI y SiliconFlow, así como API personalizadas compatibles con OpenAI.&lt;/p&gt;
&lt;p&gt;Esto es importante porque el rendimiento rápido depende en gran medida del modelo. El mismo mensaje puede comportarse de manera muy diferente entre modelos. Las pruebas multimodelo ayudan a determinar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si el mensaje en sí es débil&lt;/li&gt;
&lt;li&gt;Si un modelo específico no es adecuado para la tarea&lt;/li&gt;
&lt;li&gt;Si se necesitan diferentes versiones de avisos específicos del modelo&lt;/li&gt;
&lt;li&gt;Si un modelo más pequeño puede volverse utilizable con un mensaje más claro
Si utiliza Ollama localmente o su empresa tiene un servicio de modelo interno compatible con OpenAI, también se puede conectar a través de una API personalizada.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;4-modo-de-prueba-avanzado&#34;&gt;4. Modo de prueba avanzado
&lt;/h3&gt;&lt;p&gt;El proyecto proporciona gestión de variables de contexto, pruebas de conversación de múltiples turnos y soporte de llamadas a funciones.&lt;/p&gt;
&lt;p&gt;La gestión de variables es útil para tareas con plantillas. Por ejemplo, si tiene solicitudes de respuestas de ventas de segunda mano, descripciones de productos, respuestas de correo electrónico, revisiones de códigos o generación de documentos, puede reemplazar variables como producto, precio, tono y usuario objetivo para probar diferentes entradas rápidamente.&lt;/p&gt;
&lt;p&gt;Las pruebas de conversación de varios turnos ayudan a validar el comportamiento de diálogo de larga duración. Muchas indicaciones parecen estar bien en un solo turno, pero una vez que comienzan las preguntas de seguimiento, es posible que olviden las limitaciones, se desvíen del papel o repitan explicaciones. Las pruebas de múltiples vueltas están más cerca del uso real.&lt;/p&gt;
&lt;p&gt;El soporte de llamadas de funciones es adecuado para aplicaciones de IA más orientadas a la ingeniería. Ayuda a validar el comportamiento del modelo en torno a llamadas a herramientas, generación de parámetros y resultados estructurados.&lt;/p&gt;
&lt;h3 id=&#34;5-avisos-de-generación-de-imágenes&#34;&gt;5. Avisos de generación de imágenes
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;Prompt Optimizer&lt;/code&gt; también admite flujos de trabajo de texto a imagen y de imagen a imagen. El README menciona la integración con modelos de imágenes como Gemini y Seedream.&lt;/p&gt;
&lt;p&gt;La optimización de mensajes de imagen es diferente de las tareas de texto. Se centra más en el tema, la composición, la relación espacial, el estilo, el material, la iluminación, el estado de ánimo y las limitaciones. Convertir una idea vaga en una descripción visual controlable suele ser más valioso que simplemente alargar la indicación.&lt;/p&gt;
&lt;p&gt;Si genera con frecuencia imágenes de productos, portadas, ilustraciones, elementos visuales clave o referencias de estilo, este tipo de optimización es útil.&lt;/p&gt;
&lt;h2 id=&#34;formas-de-usarlo&#34;&gt;Formas de usarlo
&lt;/h2&gt;&lt;p&gt;El proyecto proporciona varios puntos de entrada:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Versión en línea&lt;/li&gt;
&lt;li&gt;Vercel autohospedado&lt;/li&gt;
&lt;li&gt;Aplicación de escritorio&lt;/li&gt;
&lt;li&gt;Extensión de Chrome&lt;/li&gt;
&lt;li&gt;Implementación de Docker&lt;/li&gt;
&lt;li&gt;Implementación de Docker Compose&lt;/li&gt;
&lt;li&gt;Servidor MCP&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La versión en línea es buena para pruebas rápidas. El proyecto señala que es una aplicación puramente frontend: los datos se almacenan localmente en el navegador y se envían directamente a los proveedores de IA.&lt;/p&gt;
&lt;p&gt;La aplicación de escritorio es mejor cuando necesita conectarse directamente a diferentes modelos de API. Los entornos de navegador pueden encontrarse con los límites de CORS; la aplicación de escritorio evita esos problemas, especialmente cuando se conecta a Ollama local o API comerciales con políticas estrictas de origen cruzado.&lt;/p&gt;
&lt;p&gt;La implementación de Docker es adecuada para su propio servidor o entorno de intranet. El README da este comando básico:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -d -p 8081:80 --restart unless-stopped --name prompt-optimizer linshen/prompt-optimizer
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Para configurar claves API y contraseñas de acceso, pase variables de entorno:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -d -p 8081:80 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -e &lt;span class=&#34;nv&#34;&gt;VITE_OPENAI_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_key &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -e &lt;span class=&#34;nv&#34;&gt;ACCESS_USERNAME&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_username &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -e &lt;span class=&#34;nv&#34;&gt;ACCESS_PASSWORD&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_password &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --restart unless-stopped &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --name prompt-optimizer &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  linshen/prompt-optimizer
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si Docker Hub es lento en China, el proyecto también proporciona una dirección de imagen de Alibaba Cloud en el README.&lt;/p&gt;
&lt;h2 id=&#34;qué-permite-mcp&#34;&gt;Qué permite MCP
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Prompt Optimizer&lt;/code&gt; admite el protocolo de contexto modelo o MCP.&lt;/p&gt;
&lt;p&gt;Cuando se ejecuta a través de Docker, el servicio MCP puede iniciarse junto con la aplicación web y se puede acceder a él a través de la ruta &lt;code&gt;/mcp&lt;/code&gt;. Esto lo convierte de una herramienta web en algo a lo que pueden acceder aplicaciones compatibles con MCP, como Claude Desktop.&lt;/p&gt;
&lt;p&gt;El archivo README enumera estas herramientas MCP:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;optimize-user-prompt&lt;/code&gt;: optimiza las indicaciones del usuario&lt;/li&gt;
&lt;li&gt;&lt;code&gt;optimize-system-prompt&lt;/code&gt;: optimiza las indicaciones del sistema&lt;/li&gt;
&lt;li&gt;&lt;code&gt;iterate-prompt&lt;/code&gt;: realiza una iteración específica en un mensaje existente
Estas interfaces son muy adecuadas para los flujos de trabajo de IA. Por ejemplo, al escribir un mensaje de tarea compleja, un cliente compatible con MCP puede llamar a la herramienta de optimización de mensajes directamente en lugar de requerir que abra una página web y copie el texto manualmente.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;diferencia-con-las-herramientas-de-chat-normales&#34;&gt;Diferencia con las herramientas de chat normales
&lt;/h2&gt;&lt;p&gt;Las herramientas de chat normales también pueden ayudar a reescribir las indicaciones, pero normalmente carecen de varias partes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Guardar y comparar múltiples versiones es inconveniente&lt;/li&gt;
&lt;li&gt;Probar varios modelos a la vez es inconveniente&lt;/li&gt;
&lt;li&gt;Convertir variables en plantillas es un inconveniente&lt;/li&gt;
&lt;li&gt;La validación de conversaciones de varios turnos es inconveniente&lt;/li&gt;
&lt;li&gt;La integración a través de MCP o autohospedaje es inconveniente&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El valor de &amp;ldquo;Prompt Optimizer&amp;rdquo; es que convierte la optimización rápida en un proceso repetible. No solo te ofrece una versión que “parece más completa”; le permite seguir ajustando las indicaciones en torno a resultados reales.&lt;/p&gt;
&lt;h2 id=&#34;quién-debería-usarlo&#34;&gt;¿Quién debería usarlo?
&lt;/h2&gt;&lt;p&gt;Este proyecto merece atención si:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A menudo escribe mensajes del sistema.&lt;/li&gt;
&lt;li&gt;Diseñar roles y formatos de salida para aplicaciones de IA.&lt;/li&gt;
&lt;li&gt;Necesidad de comparar resultados de diferentes modelos.&lt;/li&gt;
&lt;li&gt;Quiere convertir indicaciones en plantillas reutilizables&lt;/li&gt;
&lt;li&gt;Necesidad de probar el diálogo de varios turnos o las llamadas a herramientas.&lt;/li&gt;
&lt;li&gt;Quiere conectar la optimización rápida a un flujo de trabajo MCP&lt;/li&gt;
&lt;li&gt;Quiere implementar una herramienta de aviso localmente o dentro de una intranet.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si sólo ocasionalmente le haces una pregunta sencilla a AI, una página de chat normal es suficiente. Esta herramienta es mejor para las personas que tratan las indicaciones como activos mantenibles.&lt;/p&gt;
&lt;h2 id=&#34;notas-de-uso&#34;&gt;Notas de uso
&lt;/h2&gt;&lt;p&gt;En primer lugar, no trate los resultados de la optimización como absolutamente correctos.&lt;/p&gt;
&lt;p&gt;Las herramientas de optimización rápidas pueden mejorar la calidad de la expresión, pero no pueden garantizar que un modelo nunca se malinterprete. Las tareas importantes aún necesitan casos de prueba, revisión manual y comparación de versiones.&lt;/p&gt;
&lt;p&gt;En segundo lugar, no se limite a perseguir la longitud.&lt;/p&gt;
&lt;p&gt;Un buen mensaje no es necesariamente más largo. Debería expresar más claramente los objetivos, los límites, los formatos de entrada y salida y los criterios de evaluación. La acumulación de reglas sin sentido puede hacer que el modelo no entienda el punto.&lt;/p&gt;
&lt;p&gt;En tercer lugar, ajuste las indicaciones por modelo.&lt;/p&gt;
&lt;p&gt;Los diferentes modelos responden de manera diferente a la configuración de roles, restricciones de formato, pasos de razonamiento y ejemplos. Un mensaje que funciona bien en un modelo grande puede no ser adecuado para un modelo más pequeño. Las pruebas multimodelo son una de las razones por las que esta herramienta es útil.&lt;/p&gt;
&lt;p&gt;Cuarto, considere las claves y el control de acceso al implementar.&lt;/p&gt;
&lt;p&gt;Si lo implementa públicamente, configure una contraseña de acceso y maneje las claves API con cuidado. El proyecto soporta el control de acceso a través de variables de entorno; no escriba configuraciones confidenciales directamente en repositorios públicos.&lt;/p&gt;
&lt;h2 id=&#34;referencia&#34;&gt;Referencia
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/linshenkx/prompt-optimizer&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;linshenkx/prompt-optimizer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;pensamiento-final&#34;&gt;Pensamiento final
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Prompt Optimizer&lt;/code&gt; es útil para convertir mensajes de &amp;ldquo;un párrafo temporal que escribí a mano&amp;rdquo; en &amp;ldquo;un activo de trabajo que se puede probar, comparar e iterar&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Cuando comienzas a mantener mensajes en múltiples modelos, escenarios y versiones, este tipo de herramienta es más conveniente que una ventana de chat normal.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Claude-Mem: Agregar memoria a largo plazo entre sesiones al código Claude</title>
        <link>https://knightli.com/es/2026/05/01/claude-mem-persistent-memory-for-claude-code/</link>
        <pubDate>Fri, 01 May 2026 03:01:02 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/01/claude-mem-persistent-memory-for-claude-code/</guid>
        <description>&lt;p&gt;&lt;code&gt;Claude-Mem&lt;/code&gt; es un sistema de memoria persistente para &lt;code&gt;Claude Code&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Intenta resolver un problema muy específico: cada vez que un asistente de codificación de IA inicia una nueva sesión, a menudo olvida decisiones de arquitectura anteriores, obstáculos pasados, preferencias de proyecto y contexto de implementación.&lt;br&gt;
Si un proyecto dura mucho tiempo, explicar repetidamente los mismos antecedentes se convierte en una pérdida de tiempo.&lt;/p&gt;
&lt;p&gt;La idea detrás de &lt;code&gt;Claude-Mem&lt;/code&gt; es comprimir las conversaciones de Claude Code en recuerdos, almacenarlas en una base de datos local y en un almacén de vectores, y luego recuperarlas a través de una herramienta de búsqueda.&lt;/p&gt;
&lt;h2 id=&#34;qué-problema-resuelve&#34;&gt;¿Qué problema resuelve?
&lt;/h2&gt;&lt;p&gt;Claude Code es bueno en tareas de código, pero el contexto de la sesión aún es limitado.&lt;/p&gt;
&lt;p&gt;Los puntos débiles comunes incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Una nueva sesión no sabe lo que hicieron las sesiones anteriores.&lt;/li&gt;
&lt;li&gt;Las decisiones de diseño del proyecto deben explicarse repetidamente.&lt;/li&gt;
&lt;li&gt;Los problemas que ya fueron depurados son fáciles de repetir&lt;/li&gt;
&lt;li&gt;Las tareas de larga duración carecen de continuidad.&lt;/li&gt;
&lt;li&gt;El conocimiento del proyecto es difícil de acumular a través de conversaciones.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;Claude-Mem&lt;/code&gt; está diseñado en torno a estos problemas.&lt;/p&gt;
&lt;p&gt;No se trata simplemente de guardar registros de chat. En cambio, comprime las conversaciones en fragmentos de memoria que son más fáciles de recuperar. Cuando sea necesario más adelante, la búsqueda semántica puede recuperar el contexto relevante.&lt;/p&gt;
&lt;h2 id=&#34;cómo-funciona&#34;&gt;Cómo funciona
&lt;/h2&gt;&lt;p&gt;Según el diseño README, &amp;ldquo;Claude-Mem&amp;rdquo; consta principalmente de varias partes.&lt;/p&gt;
&lt;p&gt;La primera parte son los ganchos.&lt;/p&gt;
&lt;p&gt;Se integra con el flujo de sesión de Claude Code y captura datos de la conversación en el momento adecuado.&lt;/p&gt;
&lt;p&gt;La segunda parte es un trabajador en segundo plano.&lt;/p&gt;
&lt;p&gt;El trabajador procesa el contenido de la conversación en bruto y lo convierte en recuerdos más breves y fáciles de buscar.&lt;/p&gt;
&lt;p&gt;La tercera parte es el almacenamiento local.&lt;/p&gt;
&lt;p&gt;El proyecto utiliza &lt;code&gt;SQLite&lt;/code&gt; para metadatos estructurados y &lt;code&gt;Chroma&lt;/code&gt; para indexación de vectores. Esto preserva la información básica de la sesión al tiempo que admite la recuperación semántica.&lt;/p&gt;
&lt;p&gt;La cuarta parte es &amp;ldquo;mem-search&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Este es el punto de entrada de consulta para Claude Code. Cuando se necesita un contexto antiguo, se pueden buscar recuerdos relevantes a través de esta herramienta.&lt;/p&gt;
&lt;p&gt;El flujo general se puede entender así:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Las sesiones de Claude Code generan contenido&lt;/li&gt;
&lt;li&gt;Los ganchos capturan datos de la sesión&lt;/li&gt;
&lt;li&gt;El trabajador lo comprime y organiza de forma asincrónica.&lt;/li&gt;
&lt;li&gt;Los recuerdos se escriben en SQLite y Chroma.&lt;/li&gt;
&lt;li&gt;Las sesiones posteriores los recuperan mediante &lt;code&gt;mem-search&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;cuándo-es-útil&#34;&gt;¿Cuándo es útil?
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Claude-Mem&lt;/code&gt; es adecuado para proyectos de larga duración, no para tareas pequeñas y puntuales.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Un repositorio se desarrolla durante muchos días.&lt;/li&gt;
&lt;li&gt;La estructura del código es compleja y tiene muchos antecedentes.&lt;/li&gt;
&lt;li&gt;Es necesario recordar las convenciones del proyecto, los hábitos de nomenclatura y las elecciones de arquitectura.&lt;/li&gt;
&lt;li&gt;Claude Code se utiliza a menudo para corregir errores, funciones y documentación.&lt;/li&gt;
&lt;li&gt;Quieres que la IA recuerde por qué se cambió algo antes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si solo le pide a Claude Code que haga un cambio de una línea, la memoria a largo plazo no es muy significativa.&lt;br&gt;
Pero si tratas a Claude Code como un colaborador a largo plazo, resulta útil.&lt;/p&gt;
&lt;h2 id=&#34;instalación-y-puesta-en-marcha&#34;&gt;Instalación y puesta en marcha
&lt;/h2&gt;&lt;p&gt;El README proporciona un flujo de instalación directo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -g claude-mem
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude-mem install
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Empiece con:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude-mem start
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Verificar estado:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude-mem status
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Deténgalo cuando sea necesario:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude-mem stop
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El objetivo detrás de estos comandos es conectar el sistema de memoria como un servicio local de larga duración al flujo de trabajo de Claude Code.&lt;/p&gt;
&lt;h2 id=&#34;cómo-utilizar-mem-search&#34;&gt;Cómo utilizar &lt;code&gt;mem-search&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;mem-search&lt;/code&gt; es el punto de entrada clave para recuperar la memoria.&lt;/p&gt;
&lt;p&gt;No pretende reemplazar la búsqueda ordinaria. Permite a Claude Code consultar conversaciones pasadas por significado.&lt;/p&gt;
&lt;p&gt;Por ejemplo, Claude Code puede buscar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Por qué un módulo fue diseñado de cierta manera&lt;/li&gt;
&lt;li&gt;Cómo se depuró un error anteriormente&lt;/li&gt;
&lt;li&gt;Reglas de nomenclatura acordadas en el proyecto.&lt;/li&gt;
&lt;li&gt;Compensaciones técnicas discutidas anteriormente&lt;/li&gt;
&lt;li&gt;El trasfondo detrás de una refactorización.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto es diferente de la simple búsqueda de palabras clave.&lt;br&gt;
Si la compresión de memoria y la indexación de vectores funcionan bien, puede recuperar contenido semánticamente relacionado incluso si no recuerda la redacción exacta.&lt;/p&gt;
&lt;h2 id=&#34;en-qué-se-diferencia-de-la-documentación-del-proyecto&#34;&gt;¿En qué se diferencia de la documentación del proyecto?
&lt;/h2&gt;&lt;p&gt;La documentación del proyecto es buena para sacar conclusiones estables.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Notas de arquitectura&lt;/li&gt;
&lt;li&gt;Procedimientos de implementación&lt;/li&gt;
&lt;li&gt;Convenciones API&lt;/li&gt;
&lt;li&gt;Estructura de la base de datos&lt;/li&gt;
&lt;li&gt;Reglas de desarrollo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;Claude-Mem&lt;/code&gt; es mejor para el contexto creado durante las conversaciones.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Por qué se rechazó un plan&lt;/li&gt;
&lt;li&gt;Cómo se solucionó un problema temporal&lt;/li&gt;
&lt;li&gt;La discusión detrás de una implementación.&lt;/li&gt;
&lt;li&gt;Las preferencias del proyecto aún no están escritas en los documentos.&lt;/li&gt;
&lt;li&gt;Antecedentes de tareas acumulados en múltiples conversaciones&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Los dos no se reemplazan el uno al otro.&lt;br&gt;
Un buen flujo de trabajo es escribir conocimientos estables en los documentos del proyecto y utilizar el sistema de memoria para ayudar a recuperar el contexto conversacional.&lt;/p&gt;
&lt;h2 id=&#34;cosas-a-tener-en-cuenta&#34;&gt;Cosas a tener en cuenta
&lt;/h2&gt;&lt;p&gt;En primer lugar, una mayor memoria a largo plazo no siempre es mejor.&lt;/p&gt;
&lt;p&gt;Si cada conversación se guarda sin distinción, la recuperación posterior puede resultar ruidosa. Los recuerdos más valiosos son las decisiones del proyecto, los antecedentes de la implementación, el historial de depuración y las preferencias a largo plazo.&lt;/p&gt;
&lt;p&gt;En segundo lugar, la memoria no puede reemplazar el código y la documentación.&lt;/p&gt;
&lt;p&gt;El contexto antiguo encontrado por la IA es sólo una referencia. El juicio final aún depende del código actual, los resultados de las pruebas y los requisitos más recientes.&lt;/p&gt;
&lt;p&gt;En tercer lugar, preste atención a la privacidad y los datos locales.&lt;/p&gt;
&lt;p&gt;Dado que almacena el contenido de la conversación, debes saber qué proyectos son adecuados para él y qué información confidencial no debe entrar en la conversación.&lt;/p&gt;
&lt;p&gt;Cuarto, los sistemas de memoria necesitan mantenimiento.&lt;/p&gt;
&lt;p&gt;A medida que avanza un proyecto, los viejos recuerdos pueden quedar obsoletos. Si el contexto obsoleto se reutiliza incorrectamente, puede inducir a error en tareas posteriores.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-es-importante-este-tipo-de-herramienta&#34;&gt;Por qué es importante este tipo de herramienta
&lt;/h2&gt;&lt;p&gt;Las herramientas de codificación de IA están pasando de preguntas y respuestas únicas a una colaboración a largo plazo.&lt;/p&gt;
&lt;p&gt;En preguntas y respuestas únicas, el modelo solo necesita responder la pregunta actual.&lt;br&gt;
En una colaboración a largo plazo, es necesario conocer el historial del proyecto, las decisiones anteriores, las preferencias del equipo y los obstáculos que ya se han encontrado.&lt;/p&gt;
&lt;p&gt;Aquí es donde importan herramientas como &lt;code&gt;Claude-Mem&lt;/code&gt;: convierten el &amp;ldquo;recordar el contexto&amp;rdquo; de una capacidad de chat temporal en un sistema local que puede instalarse, ejecutarse y buscarse.&lt;/p&gt;
&lt;p&gt;Para proyectos de ingeniería reales, esto es más práctico que simplemente alargar la ventana de contexto del modelo.&lt;br&gt;
No es necesario contextualizar mucha información de una sola vez; es necesario recuperarlo en el momento adecuado.&lt;/p&gt;
&lt;h2 id=&#34;quién-debería-intentarlo&#34;&gt;¿Quién debería intentarlo?
&lt;/h2&gt;&lt;p&gt;Quizás quieras probarlo si:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Usas Claude Code con frecuencia&lt;/li&gt;
&lt;li&gt;A menudo trabajas en el mismo proyecto durante varios días.&lt;/li&gt;
&lt;li&gt;El contexto del proyecto es complejo.&lt;/li&gt;
&lt;li&gt;Explicas repetidamente los mismos antecedentes a la IA.&lt;/li&gt;
&lt;li&gt;Quieres preservar la experiencia de las conversaciones.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si solo usas Claude Code ocasionalmente, o el proyecto es pequeño, es posible que aún no necesites este tipo de sistema.&lt;/p&gt;
&lt;h2 id=&#34;referencia&#34;&gt;Referencia
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/thedotmack/claude-mem&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;thedotmack/claude-mem&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;pensamiento-final&#34;&gt;Pensamiento final
&lt;/h2&gt;&lt;p&gt;El objetivo de &lt;code&gt;Claude-Mem&lt;/code&gt; no es &amp;ldquo;guardar registros de chat&amp;rdquo;. Ayuda a Claude Code a recuperar contexto útil en tareas posteriores.
A medida que la codificación de IA pase de tareas únicas a colaboraciones en proyectos de larga duración, los sistemas de memoria serán cada vez más importantes.&lt;br&gt;
No pueden reemplazar la documentación y las pruebas, pero pueden reducir las explicaciones repetidas y hacer que la IA se sienta más como un asistente que comprende el historial del proyecto.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Google LangExtract: extraiga datos estructurados de texto largo con LLM</title>
        <link>https://knightli.com/es/2026/05/01/google-langextract-llm-structured-data-extraction/</link>
        <pubDate>Fri, 01 May 2026 02:58:21 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/01/google-langextract-llm-structured-data-extraction/</guid>
        <description>&lt;p&gt;&lt;code&gt;LangExtract&lt;/code&gt; es una biblioteca Python de código abierto de Google para extraer información estructurada de texto no estructurado.&lt;/p&gt;
&lt;p&gt;Su caso de uso es sencillo: proporcione un fragmento de texto, un mensaje y algunos ejemplos, luego deje que un modelo de lenguaje grande extraiga campos de acuerdo con su definición y organice el resultado en datos que puedan procesarse.&lt;/p&gt;
&lt;p&gt;A diferencia de simplemente pedirle a un modelo que resuma algo, &amp;ldquo;LangExtract&amp;rdquo; se centra en tres cosas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Extraer información en una estructura fija.&lt;/li&gt;
&lt;li&gt;Preservar la relación entre los resultados extraídos y sus ubicaciones de origen.&lt;/li&gt;
&lt;li&gt;Soporte de documentos largos e inspección visual.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si a menudo necesita extraer entidades, eventos, relaciones o atributos de informes, documentos, notas médicas, contratos, registros o páginas web, este tipo de herramienta es más flexible que las expresiones regulares escritas a mano y más fácil de conectar a flujos de trabajo de datos posteriores que las simples preguntas estilo chat.&lt;/p&gt;
&lt;h2 id=&#34;qué-problema-resuelve&#34;&gt;¿Qué problema resuelve?
&lt;/h2&gt;&lt;p&gt;Muchas tareas de extracción de texto parecen simples, pero resultan problemáticas en la práctica.&lt;/p&gt;
&lt;p&gt;Por ejemplo, es posible que desee extraer:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Personas, organizaciones y ubicaciones.&lt;/li&gt;
&lt;li&gt;Eventos, horarios y participantes.&lt;/li&gt;
&lt;li&gt;Medicamentos, dosis y reacciones adversas.&lt;/li&gt;
&lt;li&gt;Modelos, parámetros y precios de productos.&lt;/li&gt;
&lt;li&gt;Cláusulas, obligaciones y plazos del contrato.&lt;/li&gt;
&lt;li&gt;Tipos de errores y contexto de los registros.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si el formato es fijo, pueden funcionar las expresiones regulares o los analizadores tradicionales.&lt;br&gt;
Pero una vez que el texto se vuelve más natural, las reglas rápidamente se complican.&lt;/p&gt;
&lt;p&gt;Los modelos de lenguaje grandes son buenos para comprender el lenguaje natural, pero pedirle directamente a un modelo que lo &amp;ldquo;extraiga&amp;rdquo; a menudo causa varios problemas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El formato de salida es inestable.&lt;/li&gt;
&lt;li&gt;No está claro de dónde proviene la información en el texto fuente.&lt;/li&gt;
&lt;li&gt;Es fácil pasar por alto los documentos largos&lt;/li&gt;
&lt;li&gt;El procesamiento por lotes es difícil&lt;/li&gt;
&lt;li&gt;Los resultados son incómodos de revisar manualmente&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;LangExtract&lt;/code&gt; aborda esta capa del problema: integra la comprensión de LLM en un flujo de trabajo de extracción más controlable.&lt;/p&gt;
&lt;h2 id=&#34;características-clave-de-langextract&#34;&gt;Características clave de LangExtract
&lt;/h2&gt;&lt;h3 id=&#34;1-utilice-ejemplos-para-restringir-el-formato-de-extracción&#34;&gt;1. Utilice ejemplos para restringir el formato de extracción
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;LangExtract&lt;/code&gt; no se basa en un mensaje vago de una sola línea. En cambio, utiliza indicaciones y ejemplos para decirle al modelo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Qué extraer&lt;/li&gt;
&lt;li&gt;Cómo se llama cada campo&lt;/li&gt;
&lt;li&gt;Cómo se debe llenar cada campo&lt;/li&gt;
&lt;li&gt;Qué hacer cuando la información es incierta&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Este enfoque de pocas tomas funciona bien para la extracción de información.&lt;br&gt;
Cuanto más se acerquen sus ejemplos a los datos reales, más estable se volverá la salida estructurada del modelo.&lt;/p&gt;
&lt;h3 id=&#34;2-los-resultados-extraídos-pueden-vincularse-a-la-fuente&#34;&gt;2. Los resultados extraídos pueden vincularse a la fuente
&lt;/h3&gt;&lt;p&gt;El peor tipo de resultado de extracción es el que parece correcto pero no se puede rastrear.&lt;/p&gt;
&lt;p&gt;Uno de los puntos importantes de &amp;ldquo;LangExtract&amp;rdquo; es alinear los resultados extraídos con las ubicaciones de origen. Cuando revise más tarde, no solo verá un resultado JSON; también puedes volver al texto original y ver de dónde vino la información.&lt;/p&gt;
&lt;p&gt;Esto es importante en escenarios que requieren revisión, como textos médicos, textos legales, material de investigación y documentos comerciales internos.&lt;/p&gt;
&lt;h3 id=&#34;3-soporte-para-documentos-largos&#34;&gt;3. Soporte para documentos largos
&lt;/h3&gt;&lt;p&gt;La extracción de documentos largos a menudo se topa con límites de ventana de contexto, resultados perdidos y resultados duplicados.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;LangExtract&lt;/code&gt; proporciona un flujo de trabajo para texto largo: divide el documento, procesa fragmentos en paralelo y luego organiza los resultados extraídos.
Esto lo hace más adecuado para informes completos, artículos, páginas web largas y documentos masivos, en lugar de solo fragmentos cortos.&lt;/p&gt;
&lt;h3 id=&#34;4-inspección-visual&#34;&gt;4. Inspección visual
&lt;/h3&gt;&lt;p&gt;Si los resultados de la extracción solo están disponibles como JSON, es fácil pasar por alto los problemas.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;LangExtract&lt;/code&gt; admite la visualización de resultados extraídos, lo que facilita ver qué extrajo el modelo y de dónde proviene.&lt;br&gt;
Esto es útil para ajustar indicaciones, comprobar extracciones omitidas y encontrar falsos positivos.&lt;/p&gt;
&lt;h2 id=&#34;cuándo-debería-usarlo&#34;&gt;¿Cuándo debería usarlo?
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;LangExtract&lt;/code&gt; es adecuado cuando:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Es necesario extraer campos estructurados del texto en lenguaje natural.&lt;/li&gt;
&lt;li&gt;El formato del texto no está completamente arreglado.&lt;/li&gt;
&lt;li&gt;Debes preservar la relación entre los resultados extraídos y el texto fuente.&lt;/li&gt;
&lt;li&gt;Necesita procesar documentos más largos.&lt;/li&gt;
&lt;li&gt;Los resultados requieren revisión humana&lt;/li&gt;
&lt;li&gt;El resultado se incluirá posteriormente en tablas, bases de datos o flujos de trabajo de análisis de datos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Los ejemplos típicos incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Extracción de síntomas, medicamentos, dosis y reacciones del texto médico.&lt;/li&gt;
&lt;li&gt;Extracción de partes, obligaciones, montos y plazos de los contratos.&lt;/li&gt;
&lt;li&gt;Extraer temas, métodos y conclusiones de los artículos.&lt;/li&gt;
&lt;li&gt;Extracción de parámetros de especificación de documentos de producto.&lt;/li&gt;
&lt;li&gt;Extracción de tipos de problemas y resoluciones de registros de soporte.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si sólo necesita un resumen temporal de un breve fragmento de texto, un modelo de chat normal es suficiente.&lt;br&gt;
Si desea convertir texto en datos que puedan procesarse más adelante, &lt;code&gt;LangExtract&lt;/code&gt; es la mejor opción.&lt;/p&gt;
&lt;h2 id=&#34;instalación-básica&#34;&gt;Instalación básica
&lt;/h2&gt;&lt;p&gt;El proyecto admite la instalación a través de &lt;code&gt;pip&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install langextract
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;También puedes instalarlo desde la fuente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/google/langextract.git
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; langextract
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install -e .
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si desea utilizar una API modelo, configure la clave API para el proveedor del modelo correspondiente.&lt;br&gt;
La documentación del proyecto se centra en el uso de Gemini y también puede conectarse a otros proveedores de modelos a través de adaptadores.&lt;/p&gt;
&lt;h2 id=&#34;flujo-de-uso-básico&#34;&gt;Flujo de uso básico
&lt;/h2&gt;&lt;p&gt;Un flujo de trabajo típico se ve así:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Prepara el texto fuente.&lt;/li&gt;
&lt;li&gt;Describa claramente el objetivo de extracción.&lt;/li&gt;
&lt;li&gt;Proporcione algunos ejemplos&lt;/li&gt;
&lt;li&gt;Llame a &lt;code&gt;LangExtract&lt;/code&gt; para realizar la extracción.&lt;/li&gt;
&lt;li&gt;Inspeccionar el resultado estructurado.&lt;/li&gt;
&lt;li&gt;Genere una página de visualización para revisarla si es necesario.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;El segundo y tercer paso son los más importantes.&lt;/p&gt;
&lt;p&gt;El mensaje debe describir claramente la tarea, por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Extraer sólo información explícitamente presente en el texto.&lt;/li&gt;
&lt;li&gt;No completes hechos faltantes de sentido común.&lt;/li&gt;
&lt;li&gt;Deje los campos vacíos cuando falte información&lt;/li&gt;
&lt;li&gt;Mantener la misma estructura de campos para el mismo tipo de entidad.&lt;/li&gt;
&lt;li&gt;Conservar fragmentos de código fuente o posiciones en la salida&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Los ejemplos deben ser lo más parecidos posible a las entradas reales.&lt;br&gt;
Si el texto real tiene ruido, abreviaturas, saltos de línea o residuos de tabla, los ejemplos deberían reflejarlo.&lt;/p&gt;
&lt;h2 id=&#34;cosas-a-tener-en-cuenta&#34;&gt;Cosas a tener en cuenta
&lt;/h2&gt;&lt;p&gt;En primer lugar, no amplíe demasiado la tarea de extracción.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Extraer información útil&amp;rdquo; es demasiado vago.&lt;br&gt;
Una mejor instrucción sería &amp;ldquo;extraer el nombre del medicamento, la dosis, la frecuencia y las reacciones adversas&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;En segundo lugar, no confíe plenamente en los resultados del modelo.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;LangExtract&lt;/code&gt; puede alinear los resultados con el texto fuente, pero eso no significa que el modelo nunca omitirá o extraerá incorrectamente información. Los escenarios importantes aún requieren controles de muestreo o revisión humana.&lt;/p&gt;
&lt;p&gt;En tercer lugar, los ejemplos son más útiles que las explicaciones largas.&lt;/p&gt;
&lt;p&gt;En las tareas de extracción de información, los modelos suelen basarse más en ejemplos para comprender el formato de salida.&lt;br&gt;
En lugar de escribir un conjunto de reglas largas y abstractas, proporcione algunos ejemplos de alta calidad.
Cuarto, preste atención al costo y la velocidad para documentos largos.&lt;/p&gt;
&lt;p&gt;La división de documentos largos, la extracción paralela y las llamadas de modelos tienen costos. Antes del procesamiento por lotes, utilice un pequeño conjunto de muestra para ajustar la estructura de campos y mensajes.&lt;/p&gt;
&lt;h2 id=&#34;en-qué-se-diferencia-de-regex-o-pnl-tradicional&#34;&gt;¿En qué se diferencia de Regex o PNL tradicional?
&lt;/h2&gt;&lt;p&gt;Las expresiones regulares son buenas para formatos de texto estables y bien definidos.&lt;/p&gt;
&lt;p&gt;Los canales de PNL tradicionales funcionan bien cuando los límites de las tareas son claros y el modelo o diccionario ya está preparado.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;LangExtract&lt;/code&gt; es mejor para texto cuyo formato es menos fijo pero cuyo significado es claro.&lt;br&gt;
No requiere que escribas una regla para cada expresión posible; en cambio, el LLM aprende el objetivo de extracción a partir de ejemplos.&lt;/p&gt;
&lt;p&gt;Pero no es un reemplazo completo de las expresiones regulares:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Para texto de formato fijo, las expresiones regulares son más económicas y estables.&lt;/li&gt;
&lt;li&gt;Para escenarios de alto riesgo, aún se requiere validación y revisión.&lt;/li&gt;
&lt;li&gt;Para el procesamiento por lotes a gran escala, el costo de la llamada al modelo es importante&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un enfoque práctico es manejar las partes con reglas claras con código y usar &lt;code&gt;LangExtract&lt;/code&gt; para las partes con más variación semántica.&lt;/p&gt;
&lt;h2 id=&#34;para-quién-es&#34;&gt;¿Para quién es?
&lt;/h2&gt;&lt;p&gt;Es posible que desee consultar &lt;code&gt;LangExtract&lt;/code&gt; si está realizando alguna de las siguientes acciones:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Convertir texto largo en tablas.&lt;/li&gt;
&lt;li&gt;Extracción de entidades y relaciones de documentos.&lt;/li&gt;
&lt;li&gt;Limpiar datos antes de ponerlos en una base de conocimientos.&lt;/li&gt;
&lt;li&gt;Extracción de campos del texto comercial.&lt;/li&gt;
&lt;li&gt;Construcción de un prototipo de extracción de información impulsado por LLM.&lt;/li&gt;
&lt;li&gt;Preservar evidencia entre los resultados extraídos y el texto fuente.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No es una herramienta de tipo &amp;ldquo;haga clic una vez y comprenda cada documento&amp;rdquo;. Es más como una biblioteca para diseñar un flujo de trabajo de extracción de LLM.&lt;/p&gt;
&lt;p&gt;Aún necesita diseñar campos, escribir ejemplos e inspeccionar los resultados.&lt;br&gt;
Pero en comparación con escribir manualmente llamadas de modelo, unir mensajes y analizar resultados cada vez, proporciona un marco de extracción más completo.&lt;/p&gt;
&lt;h2 id=&#34;referencia&#34;&gt;Referencia
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/google/langextract&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;google/langextract&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;pensamiento-final&#34;&gt;Pensamiento final
&lt;/h2&gt;&lt;p&gt;El valor de &lt;code&gt;LangExtract&lt;/code&gt; hace que &amp;ldquo;permitir que un LLM encuentre información en texto&amp;rdquo; sea más controlable.&lt;/p&gt;
&lt;p&gt;No es para resúmenes casuales. Es para tareas de extracción de información con requisitos de campos, evidencia y revisión.&lt;br&gt;
Si su trabajo convierte a menudo textos largos en datos estructurados, vale la pena intentarlo.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Claude.md no es mejor cuando es más largo: cómo escribir archivos de memoria global para codificación AI</title>
        <link>https://knightli.com/es/2026/04/29/how-to-write-claude-md-for-ai-coding/</link>
        <pubDate>Wed, 29 Apr 2026 21:07:37 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/29/how-to-write-claude-md-for-ai-coding/</guid>
        <description>&lt;p&gt;Recientemente vi una discusión sobre archivos de memoria global para codificación de IA: después de que los proyectos agregan archivos como &lt;code&gt;Claude.md&lt;/code&gt; o &lt;code&gt;AGENTS.md&lt;/code&gt;, los resultados no necesariamente mejoran. En algunos casos, las tasas de éxito pueden incluso disminuir mientras que el costo del razonamiento aumenta.&lt;/p&gt;
&lt;p&gt;Al principio, esto parece contradictorio. Generalmente asumimos que si le damos a la IA más antecedentes del proyecto, más reglas y más explicaciones, debería escribir el código con mayor precisión.&lt;br&gt;
El verdadero problema es que &lt;code&gt;Claude.md&lt;/code&gt; no es un documento ordinario. Es un archivo de memoria global que se inyecta en el contexto de cada conversación. Cuanto más contiene, más tiene que leer el modelo cada vez; cuanto más vago sea, más juicio tendrá que hacer el modelo; y si contiene flujos de trabajo que no siempre deberían ejecutarse, el modelo puede desencadenar acciones innecesarias en tareas no relacionadas.&lt;/p&gt;
&lt;p&gt;Entonces, la parte difícil de escribir &lt;code&gt;Claude.md&lt;/code&gt; es no completarlo. Se trata de decidir qué piezas de información merecen ocupar contexto de forma permanente.&lt;/p&gt;
&lt;h2 id=&#34;qué-es-claudemd&#34;&gt;¿Qué es Claude.md?
&lt;/h2&gt;&lt;p&gt;En las herramientas de codificación de IA, archivos como &lt;code&gt;Claude.md&lt;/code&gt; y &lt;code&gt;AGENTS.md&lt;/code&gt; son esencialmente archivos de memoria global.&lt;/p&gt;
&lt;p&gt;La conversación normal entra en el contexto, pero la longitud del contexto es limitada. Una vez que la conversación se vuelve larga, el contenido histórico se comprime y se pierden algunos detalles. Un archivo de memoria global fija reglas importantes para que el modelo pueda verlas al comienzo de cada tarea.&lt;/p&gt;
&lt;p&gt;Esto significa dos cosas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El contenido escrito allí es más difícil de olvidar.&lt;/li&gt;
&lt;li&gt;El contenido escrito allí también cuesta algo en cada tarea.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No es como un README que se lee sólo cuando es necesario. Se parece más a un conjunto de limitaciones laborales de larga duración. Una vez que algo se coloca allí, afecta el juicio del modelo por defecto.&lt;/p&gt;
&lt;p&gt;Por lo tanto, &lt;code&gt;Claude.md&lt;/code&gt; no es una introducción al proyecto, ni una colección de consejos, ni un lugar para deshacerse de cada proceso de desarrollo. Sólo debe almacenar reglas que el modelo probablemente viole repetidamente si no las conoce.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-puede-empeorar-las-cosas&#34;&gt;Por qué puede empeorar las cosas
&lt;/h2&gt;&lt;p&gt;Un archivo de memoria global mal escrito suele provocar tres tipos de problemas.&lt;/p&gt;
&lt;p&gt;Primero, consume contexto.&lt;/p&gt;
&lt;p&gt;Si &lt;code&gt;Claude.md&lt;/code&gt; tiene mil líneas, esas líneas permanecen en el contexto del modelo durante mucho tiempo. Es posible que se reduzcan el código, los mensajes de error y los requisitos que realmente son relevantes para la tarea actual. El contexto no es espacio libre. Cuanto más grande sea el archivo de reglas globales, más fácil será diluir la tarea actual.&lt;/p&gt;
&lt;p&gt;En segundo lugar, puede desencadenar comportamientos innecesarios.&lt;/p&gt;
&lt;p&gt;Por ejemplo, un archivo global podría decir:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Before every task, fully read the project directory.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;After every change, run a complete end-to-end test.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Estas líneas parecen responsables, pero en un archivo de memoria global se convierten en &amp;ldquo;hacer esto para cada tarea&amp;rdquo;. Incluso si la tarea consiste solo en cambiar una línea de copia, el modelo puede realizar exploraciones y pruebas innecesarias debido a estas reglas. El resultado es un trabajo más lento, un costo más alto y, a veces, más interferencia.&lt;/p&gt;
&lt;p&gt;En tercer lugar, aumenta la carga del juicio.&lt;/p&gt;
&lt;p&gt;Declaraciones como &amp;ldquo;mantener el código elegante, conciso, mantenible y extensible&amp;rdquo; suenan correctas, pero son restricciones débiles. Cada vez que el modelo genera código, tiene que decidir qué significa elegante o extensible, sin recibir un límite claro.&lt;/p&gt;
&lt;p&gt;Un mejor enfoque es escribir prohibiciones o contraejemplos concretos en lugar de virtudes abstractas. Por ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Do not add a generic abstraction for a single call site.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Do not change shared parsing logic without test coverage.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Do not put temporary scripts in the application source directory.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Estas reglas son más específicas y más fáciles de seguir.&lt;/p&gt;
&lt;h2 id=&#34;qué-debería-entrar&#34;&gt;¿Qué debería entrar?
&lt;/h2&gt;&lt;p&gt;Puedes usar un estándar simple para decidir si algo pertenece a &lt;code&gt;Claude.md&lt;/code&gt;:&lt;/p&gt;
&lt;p&gt;Si la IA comete repetidamente el mismo error sin ella, entonces vale la pena anotarlo.&lt;/p&gt;
&lt;p&gt;El contenido adecuado para un archivo de memoria global suele tener estas características:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Es duradero&lt;/li&gt;
&lt;li&gt;Está fuertemente ligado al repositorio actual.&lt;/li&gt;
&lt;li&gt;No se puede inferir naturalmente de la estructura del código.&lt;/li&gt;
&lt;li&gt;Cambia claramente el comportamiento del modelo.&lt;/li&gt;
&lt;li&gt;Es preferiblemente una restricción, prohibición, regla de ruta o comando fijo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;For all Hugo posts, only edit index.zh-cn.md and do not automatically generate other language versions.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Article front matter must include title/date/draft/tags/categories/slug/description.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Do not modify generated artifacts under public/.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;On PowerShell, use scripts/deploy.ps1 for deployment.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Estas no son sugerencias vagas. Están vinculados a cómo funciona realmente el repositorio. Si el modelo no los conoce puede cometer errores; una vez que los conoce, puede evitar verdaderos errores.&lt;/p&gt;
&lt;h2 id=&#34;qué-debería-quedar-fuera&#34;&gt;¿Qué debería quedar fuera?
&lt;/h2&gt;&lt;p&gt;Mucha gente convierte &lt;code&gt;Claude.md&lt;/code&gt; en un manual de proyecto. Esto suele ser innecesario.&lt;/p&gt;
&lt;p&gt;El contenido que generalmente no pertenece allí incluye:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Visión y antecedentes del proyecto.&lt;/li&gt;
&lt;li&gt;Descripciones de estructuras de directorios grandes.&lt;/li&gt;
&lt;li&gt;Planes de tareas temporales&lt;/li&gt;
&lt;li&gt;Pasos únicos de depuración&lt;/li&gt;
&lt;li&gt;Lemas de calidad de código abstracto.&lt;/li&gt;
&lt;li&gt;Flujos de trabajo largos que solo son necesarios en algunas situaciones.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por ejemplo, una descripción como &amp;ldquo;este es un proyecto de comercio electrónico con módulos de producto, pedido y usuario&amp;rdquo; ayuda muy poco con una tarea de codificación concreta. Durante el desarrollo real, el modelo debe depender de los requisitos, especificaciones, estructura del código y pruebas actuales, no de una introducción aproximada del proyecto en la memoria global.&lt;/p&gt;
&lt;p&gt;Lo mismo se aplica a la estructura de directorios. A menos que un directorio tenga una convención especial, como &amp;ldquo;los componentes compartidos deben importarse desde este directorio&amp;rdquo;, no es necesario escribir el árbol completo en el archivo. El modelo puede leer el directorio del proyecto. Es fácil que una descripción de directorio estática quede obsoleta.&lt;/p&gt;
&lt;h2 id=&#34;los-flujos-de-trabajo-pertenecen-a-habilidades-o-comandos&#34;&gt;Los flujos de trabajo pertenecen a habilidades o comandos
&lt;/h2&gt;&lt;p&gt;Si una sección dice &amp;ldquo;primero haz esto, luego aquello y luego haz la tercera cosa&amp;rdquo;, es posible que no pertenezca a &lt;code&gt;Claude.md&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Los flujos de trabajo de larga duración se pueden convertir en habilidades, scripts o comandos. El beneficio es que la memoria global solo necesita conservar el nombre y la condición de activación, mientras que los pasos detallados se cargan solo cuando es necesario.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;When the user asks to translate a Hugo post, use the post-translate skill.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;When the user asks to deploy the site, run the hugo-rsync-deploy workflow.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Esto es más liviano que poner los procesos completos de traducción e implementación en &lt;code&gt;Claude.md&lt;/code&gt;. La memoria global sigue siendo corta y los flujos de trabajo detallados se encuentran en herramientas activables.&lt;/p&gt;
&lt;p&gt;El nuevo flujo de inicialización de Claude también avanza en esta dirección. No solo genera un &lt;code&gt;Claude.md&lt;/code&gt;; también intenta dividir los flujos de trabajo reutilizables en habilidades y los eventos fijos en ganchos. La idea subyacente es clara: la memoria global debería ser un punto de entrada, mientras que los detalles deberían cargarse según demanda.&lt;/p&gt;
&lt;h2 id=&#34;claudemd-necesita-iteración&#34;&gt;Claude.md necesita iteración
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Claude.md&lt;/code&gt; no debe escribirse una vez y luego ignorarse.&lt;/p&gt;
&lt;p&gt;Un mejor enfoque es ser breve al principio y dejar que las tareas reales expongan los problemas. Si ocurre un error una vez, manéjelo manualmente. Si el mismo tipo de error aparece dos o más veces, puede merecer convertirse en una regla global.&lt;/p&gt;
&lt;p&gt;Este tipo de iteración es más útil que escribir un enorme conjunto de reglas al principio. Al principio, no sabes qué reglas son realmente útiles o qué líneas se convertirán en ruido. A medida que el proyecto crece, la colaboración aumenta y el comportamiento del modelo se vuelve más claro, puede agregar gradualmente problemas de alta frecuencia.&lt;/p&gt;
&lt;p&gt;También hay una tendencia importante: cuanto más fuerte sea el modelo, más corto debería ser el archivo de memoria global.
Muchos requisitos que alguna vez tuvieron que escribirse en indicaciones ahora son manejados naturalmente por el modelo. Continuar poniendo esos requisitos básicos en &lt;code&gt;Claude.md&lt;/code&gt; solo aumenta la carga de contexto. La memoria global debería reducirse a medida que mejora la capacidad del modelo, manteniendo solo lo que es exclusivo de este repositorio y no se puede inferir automáticamente.&lt;/p&gt;
&lt;h2 id=&#34;una-forma-más-práctica-de-escribirlo&#34;&gt;Una forma más práctica de escribirlo
&lt;/h2&gt;&lt;p&gt;Al escribir &lt;code&gt;Claude.md&lt;/code&gt;, piense en este orden:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;¿Qué convenciones especiales tiene este repositorio?&lt;/li&gt;
&lt;li&gt;¿Qué errores ha cometido el modelo más de una vez?&lt;/li&gt;
&lt;li&gt;¿Qué directorios, archivos o comandos nunca deben usarse indebidamente?&lt;/li&gt;
&lt;li&gt;¿Qué flujos de trabajo deberían convertirse en habilidades, guiones o comandos en lugar de un contexto permanente?&lt;/li&gt;
&lt;li&gt;¿Qué partes son meras introducciones y pueden eliminarse?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;El archivo final puede tener sólo unas pocas docenas de líneas. No es necesario explicar completamente el proyecto. Necesita limitar el comportamiento con precisión.&lt;/p&gt;
&lt;p&gt;Un buen &lt;code&gt;Claude.md&lt;/code&gt; podría verse así:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# Working Rules
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- Only edit files related to the current task.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- Do not modify generated artifact directories such as public/ or resources/.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- Hugo post rewrites only process index.zh-cn.md and do not generate other language versions.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- If deployment is involved, run the Hugo build first, then execute the existing rsync script.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- When there are existing user changes, do not revert them. Continue from the current state.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Es breve, pero cada línea afecta el comportamiento real. Ese es el tipo de contenido que vale la pena mantener en contexto permanentemente.&lt;/p&gt;
&lt;h2 id=&#34;pensamiento-final&#34;&gt;Pensamiento final
&lt;/h2&gt;&lt;p&gt;El valor de &lt;code&gt;Claude.md&lt;/code&gt; no es hacer que la IA &amp;ldquo;sepa más&amp;rdquo;. Se trata de hacer que la IA &amp;ldquo;evite errores corregidos&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;No es una base de conocimientos ni una enciclopedia de proyectos. Es un archivo de restricciones de larga duración para la codificación AI.&lt;br&gt;
Cuanto más específico, breve y cercano a los errores reales sea, más útil será. Cuanto más genérica, más larga y más parecida a una introducción de proyecto sea, más probable será que ralentice el modelo o incluso empeore los resultados.&lt;/p&gt;
&lt;p&gt;Trate la memoria global como un recurso escaso, no como un bloc de notas ilimitado. Ese puede ser el principio más importante para escribir un buen &lt;code&gt;Claude.md&lt;/code&gt;.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Codex está empezando a controlar la computadora. ¿Qué significa eso para el futuro?</title>
        <link>https://knightli.com/es/2026/04/29/codex-computer-use-update/</link>
        <pubDate>Wed, 29 Apr 2026 11:28:25 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/29/codex-computer-use-update/</guid>
        <description>&lt;p&gt;La parte más importante de esta actualización del Codex no es que agregó otro botón común y corriente. Es que el Codex está empezando a avanzar hacia &amp;ldquo;controlar la computadora&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;En el pasado, usar IA generalmente significaba hacer preguntas en un cuadro de chat, copiar, pegar y luego operar manualmente el software.&lt;br&gt;
Ahora ese límite se está ampliando: la IA no solo te responde. Puede operar aplicaciones de escritorio según su objetivo.&lt;/p&gt;
&lt;p&gt;A corto plazo, esta es una característica nueva. A largo plazo, puede cambiar la cantidad de personas que usan computadoras.&lt;/p&gt;
&lt;h2 id=&#34;qué-es-esta-característica&#34;&gt;¿Qué es esta característica?
&lt;/h2&gt;&lt;p&gt;En pocas palabras, la capacidad de uso de computadoras de Codex le permite acceder y operar el entorno de escritorio.&lt;/p&gt;
&lt;p&gt;Puede hacer cosas como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;seleccionar y controlar una aplicación&lt;/li&gt;
&lt;li&gt;recibir tareas en lenguaje natural&lt;/li&gt;
&lt;li&gt;abrir navegadores, herramientas de inteligencia artificial, archivos locales u otro software&lt;/li&gt;
&lt;li&gt;ingrese texto, haga clic en botones y espere resultados&lt;/li&gt;
&lt;li&gt;conectar varios pasos en una tarea&lt;/li&gt;
&lt;li&gt;seguir ejecutándose en segundo plano sin necesidad de que el usuario siga cada paso manualmente&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Su función no es solo escribir un texto para usted, sino también completar un flujo de operación para usted.&lt;/p&gt;
&lt;p&gt;Esa es la diferencia clave entre un Agente y un chatbot común y corriente:&lt;br&gt;
un chatbot da principalmente respuestas; un Agente está más cerca de &amp;ldquo;recibir un objetivo y luego ejecutarlo&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-esto-es-importante&#34;&gt;Por qué esto es importante
&lt;/h2&gt;&lt;p&gt;En el pasado, gran parte de la automatización requería que supieras escribir guiones.&lt;/p&gt;
&lt;p&gt;Por ejemplo, supongamos que desea completar un flujo de trabajo entre software:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;abrir una página web&lt;/li&gt;
&lt;li&gt;encontrar información&lt;/li&gt;
&lt;li&gt;copiar contenido&lt;/li&gt;
&lt;li&gt;pásalo a otra herramienta de IA&lt;/li&gt;
&lt;li&gt;guardar un archivo&lt;/li&gt;
&lt;li&gt;abre el directorio local y comprueba el resultado&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para automatizar esto de forma tradicional, es posible que necesite scripts de navegador, API, programas locales e incluso automatización de ventanas.&lt;/p&gt;
&lt;p&gt;Pero muchos usuarios comunes y corrientes no saben cómo escribir estas cosas.&lt;br&gt;
Incluso si lo hacen, puede que no valga la pena escribir un guión para una tarea temporal.&lt;/p&gt;
&lt;p&gt;Aquí es donde importa el uso de la computadora: empuja la &amp;ldquo;capacidad similar a un script&amp;rdquo; hacia el lenguaje natural.&lt;/p&gt;
&lt;p&gt;No es necesario que le diga exactamente dónde hacer clic.&lt;br&gt;
Puede decirle qué resultado desea y dejar que intente completar la tarea.&lt;/p&gt;
&lt;h2 id=&#34;flujos-de-trabajo-que-pueden-cambiar&#34;&gt;Flujos de trabajo que pueden cambiar
&lt;/h2&gt;&lt;p&gt;Creo que los primeros flujos de trabajo que cambiarán no serán trabajos extremadamente serios o de alto riesgo, sino tareas molestas, fragmentadas, repetitivas y para las que no vale la pena escribir un programa dedicado.&lt;/p&gt;
&lt;h3 id=&#34;1-mover-información-a-través-del-software&#34;&gt;1. Mover información a través del software
&lt;/h3&gt;&lt;p&gt;El caso más típico es el de mover información entre aplicaciones.&lt;/p&gt;
&lt;p&gt;Anteriormente, podía alternar entre un navegador, un documento, una ventana de chat y una carpeta local.&lt;br&gt;
En el futuro, podrás encargar este tipo de tarea a un Agente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;encontrar cierto tipo de información&lt;/li&gt;
&lt;li&gt;resumirlo en un documento&lt;/li&gt;
&lt;li&gt;guárdelo en un directorio específico&lt;/li&gt;
&lt;li&gt;abre el resultado para que lo revises&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Este trabajo no es difícil, pero requiere atención.&lt;br&gt;
El valor de un Agente es que absorbe estas pequeñas operaciones.&lt;/p&gt;
&lt;h3 id=&#34;2-coordinación-entre-múltiples-herramientas-de-ia&#34;&gt;2. Coordinación entre múltiples herramientas de IA
&lt;/h3&gt;&lt;p&gt;El flujo de trabajo real de muchas personas ya no se basa en una única herramienta de inteligencia artificial.&lt;/p&gt;
&lt;p&gt;Puede verse así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;una herramienta escribe código&lt;/li&gt;
&lt;li&gt;una herramienta busca información&lt;/li&gt;
&lt;li&gt;una herramienta genera imágenes&lt;/li&gt;
&lt;li&gt;una herramienta organiza documentos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Anteriormente, estas herramientas se conectaban mediante copiar y pegar manualmente.&lt;br&gt;
En el futuro, un Agente puede convertirse en la capa intermedia: abre herramientas, pasa contexto, espera resultados y organiza resultados.
Esto puede convertir &amp;ldquo;múltiples herramientas de IA trabajando juntas&amp;rdquo; de un proceso manual a un proceso semiautomático.&lt;/p&gt;
&lt;h3 id=&#34;3-automatización-del-software-de-oficina&#34;&gt;3. Automatización del software de oficina
&lt;/h3&gt;&lt;p&gt;Las hojas de cálculo, las presentaciones, los documentos y el correo electrónico comparten una característica: son potentes, pero muchas operaciones están fragmentadas.&lt;/p&gt;
&lt;p&gt;Si los agentes pueden controlar este software de forma fiable, la barrera a la automatización de oficinas disminuirá notablemente.&lt;/p&gt;
&lt;p&gt;No es necesario recordar dónde está un menú ni aprender atajos complicados.&lt;br&gt;
Solo necesitas describir el objetivo, como por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;convierta esta hoja de cálculo en un informe mensual&lt;/li&gt;
&lt;li&gt;hacer un resumen de una página de este documento&lt;/li&gt;
&lt;li&gt;combinar estos materiales en una explicación claramente estructurada&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Las tediosas operaciones de los botones quedarán gradualmente ocultas detrás del lenguaje natural.&lt;/p&gt;
&lt;h2 id=&#34;qué-significa-para-los-usuarios-comunes&#34;&gt;Qué significa para los usuarios comunes
&lt;/h2&gt;&lt;p&gt;Para los usuarios comunes, este tipo de característica puede tener un impacto más directo que &amp;ldquo;el modelo se volvió un poco más inteligente&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Porque reduce la barrera operativa, no sólo la barrera del conocimiento.&lt;/p&gt;
&lt;p&gt;Muchas personas pueden describir lo que quieren, pero no saben dónde hacer clic o cómo combinar funciones dentro del software.&lt;br&gt;
Si los Agentes pueden hacerse cargo de esta parte, el uso de una computadora puede convertirse en:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;I describe the goal
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Agent operates the software
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;I check the result
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Esto está más cerca de la productividad real que un simple chat.&lt;/p&gt;
&lt;h2 id=&#34;su-impacto-en-el-software&#34;&gt;Su impacto en el software
&lt;/h2&gt;&lt;p&gt;Si este tipo de capacidad del Agente continúa madurando, el software en sí también se verá afectado.&lt;/p&gt;
&lt;p&gt;En el pasado, el diseño de software se basaba principalmente en el clic humano.&lt;br&gt;
En el futuro, es posible que también sea necesario que el software sirva para la operación del Agente.&lt;/p&gt;
&lt;p&gt;Esto significa:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;los elementos de la interfaz deben ser más claros&lt;/li&gt;
&lt;li&gt;la retroalimentación de operación debe ser más estable&lt;/li&gt;
&lt;li&gt;los permisos locales deben ser más granulares&lt;/li&gt;
&lt;li&gt;el software puede proporcionar interfaces más adecuadas para las llamadas de los agentes&lt;/li&gt;
&lt;li&gt;A los usuarios les puede interesar más si la IA puede operar el software sin problemas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A largo plazo, los límites entre las aplicaciones pueden volverse más delgados.&lt;br&gt;
Es posible que a los usuarios les importe menos &amp;ldquo;qué aplicación debo abrir&amp;rdquo; y más &amp;ldquo;qué tarea quiero completar&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;no-lo-exageres-todavía&#34;&gt;No lo exageres todavía
&lt;/h2&gt;&lt;p&gt;Por supuesto, todavía no es momento de dejarlo ir por completo.&lt;/p&gt;
&lt;p&gt;Este tipo de capacidad todavía tiene varias limitaciones claras:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;la estabilidad aún necesita observación&lt;/li&gt;
&lt;li&gt;las tareas complejas pueden fallar en el medio&lt;/li&gt;
&lt;li&gt;los límites de los permisos deben manejarse con cuidado&lt;/li&gt;
&lt;li&gt;Las operaciones de eliminación de cuentas, pagos y archivos no deben delegarse a la ligera.&lt;/li&gt;
&lt;li&gt;el consumo de cuotas no es algo que puedas ignorar por completo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Entonces, en esta etapa, el mejor caso de uso es no dejar que se haga cargo de toda la computadora, sino permitir que maneje tareas de bajo riesgo, revisables y con muchos pasos.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;organización de materiales&lt;/li&gt;
&lt;li&gt;generar borradores&lt;/li&gt;
&lt;li&gt;mover contenido entre herramientas&lt;/li&gt;
&lt;li&gt;abrir y comprobar archivos&lt;/li&gt;
&lt;li&gt;ejecutar flujos de trabajo semiautomáticos que pueden ser revisados por un humano&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;una-última-línea&#34;&gt;Una última línea
&lt;/h2&gt;&lt;p&gt;La verdadera importancia de esta actualización del Codex es que empuja a la IA de &amp;ldquo;responder preguntas&amp;rdquo; a &amp;ldquo;operar el entorno&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;A corto plazo, es una característica del uso de la computadora.&lt;br&gt;
A largo plazo, puede marcar un cambio en la forma en que se utilizan las computadoras personales.&lt;/p&gt;
&lt;p&gt;En el futuro, es posible que dediquemos menos tiempo a recordar botones, buscar menús y cambiar de ventana.&lt;br&gt;
Más a menudo, describiremos el objetivo, dejaremos que un Agente lo ejecute y luego dejaremos que los humanos tomen el juicio final.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>¿Por qué existe una habilidad del Codex en el directorio pero aún no aparece?</title>
        <link>https://knightli.com/es/2026/04/29/codex-skill-not-loaded-because-of-utf-8-bom/</link>
        <pubDate>Wed, 29 Apr 2026 11:18:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/29/codex-skill-not-loaded-because-of-utf-8-bom/</guid>
        <description>&lt;p&gt;Este problema era fácil de pasar por alto: varias habilidades ya estaban ubicadas en &lt;code&gt;~/.codex/skills&lt;/code&gt;, pero después de abrir un nuevo hilo del Codex, la barra lateral todavía mostraba solo un pequeño subconjunto de ellas.&lt;/p&gt;
&lt;p&gt;Al principio, parecía un problema de caché o de indexación. La causa real fue más específica: varios archivos &lt;code&gt;SKILL.md&lt;/code&gt; comenzaron con una lista de materiales UTF-8. El cargador de habilidades de Codex 0.111.0 no omitió esa secuencia de bytes, por lo que calculó erróneamente que los archivos no tenían contenido YAML válido.&lt;/p&gt;
&lt;h2 id=&#34;síntoma&#34;&gt;Síntoma
&lt;/h2&gt;&lt;p&gt;El directorio local contenía estas habilidades:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;~/.codex/skills/git-commit-push/SKILL.md
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;~/.codex/skills/hugo-rsync-deploy/SKILL.md
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;~/.codex/skills/bilibili-speech-transcriber/SKILL.md
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;~/.codex/skills/product-cutout-normalize/SKILL.md
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Pero después de abrir un hilo nuevo, las habilidades realmente expuestas fueron solo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bilibili-speech-transcriber
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;product-cutout-normalize
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;En otras palabras, un archivo existente en el disco no significa que la sesión actual pueda cargarlo correctamente. Codex analiza primero la portada de cada &lt;code&gt;SKILL.md&lt;/code&gt;. Si el análisis falla, esa habilidad se excluye directamente.&lt;/p&gt;
&lt;h2 id=&#34;investigación&#34;&gt;Investigación
&lt;/h2&gt;&lt;p&gt;Iniciar una nueva sesión con &lt;code&gt;codex exec&lt;/code&gt; mostró un error más directo. En VS Code u otros IDE, es posible que estos registros no sean visibles:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;failed to load skill C:\Users\knightli\.codex\skills\git-commit-push\SKILL.md: missing YAML frontmatter delimited by ---
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;failed to load skill C:\Users\knightli\.codex\skills\hugo-rsync-deploy\SKILL.md: missing YAML frontmatter delimited by ---
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Visualmente, estos archivos parecían tener un encabezado normal:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;name: post-rewrite
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;description: ...
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El verdadero problema estaba en el nivel de bytes.&lt;/p&gt;
&lt;p&gt;El comienzo de un archivo fallido fue:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;EF-BB-BF-2D-2D-2D
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El comienzo de un archivo que se cargó correctamente fue:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;2D-2D-2D
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;2D-2D-2D&lt;/code&gt; es &lt;code&gt;---&lt;/code&gt;. El &lt;code&gt;EF-BB-BF&lt;/code&gt; anterior es la lista de materiales UTF-8.&lt;/p&gt;
&lt;h2 id=&#34;causa&#34;&gt;Causa
&lt;/h2&gt;&lt;p&gt;En Codex 0.111.0, el cargador de habilidades espera que el primer byte de &lt;code&gt;SKILL.md&lt;/code&gt; sea el primer &lt;code&gt;-&lt;/code&gt; en &lt;code&gt;---&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Si el archivo comienza con una lista de materiales UTF-8, el comienzo real será:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;BOM + ---
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Entonces, el cargador piensa que el archivo no comienza con el delimitador inicial e informa:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;missing YAML frontmatter delimited by ---
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El contenido de la habilidad no era incorrecto y el directorio tampoco era incorrecto. Un pequeño detalle de codificación impidió que el analizador reconociera el archivo.&lt;/p&gt;
&lt;h2 id=&#34;arreglar&#34;&gt;Arreglar
&lt;/h2&gt;&lt;p&gt;Convierta los archivos &lt;code&gt;SKILL.md&lt;/code&gt; afectados a UTF-8 sin BOM.&lt;/p&gt;
&lt;p&gt;En PowerShell, esto se puede hacer así:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$paths&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;vm&#34;&gt;@&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;s1&#34;&gt;&amp;#39;C:\Users\knightli\.codex\skills\git-commit-push\SKILL.md&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;s1&#34;&gt;&amp;#39;C:\Users\knightli\.codex\skills\hugo-rsync-deploy\SKILL.md&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$utf8NoBom&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;New-Object&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;System&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Text&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;UTF8Encoding&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;vm&#34;&gt;$false&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;foreach&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$p&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$paths&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nv&#34;&gt;$text&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;no&#34;&gt;IO.File&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]::&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ReadAllText&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$p&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;no&#34;&gt;Text.Encoding&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]::&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;UTF8&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;no&#34;&gt;IO.File&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]::&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;WriteAllText&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$p&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$text&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$utf8NoBom&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Después del procesamiento, el encabezado del archivo debería cambiar de:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;EF-BB-BF-2D-2D-2D
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;a:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;2D-2D-2D
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;verificación&#34;&gt;Verificación
&lt;/h2&gt;&lt;p&gt;Después de reiniciar una sesión del Codex, las habilidades visibles se restauraron en:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git-commit-push-zh
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hugo-rsync-deploy
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bilibili-speech-transcriber
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;product-cutout-normalize
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si la barra lateral todavía muestra la lista anterior, cierre la barra lateral o ventana actual del Codex y vuelva a abrir el proyecto. La lista de habilidades generalmente se carga cuando comienza la sesión, por lo que es posible que los cambios realizados en mitad de una sesión no se actualicen inmediatamente.&lt;/p&gt;
&lt;h2 id=&#34;una-última-línea&#34;&gt;Una última línea
&lt;/h2&gt;&lt;p&gt;Este tipo de problema es fácil de confundir con &amp;ldquo;El Codex no se volvió a indexar&amp;rdquo; o &amp;ldquo;la habilidad no se instaló correctamente&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Al solucionar problemas, verifique primero estas tres cosas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;si &lt;code&gt;SKILL.md&lt;/code&gt; está realmente en el directorio correcto&lt;/li&gt;
&lt;li&gt;si el archivo tiene un texto inicial &lt;code&gt;---&lt;/code&gt; válido en la parte superior&lt;/li&gt;
&lt;li&gt;si el archivo es UTF-8 sin BOM&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La clave en este caso fue el tercer punto: el archivo se veía bien, pero su primer byte no era &amp;ldquo;-&amp;rdquo;, por lo que Codex no lo trató como una habilidad válida.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>¿Cuál es la diferencia entre ~/.codex/skills y Project .codex/skills en Codex?</title>
        <link>https://knightli.com/es/2026/04/29/difference-between-global-and-project-codex-skills/</link>
        <pubDate>Wed, 29 Apr 2026 11:08:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/29/difference-between-global-and-project-codex-skills/</guid>
        <description>&lt;p&gt;Al organizar las habilidades del Codex, la gente suele quedarse estancada en dos preguntas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;¿Cuál es la diferencia entre &lt;code&gt;~/.codex/skills&lt;/code&gt; y &lt;code&gt;project/.codex/skills&lt;/code&gt;?&lt;/li&gt;
&lt;li&gt;¿Por qué existe una habilidad en el directorio pero no aparece en la sesión actual?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Aquí está la versión corta.&lt;/p&gt;
&lt;h2 id=&#34;la-diferencia&#34;&gt;La diferencia
&lt;/h2&gt;&lt;p&gt;La forma más sencilla de recordarlo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;~/.codex/skills&lt;/code&gt; es tu biblioteca de habilidades global&lt;/li&gt;
&lt;li&gt;&lt;code&gt;project/.codex/skills&lt;/code&gt; es la biblioteca de habilidades local para ese repositorio&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;codexskills&#34;&gt;&lt;code&gt;~/.codex/skills&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Úselo para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Habilidades que reutilizas personalmente en todos los proyectos.&lt;/li&gt;
&lt;li&gt;flujos de trabajo generales que no están vinculados a un repositorio específico&lt;/li&gt;
&lt;li&gt;flujos de trabajo que claramente pertenecen a sus propios hábitos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;post-reescritura&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;post-traducir&lt;/code&gt;
-&lt;code&gt;git-commit-push&lt;/code&gt;
-&lt;code&gt;hugo-rsync-deploy&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bilibili-transcriptor-de-voz&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El rasgo clave de este tipo de habilidad es: &lt;strong&gt;todavía tiene sentido fuera del proyecto actual.&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&#34;proyectocodexskills&#34;&gt;&lt;code&gt;proyecto/.codex/skills&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Úselo para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;flujos de trabajo que solo se aplican a este repositorio&lt;/li&gt;
&lt;li&gt;reglas estrechamente acopladas a la estructura, scripts o plantillas del proyecto actual&lt;/li&gt;
&lt;li&gt;Habilidades que deben ser compartidas por el equipo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;un flujo de trabajo de publicación específico para este repositorio&lt;/li&gt;
&lt;li&gt;una plantilla de generación que solo funciona en este proyecto&lt;/li&gt;
&lt;li&gt;pasos de automatización estrechamente vinculados a scripts de proyectos privados&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El rasgo clave de este tipo de habilidad es: &lt;strong&gt;deja de ser significativo una vez que sale de este repositorio.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;cuándo-utilizar-habilidades-globales-y-cuándo-utilizar-habilidades-de-proyecto&#34;&gt;Cuándo utilizar habilidades globales y cuándo utilizar habilidades de proyecto
&lt;/h2&gt;&lt;p&gt;Esta regla general es suficiente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si se trata de tus hábitos personales, ponlo en &lt;code&gt;~/.codex/skills&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Si se trata de reglas del repositorio, colóquelo en &lt;code&gt;project/.codex/skills&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Si se puede reutilizar en todos los proyectos, prefiera global&lt;/li&gt;
&lt;li&gt;Si debe ser compartido por varias personas y evolucionar con el repositorio, prefiera el nivel de proyecto&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;el-repositorio-actual&#34;&gt;El repositorio actual
&lt;/h2&gt;&lt;p&gt;Basado en el estado actual:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;su máquina tiene &lt;code&gt;~/.codex/skills&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;este repositorio no tiene &lt;code&gt;.codex/skills&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Así que ahora mismo dependes principalmente de las habilidades globales.&lt;/p&gt;
&lt;p&gt;Eso significa que flujos de trabajo como &amp;ldquo;post-reescritura&amp;rdquo;, &amp;ldquo;post-traducción&amp;rdquo; y &amp;ldquo;git-commit-push&amp;rdquo; son actualmente más bien parte de su flujo de trabajo personal, no algo incluido explícitamente con este repositorio.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-existe-una-habilidad-en-el-disco-pero-puede-no-aparecer-en-la-sesión-actual&#34;&gt;Por qué existe una habilidad en el disco pero puede no aparecer en la sesión actual
&lt;/h2&gt;&lt;p&gt;Hay dos cosas diferentes aquí:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Existente en el disco&lt;/strong&gt;: el archivo de habilidad existe en un directorio local&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expuesto a la sesión&lt;/strong&gt;: la sesión actual lo registró en la lista de habilidades disponibles&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estos no son lo mismo.&lt;/p&gt;
&lt;p&gt;Entonces esto puede suceder:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ya existe una habilidad en &lt;code&gt;~/.codex/skills&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;pero no aparece en la lista después de &lt;code&gt;/&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por lo general, esto no significa que la habilidad esté rota. Más a menudo significa: &lt;strong&gt;la sesión actual no la ha vuelto a indexar.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;cómo-hacer-que-una-habilidad-esté-disponible-en-la-sesión-actual&#34;&gt;Cómo hacer que una habilidad esté disponible en la sesión actual
&lt;/h2&gt;&lt;p&gt;La lista de verificación práctica es breve.&lt;/p&gt;
&lt;h3 id=&#34;1-colóquelo-en-el-directorio-correcto&#34;&gt;1. Colóquelo en el directorio correcto
&lt;/h3&gt;&lt;p&gt;Mundiales:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;~/.codex/skills/&amp;lt;skill-name&amp;gt;/SKILL.md
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Nivel de proyecto:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;project/.codex/skills/&amp;lt;skill-name&amp;gt;/SKILL.md
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;2-haga-que-el-encabezado-skillmd-sea-reconocible&#34;&gt;2. Haga que el encabezado &lt;code&gt;SKILL.md&lt;/code&gt; sea reconocible
&lt;/h3&gt;&lt;p&gt;Como mínimo, necesita:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;name: your-skill-name
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;description: What this skill does
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;3-abra-una-nueva-sesión-después-de-crearla-o-editarla&#34;&gt;3. Abra una nueva sesión después de crearla o editarla
&lt;/h3&gt;&lt;p&gt;En muchos casos, una habilidad no aparece porque la sesión actual ya fijó su lista de habilidades disponibles cuando comenzó.&lt;/p&gt;
&lt;p&gt;Entonces, si crea una habilidad en medio de una sesión, es posible que ya exista en el disco, pero es posible que esta sesión no la reconozca.&lt;/p&gt;
&lt;p&gt;El flujo de trabajo más confiable es:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Ponga en práctica la habilidad&lt;/li&gt;
&lt;li&gt;Finalizar la sesión actual&lt;/li&gt;
&lt;li&gt;Vuelva a ingresar al proyecto.&lt;/li&gt;
&lt;li&gt;Abre una nueva sesión&lt;/li&gt;
&lt;li&gt;Compruebe si aparece debajo de &lt;code&gt;/&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;4-implemente-las-habilidades-para-el-proyecto-antes-de-comenzar&#34;&gt;4. Implemente las habilidades para el proyecto antes de comenzar
&lt;/h3&gt;&lt;p&gt;Si desea que &lt;code&gt;project/.codex/skills&lt;/code&gt; se reconozca de manera más confiable, coloque esas habilidades en el proyecto antes de ingresar al repositorio e iniciar la sesión.&lt;/p&gt;
&lt;h2 id=&#34;una-última-línea&#34;&gt;Una última línea
&lt;/h2&gt;&lt;p&gt;La conclusión más corta es:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;~/.codex/skills&lt;/code&gt; es tu biblioteca de habilidades personales&lt;/li&gt;
&lt;li&gt;&lt;code&gt;project/.codex/skills&lt;/code&gt; es la biblioteca de reglas local del repositorio&lt;/li&gt;
&lt;li&gt;una habilidad existente en el directorio no significa que la sesión actual siempre la mostrará&lt;/li&gt;
&lt;li&gt;la solución más común es colocarlo en el directorio correcto, escribir un &lt;code&gt;SKILL.md&lt;/code&gt; válido y luego iniciar una nueva sesión&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Cómo elegir entre GPT 5.5, Claude Opus 4.7, DeepSeek V4 y Qwen 3.6 Max</title>
        <link>https://knightli.com/es/2026/04/28/coding-ai-benchmark-gpt55-claude-opus47-deepseek-v4-qwen36max/</link>
        <pubDate>Tue, 28 Apr 2026 22:18:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/28/coding-ai-benchmark-gpt55-claude-opus47-deepseek-v4-qwen36max/</guid>
        <description>&lt;p&gt;Si solo quieres la respuesta corta, recuerda primero esta versión:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si desea la opción más confiable y la menor pérdida de tiempo, comience con &lt;code&gt;GPT 5.5&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Si lo que más le importa es la presentación de la página, la creatividad y el pulido visual, &lt;code&gt;Claude Opus 4.7&lt;/code&gt; sigue siendo potente.&lt;/li&gt;
&lt;li&gt;Si desea saber qué modelo nacional se acerca más al nivel superior, &amp;ldquo;Qwen 3.6 Max&amp;rdquo; es altamente competitivo ahora&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DeepSeek V4&lt;/code&gt; no es débil, pero su salida es más desigual que la de los demás&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cuando la gente pregunta qué IA de codificación es la más potente en este momento, normalmente no preguntan por una tabla de clasificación. Piden algo más práctico:&lt;br&gt;
&lt;strong&gt;Si necesito crear una página, hacer una demostración, generar una pequeña herramienta o agregar interacción, ¿qué modelo es más probable que me brinde algo utilizable en el primer intento?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Desde ese ángulo, las diferencias entre estos modelos ya son bastante claras.&lt;/p&gt;
&lt;h2 id=&#34;el-veredicto-general&#34;&gt;El veredicto general
&lt;/h2&gt;&lt;p&gt;Si coloca &lt;code&gt;GPT 5.5&lt;/code&gt;, &lt;code&gt;Claude Opus 4.7&lt;/code&gt;, &lt;code&gt;DeepSeek V4&lt;/code&gt; y &lt;code&gt;Qwen 3.6 Max&lt;/code&gt; uno al lado del otro, la opción más consistente sigue siendo &lt;code&gt;GPT 5.5&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;No siempre es el más llamativo, pero rara vez te deja claramente decepcionado. Es rápido, el primer borrador generalmente sale con un alto nivel de finalización y maneja la lógica, la interacción, el movimiento y los juegos pequeños con mano firme.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Claude Opus 4.7&lt;/code&gt; se siente diferente. Su mayor fortaleza no es la pura estabilidad. Es la atmósfera de la página, la organización de la interfaz de usuario y la presentación. Muchas veces, abres lo que hizo y tu primera reacción es simplemente que se ve pulido. Si la presentación visual te importa más, vale la pena considerarla.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Qwen 3.6 Max&lt;/code&gt; es el que más merece una nueva apariencia. Ya no es sólo &amp;ldquo;utilizable para un modelo doméstico&amp;rdquo;. En algunos escenarios, realmente puede competir con &amp;ldquo;GPT 5.5&amp;rdquo; en calidad de salida. En las páginas frontales, la integridad visual y el realismo, ha comenzado a generar una presencia real.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;DeepSeek V4&lt;/code&gt; no falla porque no puede hacer el trabajo. El problema es que es menos predecible. Cuando funciona, puede ser perfectamente sólido y, a veces, sorprendentemente bueno. Pero la brecha entre sus mejores y más débiles resultados es aún más obvia que en el caso de los demás.&lt;/p&gt;
&lt;h2 id=&#34;dónde-gpt-55-es-más-fuerte&#34;&gt;Dónde &lt;code&gt;GPT 5.5&lt;/code&gt; es más fuerte
&lt;/h2&gt;&lt;p&gt;Si las cosas que haces con más frecuencia se ven así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Generar una página web completa.&lt;/li&gt;
&lt;li&gt;Crea una pequeña demostración con movimiento.&lt;/li&gt;
&lt;li&gt;Crear una página interactiva con algo de lógica.&lt;/li&gt;
&lt;li&gt;Generar un pequeño juego o una interacción multiestado.&lt;/li&gt;
&lt;li&gt;Mantener el retrabajo al mínimo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Entonces &amp;ldquo;GPT 5.5&amp;rdquo; sigue siendo la respuesta predeterminada más segura.&lt;/p&gt;
&lt;p&gt;Sus ventajas son principalmente estas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Generación rápida de código.&lt;/li&gt;
&lt;li&gt;Alta usabilidad desde el primer borrador&lt;/li&gt;
&lt;li&gt;Menos errores graves en lógica e interacción.&lt;/li&gt;
&lt;li&gt;Rendimiento estable en tareas mixtas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para decirlo de manera más simple, &amp;ldquo;GPT 5.5&amp;rdquo; parece el modelo con más probabilidades de lograr las bases correctas en la primera pasada.&lt;br&gt;
Lo que mucha gente realmente necesita no es el resultado más deslumbrante en una categoría. Necesitan que la primera versión no se rompa. En ese frente, sigue siendo la opción menos estresante.&lt;/p&gt;
&lt;p&gt;Por supuesto, no está exenta de debilidades.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;En páginas muy visuales, no siempre es lo más sorprendente.&lt;/li&gt;
&lt;li&gt;A veces es tan estable que deja menos impresión de diseño&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Entonces, si desea una recomendación predeterminada, sigue siendo &amp;ldquo;GPT 5.5&amp;rdquo;.&lt;br&gt;
Eso no significa que sea el único que vale la pena mirar.&lt;/p&gt;
&lt;h2 id=&#34;a-quién-se-adapta-mejor-claude-opus-47&#34;&gt;¿A quién se adapta mejor &lt;code&gt;Claude Opus 4.7&lt;/code&gt;?
&lt;/h2&gt;&lt;p&gt;El atractivo de &amp;ldquo;Claude Opus 4.7&amp;rdquo; proviene más de cómo se siente la página.&lt;/p&gt;
&lt;p&gt;Sus puntos fuertes suelen ser:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Estructura de interfaz de usuario más limpia&lt;/li&gt;
&lt;li&gt;Presentación visual más completa&lt;/li&gt;
&lt;li&gt;Mayor calidad de presentación en algunas páginas.&lt;/li&gt;
&lt;li&gt;Creatividad más notoria en visualización y diseño.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si el modelo te ayuda a construir cosas como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Páginas de demostración&lt;/li&gt;
&lt;li&gt;Páginas de presentación de datos.&lt;/li&gt;
&lt;li&gt;Páginas pequeñas donde la sensación visual importa mucho.&lt;/li&gt;
&lt;li&gt;Resultados que deberían lucir pulidos inmediatamente&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Entonces &amp;ldquo;Claude&amp;rdquo; todavía merece un lugar cerca de la cima.&lt;/p&gt;
&lt;p&gt;Sus debilidades también son bastante claras:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No es tan estable como &lt;code&gt;GPT 5.5&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;A veces se ve bien, pero la lógica detallada se desvía.&lt;/li&gt;
&lt;li&gt;En algunos casos, el código se ejecuta, pero la experiencia principal no es del todo correcta.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Así que &amp;ldquo;Claude&amp;rdquo; se siente más como un modelo frontal con instinto estético extra.&lt;br&gt;
Si su primera prioridad es el aspecto de la página, tiene ventajas reales. Si tu mayor temor es un error lógico en el primer resultado, debes tener un poco más de cuidado.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-qwen-36-max-merece-una-atención-seria&#34;&gt;Por qué &lt;code&gt;Qwen 3.6 Max&lt;/code&gt; merece una atención seria
&lt;/h2&gt;&lt;p&gt;Entre estos modelos, el &amp;ldquo;Qwen 3.6 Max&amp;rdquo; ofrece la mayor sensación de impulso.&lt;/p&gt;
&lt;p&gt;No hace mucho, muchas personas analizaban la IA de codificación doméstica preguntándose principalmente si podría mantenerse al día. Con &lt;code&gt;Qwen 3.6 Max&lt;/code&gt;, la pregunta ya es diferente:&lt;br&gt;
&lt;strong&gt;En escenarios de producción frontal, ¿puede competir directamente con los mejores modelos extranjeros?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Sus áreas más fuertes en este momento incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Salida de página atractiva&lt;/li&gt;
&lt;li&gt;Movimiento sólido y efectos visuales realistas en algunos casos.&lt;/li&gt;
&lt;li&gt;Salidas que se sienten más completas.&lt;/li&gt;
&lt;li&gt;Resultados que a veces pueden acercarse o permanecer cerca de &lt;code&gt;GPT 5.5&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Eso dice algo importante.&lt;br&gt;
Si su caso de uso se inclina hacia páginas web, trabajo frontend y resultados con muchas presentaciones, &lt;code&gt;Qwen 3.6 Max&lt;/code&gt; ya no es solo una opción de respaldo. Puede ser tratado como un candidato principal serio.&lt;/p&gt;
&lt;p&gt;Sin embargo, todavía tiene algunas debilidades.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;En tareas lógicas con mucha interacción, aún puede perder un poco de integridad.&lt;/li&gt;
&lt;li&gt;Algunas páginas se ven muy bien, mientras que algunas tareas son más planas de lo esperado.&lt;/li&gt;
&lt;li&gt;Su variación es aún mayor que &lt;code&gt;GPT 5.5&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Aun así, su presencia actual ya es muy fuerte.&lt;br&gt;
Si desea saber qué modelo doméstico merece la mayor atención en este momento, es difícil pasar por alto el &amp;ldquo;Qwen 3.6 Max&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;dónde-se-encuentra-deepseek-v4-ahora-mismo&#34;&gt;Dónde se encuentra &lt;code&gt;DeepSeek V4&lt;/code&gt; ahora mismo
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;DeepSeek V4&lt;/code&gt; es un poco más complicado de colocar.&lt;/p&gt;
&lt;p&gt;El problema no es que no pueda hacer el trabajo. El problema es que es más difícil predecir dónde aterrizará un resultado determinado.&lt;br&gt;
A veces puede terminar la tarea con imágenes y funcionalidad de trabajo decentes. A veces, una vez que la tarea requiere animación, lógica y presentación de datos al mismo tiempo, es más probable que tropiece.&lt;/p&gt;
&lt;p&gt;Ahora mismo se siente más así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tiene habilidad real.&lt;/li&gt;
&lt;li&gt;No es débil&lt;/li&gt;
&lt;li&gt;Aún puede dar resultados aceptables en algunas tareas.&lt;/li&gt;
&lt;li&gt;Pero su estabilidad aún no es lo suficientemente tranquilizadora.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Eso moldea a quién le conviene más.&lt;/p&gt;
&lt;p&gt;Si no le importa intentarlo varias veces, puede tolerar un reinicio ocasional o ya planea verificar y editar el código usted mismo, aún vale la pena usar &amp;ldquo;DeepSeek V4&amp;rdquo;.&lt;br&gt;
Pero si su principal prioridad es reducir la fricción y maximizar el éxito del primer paso, todavía no es la opción más segura.&lt;/p&gt;
&lt;h2 id=&#34;entonces-qué-debería-elegir-un-usuario-normal&#34;&gt;Entonces, ¿qué debería elegir un usuario normal?
&lt;/h2&gt;&lt;p&gt;Si no está comparando modelos por diversión y realmente quiere trabajar, la forma más sencilla es elegir por caso de uso.&lt;/p&gt;
&lt;h3 id=&#34;1-quiere-menos-complicaciones-y-una-mayor-tasa-de-éxito-en-el-primer-paso&#34;&gt;1. Quiere menos complicaciones y una mayor tasa de éxito en el primer paso
&lt;/h3&gt;&lt;p&gt;Elija &amp;ldquo;GPT 5.5&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Lo mejor es este flujo de trabajo: &amp;ldquo;Este es mi requisito, denme una primera versión utilizable&amp;rdquo;.&lt;br&gt;
Eso importa aún más cuando no tienes tiempo para seguir iterando y arreglando.&lt;/p&gt;
&lt;h3 id=&#34;2-te-importa-más-la-presentación-y-el-acabado-visual&#34;&gt;2. Te importa más la presentación y el acabado visual
&lt;/h3&gt;&lt;p&gt;Elija &lt;code&gt;Claude Opus 4.7&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Si lo que desea es una página que ya se parezca más a un producto terminado, o si su trabajo está más orientado a demostraciones y presentaciones, &lt;code&gt;Claude&lt;/code&gt; muestra su valor más fácilmente.&lt;/p&gt;
&lt;h3 id=&#34;3-quiere-el-modelo-nacional-más-sólido-para-la-producción-inicial&#34;&gt;3. Quiere el modelo nacional más sólido para la producción inicial
&lt;/h3&gt;&lt;p&gt;Comience con &lt;code&gt;Qwen 3.6 Max&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Ya no es algo que se utiliza únicamente como compromiso. Ahora se puede comparar directa y seriamente.&lt;br&gt;
Si sus tareas se inclinan hacia las páginas web, el movimiento y la presentación, su competitividad ya es muy real.&lt;/p&gt;
&lt;h3 id=&#34;4-puedes-tolerar-algunas-variaciones-y-quieres-seguir-observando-el-progreso-interno&#34;&gt;4. Puedes tolerar algunas variaciones y quieres seguir observando el progreso interno.
&lt;/h3&gt;&lt;p&gt;Esté atento a &lt;code&gt;DeepSeek V4&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Su problema no es la falta de capacidad. Es que el nivel de ejecución aún varía demasiado.&lt;br&gt;
Si la estabilidad sigue mejorando, podría volverse mucho más importante.&lt;/p&gt;
&lt;h2 id=&#34;una-última-línea&#34;&gt;Una última línea
&lt;/h2&gt;&lt;p&gt;La diferencia entre estas IA de codificación convencionales ya no es quién puede codificar y quién no. Se trata de quién es más estable, quién tiene mejor aspecto y quién se adapta a su tipo de trabajo.&lt;/p&gt;
&lt;p&gt;Si desea la respuesta más sencilla, &amp;ldquo;GPT 5.5&amp;rdquo; sigue siendo la primera opción.&lt;br&gt;
Si desea una calidad de presentación más fuerte, &amp;ldquo;Claude Opus 4.7&amp;rdquo; todavía tiene sabor real.&lt;br&gt;
Si le interesa qué modelo nacional merece la mayor atención, &amp;ldquo;Qwen 3.6 Max&amp;rdquo; ya está cerca del frente.&lt;br&gt;
&lt;code&gt;DeepSeek V4&lt;/code&gt; se siente más como un fuerte contendiente que todavía está trabajando en la coherencia.&lt;/p&gt;
&lt;p&gt;Si quieres la conclusión más breve posible:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Para mayor estabilidad, elija &lt;code&gt;GPT 5.5&lt;/code&gt;. Para la presentación, elija &amp;ldquo;Claude&amp;rdquo;. Entre los modelos nacionales, el que más vale la pena ver es el &lt;code&gt;Qwen 3.6 Max&lt;/code&gt;.&lt;/strong&gt;&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Ralph y la colaboración entre múltiples agentes: cómo mantener la IA funcionando de manera confiable durante tareas largas</title>
        <link>https://knightli.com/es/2026/04/27/ralph-multi-agent-long-running-ai-workflows/</link>
        <pubDate>Mon, 27 Apr 2026 08:19:02 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/27/ralph-multi-agent-long-running-ai-workflows/</guid>
        <description>&lt;p&gt;Si ha estado utilizando agentes de codificación últimamente, rápidamente se encontrará con una pregunta muy práctica: &lt;strong&gt;La IA puede funcionar, claro, pero ¿cómo se puede mantener funcionando durante horas sin desviarse, olvidar requisitos o rehacer el mismo trabajo?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ésa es la verdadera pregunta detrás de muchas discusiones sobre &amp;ldquo;Ralph&amp;rdquo; y la colaboración entre múltiples agentes. La cuestión no es simplemente comparar qué modelo es más fuerte. La pregunta más útil es esta: &lt;strong&gt;¿cómo se diseña un flujo de trabajo que permita a la IA mantenerse estable durante tareas largas?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Si analizamos el problema, normalmente hay dos rutas principales:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El enfoque &lt;code&gt;Ralph&lt;/code&gt;: seguir iniciando sesiones nuevas y conectar el contexto a través del sistema de archivos&lt;/li&gt;
&lt;li&gt;El enfoque de múltiples agentes: dejar que un agente líder coordine mientras los agentes trabajadores dividen la ejecución&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Dicho de manera más simple, la pregunta no es &amp;ldquo;qué modelo es más poderoso&amp;rdquo;, sino &amp;ldquo;¿cómo se organiza la IA para que se comporte más como un pequeño equipo que pueda seguir cumpliendo?&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;01-por-qué-las-tareas-largas-se-descarrilan&#34;&gt;01 Por qué las tareas largas se descarrilan
&lt;/h2&gt;&lt;p&gt;En tareas breves, muchos problemas quedan ocultos. Usted da una instrucción, el modelo lee algunos archivos, cambia algunas líneas y el trabajo está hecho.&lt;/p&gt;
&lt;p&gt;Una vez que la tarea se hace más larga, los modos de falla comunes comienzan a acumularse:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Las conversaciones se hacen más largas y el contexto comienza a abultarse.&lt;/li&gt;
&lt;li&gt;Los requisitos anteriores quedan eliminados por la información más reciente.&lt;/li&gt;
&lt;li&gt;Un agente tiene que planificar, implementar y probar al mismo tiempo.&lt;/li&gt;
&lt;li&gt;Sin un paso de aceptación claro, &amp;ldquo;está hecho&amp;rdquo; a menudo significa simplemente &amp;ldquo;dice que está hecho&amp;rdquo;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Entonces, cuando la IA funciona durante mucho tiempo, el verdadero desafío no suele ser la calidad del modelo de un solo disparo. Se trata de &lt;strong&gt;división de tareas, transferencia de estados, separación de roles y bucles de retroalimentación&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&#34;02-el-enfoque-ralph-dividir-las-tareas-largas-en-rondas-cortas&#34;&gt;02 El enfoque Ralph: dividir las tareas largas en rondas cortas
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Ralph&lt;/code&gt; encaja bien cuando el problema principal es un contexto sucio y sobrecargado.&lt;/p&gt;
&lt;p&gt;Su patrón central es sencillo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sigue lanzando nuevas sesiones de agentes en bucle&lt;/li&gt;
&lt;li&gt;Deje que cada ronda se encargue solo de una tarea lo suficientemente pequeña&lt;/li&gt;
&lt;li&gt;Almacene el estado cruzado en archivos en lugar de forzar todo en una sola conversación&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El beneficio es inmediato: cada ronda comienza con un contexto nuevo, por lo que la sesión permanece más centrada y es menos probable que se vea arrastrada por la vieja historia.&lt;/p&gt;
&lt;p&gt;Si ya ha visto proyectos estilo &amp;ldquo;Ralph&amp;rdquo;, la estructura le resultará familiar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Las tareas actuales viven en archivos estructurados.&lt;/li&gt;
&lt;li&gt;Los aprendizajes intermedios van a los archivos de progreso.&lt;/li&gt;
&lt;li&gt;Los cambios de código permanecen en el historial de git.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En otras palabras, &amp;ldquo;Ralph&amp;rdquo; no intenta que un agente recuerde todo para siempre. Exterioriza la memoria a propósito para que la sesión en sí sea más ligera.&lt;/p&gt;
&lt;p&gt;Este tipo de configuración funciona especialmente bien cuando:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La obra ya se puede dividir en pequeñas historias.&lt;/li&gt;
&lt;li&gt;Cada historia puede caber dentro de una ventana de contexto.&lt;/li&gt;
&lt;li&gt;El proyecto ya cuenta con pruebas, verificación de tipos u otras comprobaciones.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Es una solución al problema de &lt;strong&gt;cómo hacer que la IA siga avanzando ronda a ronda&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&#34;03-el-enfoque-de-múltiples-agentes-dividir-el-trabajo-que-un-agente-no-puede-realizar-solo&#34;&gt;03 El enfoque de múltiples agentes: dividir el trabajo que un agente no puede realizar solo
&lt;/h2&gt;&lt;p&gt;La otra ruta es la colaboración entre múltiples agentes.&lt;/p&gt;
&lt;p&gt;En este tipo de diseño de flujo de trabajo, el patrón más prometedor suele ser el siguiente: el agente principal no debe hacer todo el trabajo directamente. En cambio, coordina mientras otros agentes se encargan del desarrollo, las pruebas, la verificación y la aceptación.&lt;/p&gt;
&lt;p&gt;Esto difiere de &lt;code&gt;Ralph&lt;/code&gt; en un aspecto importante:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;Ralph&lt;/code&gt; se siente más como una iteración en serie&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;El trabajo con múltiples agentes se parece más a una división paralela del trabajo.
Cuando la tarea contiene naturalmente diferentes roles, la colaboración entre múltiples agentes se vuelve más fácil de usar. Por ejemplo:&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Un agente desglosa la tarea y escribe el plan de ejecución.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Un agente implementa el cambio real.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Un agente prueba y valida el resultado.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Un agente comprueba si el resultado sigue coincidiendo con el objetivo original.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La cuestión no es abrir más ventanas porque sí. El valor real es la separación de roles. Las tareas que antes recaían sobre un solo agente ahora se pueden dividir en etapas más claras.&lt;/p&gt;
&lt;p&gt;Una vez que los límites de los roles están claros, varios problemas se aclaran:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La persona que escribe no tiene que ser la misma que revisa&lt;/li&gt;
&lt;li&gt;La parte de pruebas no tiene que reconstruir el requisito completo cada vez.&lt;/li&gt;
&lt;li&gt;Es menos probable que el agente principal se ahogue en los detalles de la implementación.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esta es una solución al problema de &lt;strong&gt;cómo hacer que la IA coopere más como un equipo pequeño&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&#34;04-la-verdadera-clave-no-es-el-paralelismo-sino-el-diseño-de-tareas&#34;&gt;04 La verdadera clave no es el paralelismo, sino el diseño de tareas
&lt;/h2&gt;&lt;p&gt;Ya sea que elija &lt;code&gt;Ralph&lt;/code&gt; o la colaboración entre múltiples agentes, lo más fácil de subestimar es esto: &lt;strong&gt;el diseño del flujo de trabajo importa más que abrir más agentes.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Si la división de tareas es incorrecta, agregar más agentes sólo crea un paralelismo con la confusión.&lt;/p&gt;
&lt;p&gt;Una avería más estable suele tener algunas características:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Una tarea se asigna a un objetivo claro&lt;/li&gt;
&lt;li&gt;Un rol posee una categoría de salida&lt;/li&gt;
&lt;li&gt;Cada ronda tiene una condición clara de finalización.&lt;/li&gt;
&lt;li&gt;La producción de una ronda puede ser consumida directamente por la siguiente.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por ejemplo, en lugar de darle a la IA una instrucción gigante como &amp;ldquo;construir toda la característica&amp;rdquo;, una estructura más estable suele ser:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Primero, rompa los requisitos y los límites.&lt;/li&gt;
&lt;li&gt;Luego dividir la implementación&lt;/li&gt;
&lt;li&gt;Luego dividir las pruebas&lt;/li&gt;
&lt;li&gt;Entonces haz de la aceptación su propio paso.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La ventaja es que cuando algo sale mal, resulta más fácil saber si el problema radica en los criterios de comprensión, implementación, prueba o entrega.&lt;/p&gt;
&lt;h2 id=&#34;05-por-qué-la-aceptación-es-tan-importante&#34;&gt;05 Por qué la aceptación es tan importante
&lt;/h2&gt;&lt;p&gt;Muchos flujos de trabajo de IA fallan no porque no haya sucedido nada antes, sino porque el último paso careció de un pase de confirmación genuinamente independiente.&lt;/p&gt;
&lt;p&gt;En tareas largas, suele haber una gran brecha entre &amp;ldquo;se produjo un resultado&amp;rdquo; y &amp;ldquo;el resultado es realmente utilizable&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Por eso, una dirección especialmente importante es separar el desarrollo de la aceptación. Incluso sin un proceso complejo, vale la pena hacerse al menos estas preguntas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;¿Realmente completó la tarea original?&lt;/li&gt;
&lt;li&gt;¿Solo parchó la superficie sin solucionar la causa raíz?&lt;/li&gt;
&lt;li&gt;¿Las pruebas cubrieron sólo el camino más feliz?&lt;/li&gt;
&lt;li&gt;¿Se cambiaron silenciosamente los requisitos upstream a lo largo del camino?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Sin esa capa, la IA puede seguir declarando éxito fácilmente dentro de un flujo de trabajo prolongado.&lt;/p&gt;
&lt;h2 id=&#34;06-cómo-elegir-entre-los-dos&#34;&gt;06 Cómo elegir entre los dos
&lt;/h2&gt;&lt;p&gt;Si desea una regla general rápida:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si su principal problema es la sobrecarga del contexto y la deriva de las sesiones largas, comience con &amp;ldquo;Ralph&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Si su principal problema es que un agente desempeña demasiadas funciones, comience con la colaboración de varios agentes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Más específicamente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Ralph&lt;/code&gt; se adapta al trabajo que es claro, granular y fácil de avanzar paso a paso&lt;/li&gt;
&lt;li&gt;La colaboración entre múltiples agentes se adapta al trabajo con fuertes límites de roles y una necesidad de paralelismo y verificación cruzada.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En la práctica, estos dos enfoques no siempre son competidores. Una configuración madura suele combinarlos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Utilice un bucle exterior estilo &amp;ldquo;Ralph&amp;rdquo; para impulsar la tarea más grande.&lt;/li&gt;
&lt;li&gt;Utilice la colaboración de múltiples agentes dentro de cada ronda para investigación, implementación, prueba y aceptación.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Eso les brinda a ambos un mejor control sobre el contexto prolongado y una mejor colaboración dentro de una sola ronda.&lt;/p&gt;
&lt;h2 id=&#34;07-resumen-de-una-oración&#34;&gt;07 Resumen de una oración
&lt;/h2&gt;&lt;p&gt;Lo que hace que valga la pena estudiar estos enfoques no es que recomienden &amp;ldquo;Ralph&amp;rdquo; o la colaboración entre múltiples agentes de forma aislada. Es que dejan muy clara una verdad práctica: &lt;strong&gt;mantener la IA estable durante tareas largas depende menos del modelo en sí y más de si se diseñó bien el contexto, las tareas, los roles y la aceptación&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Si ya está pidiendo a &amp;ldquo;Claude Code&amp;rdquo;, &amp;ldquo;Codex&amp;rdquo; u otros agentes de codificación que manejen tareas más largas del mundo real, este tipo de pensamiento de flujo de trabajo suele ser más valioso que simplemente cambiar a un modelo más sólido.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Qué es Ralph: convertir Claude Code y Amp en un circuito de desarrollo autónomo repetible</title>
        <link>https://knightli.com/es/2026/04/27/ralph-autonomous-agent-loop-claude-code-amp/</link>
        <pubDate>Mon, 27 Apr 2026 08:08:55 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/27/ralph-autonomous-agent-loop-claude-code-amp/</guid>
        <description>&lt;p&gt;Si últimamente ha estado prestando atención a los flujos de trabajo de agentes de codificación de larga duración, &lt;code&gt;snarktank/ralph&lt;/code&gt; es un proyecto que vale la pena analizar de cerca. No es otro contenedor de modelo ni otra interfaz de usuario de chat. En cambio, organiza &amp;ldquo;Claude Code&amp;rdquo; o &amp;ldquo;Amp&amp;rdquo; en un bucle autónomo que sigue recorriendo las historias en un &amp;ldquo;PRD&amp;rdquo; hasta que todo está hecho.&lt;/p&gt;
&lt;p&gt;Su idea central es simple: &lt;strong&gt;no obligar al mismo agente a seguir trabajando dentro de un contexto cada vez más largo y desordenado. En su lugar, inicie una nueva sesión de codificación de IA para cada iteración.&lt;/strong&gt; Eso evita que el contexto se hinche y hace que los límites de las tareas sean mucho más claros.&lt;/p&gt;
&lt;h2 id=&#34;01-qué-es-ralph&#34;&gt;01 ¿Qué es Ralph?
&lt;/h2&gt;&lt;p&gt;Ralph se describe a sí mismo muy claramente: es un bucle de agente de IA autónomo que ejecuta repetidamente una herramienta de codificación de IA hasta que se completan los elementos de un &amp;ldquo;PRD&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;El repositorio actualmente admite dos herramientas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Amplificador CLI&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Código Claude&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cada iteración inicia una nueva instancia. En otras palabras, no depende de una conversación interminable. En cambio, mantiene la memoria en estado externo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;historia de git&lt;/li&gt;
&lt;li&gt;&lt;code&gt;progreso.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;prd.json&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ese detalle importa mucho. Cuando la gente deja que un agente ejecute tareas grandes, el principal problema a menudo no es que el modelo no pueda codificar. Es que la sesión se vuelve más pesada con el tiempo, empieza a perder contexto, olvida requerimientos y repite trabajo. Ralph está diseñado casi exclusivamente en torno a ese problema.&lt;/p&gt;
&lt;h2 id=&#34;02-cómo-funciona&#34;&gt;02 Cómo funciona
&lt;/h2&gt;&lt;p&gt;El flujo de trabajo de Ralph tiene tres pasos.&lt;/p&gt;
&lt;h3 id=&#34;1-escribe-primero-un-prd&#34;&gt;1. Escribe primero un PRD
&lt;/h3&gt;&lt;p&gt;El archivo README sugiere comenzar con la habilidad &amp;ldquo;prd&amp;rdquo; incluida para generar un documento de requisitos y dividir la función en historias más pequeñas.&lt;/p&gt;
&lt;h3 id=&#34;2-convierta-el-prd-a-prdjson&#34;&gt;2. Convierta el PRD a &lt;code&gt;prd.json&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Luego, la habilidad &lt;code&gt;ralph&lt;/code&gt; convierte el Markdown PRD en un &lt;code&gt;prd.json&lt;/code&gt; estructurado. Ese archivo almacena las historias de los usuarios y si cada una ha pasado.&lt;/p&gt;
&lt;h3 id=&#34;3-ejecute-el-script-de-bucle&#34;&gt;3. Ejecute el script de bucle
&lt;/h3&gt;&lt;p&gt;La ejecución real está a cargo de &lt;code&gt;ralph.sh&lt;/code&gt;. Los comandos se ven así:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./scripts/ralph/ralph.sh &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;max_iterations&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./scripts/ralph/ralph.sh --tool claude &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;max_iterations&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El valor predeterminado es 10 iteraciones. En cada ronda, Ralph hace aproximadamente lo siguiente:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Crea una rama desde &lt;code&gt;branchName&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Elija la historia de mayor prioridad donde &amp;ldquo;pasa: falso&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;Implemente solo esa historia&lt;/li&gt;
&lt;li&gt;Ejecute controles de calidad, como verificación de tipos y pruebas.&lt;/li&gt;
&lt;li&gt;Comprometerse si pasan los controles&lt;/li&gt;
&lt;li&gt;Actualiza &lt;code&gt;prd.json&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Adjunte lo aprendido a &lt;code&gt;progress.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Continuar a la siguiente ronda.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Entonces Ralph no está tratando de terminar todo de una vez. Comprime el trabajo en muchos bucles pequeños que pueden caber dentro de una única ventana de contexto.&lt;/p&gt;
&lt;h2 id=&#34;03-qué-hace-que-ralph-sea-interesante&#34;&gt;03 ¿Qué hace que Ralph sea interesante?
&lt;/h2&gt;&lt;h3 id=&#34;1-cada-ronda-utiliza-un-contexto-nuevo&#34;&gt;1. Cada ronda utiliza un contexto nuevo
&lt;/h3&gt;&lt;p&gt;Esta es la elección de diseño que define a Ralph. El archivo README enfatiza que cada iteración es una instancia de IA completamente nueva y que la memoria entre iteraciones reside solo en git, &lt;code&gt;progress.txt&lt;/code&gt; y &lt;code&gt;prd.json&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Esto es muy diferente del patrón común de mantener el &amp;ldquo;Código Claude&amp;rdquo; u otra herramienta dentro de una larga conversación. Una vez que las tareas aumentan, ese enfoque a menudo se ralentiza debido a su propia historia y gradualmente pierde enfoque. Ralph acepta que ninguna ronda debería recordar todo y, en su lugar, mueve la memoria a archivos.&lt;/p&gt;
&lt;h3 id=&#34;2-obliga-a-que-las-tareas-sean-pequeñas&#34;&gt;2. Obliga a que las tareas sean pequeñas
&lt;/h3&gt;&lt;p&gt;Los documentos dicen explícitamente que cada elemento PRD debe ser lo suficientemente pequeño como para terminar dentro de una ventana de contexto. Tareas como agregar un filtro, actualizar una acción del servidor o agregar una columna de base de datos tienen aproximadamente el tamaño correcto. Tareas como reconstruir toda la API o crear un panel completo son demasiado grandes.
Esa restricción es práctica. Muchos bucles de agentes autónomos fallan no porque el bucle sea malo, sino porque la división de tareas es demasiado burda y cada ronda lleva demasiado a la vez.&lt;/p&gt;
&lt;h3 id=&#34;3-preserva-el-aprendizaje-no-solo-el-código&#34;&gt;3. Preserva el aprendizaje, no solo el código
&lt;/h3&gt;&lt;p&gt;Más allá de &lt;code&gt;progress.txt&lt;/code&gt;, el README también hace hincapié en la actualización de &lt;code&gt;AGENTS.md&lt;/code&gt;. La razón es sencilla: las iteraciones futuras y los futuros desarrolladores leerán esas notas, por lo que los patrones, errores y convenciones descubiertos en cada ronda deben anotarse en el proyecto mismo.&lt;/p&gt;
&lt;p&gt;Dicho de otra manera, Ralph no sólo intenta mantener a un agente codificando continuamente. También intenta ayudar al agente a desarrollar memoria de trabajo sobre el código base a lo largo del tiempo.&lt;/p&gt;
&lt;h2 id=&#34;04-cuando-encaja-mejor&#34;&gt;04 Cuando encaja mejor
&lt;/h2&gt;&lt;p&gt;Ralph encaja bien cuando su tarea se ve así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ya se puede dividir en un conjunto claro de historias de usuarios.&lt;/li&gt;
&lt;li&gt;El código base tiene bucles de retroalimentación confiables, como pruebas, verificación de tipos o CI&lt;/li&gt;
&lt;li&gt;Quiere que el agente siga avanzando sin poner todo en una larga conversación.&lt;/li&gt;
&lt;li&gt;Estás de acuerdo con el progreso iterativo en lugar de exigir una finalización de una sola vez.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por otro lado, si el requisito aún es vago, o el trabajo depende de discusiones frecuentes y cambios constantes de dirección, es posible que Ralph no sea el primero a quien recurrir. Se adapta mejor una vez que los requisitos ya están definidos y la ejecución debe ser constante.&lt;/p&gt;
&lt;h2 id=&#34;05-en-qué-se-diferencia-del-uso-normal-del-código-claude&#34;&gt;05 En qué se diferencia del uso normal del código Claude
&lt;/h2&gt;&lt;p&gt;Con &lt;code&gt;Claude Code&lt;/code&gt; simple, el patrón habitual es simple: abra una sesión y déjela seguir leyendo código, editando archivos y ejecutando comandos. Esto funciona muy bien para tareas pequeñas y medianas, pero las tareas más grandes suelen tener dos problemas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El contexto sigue creciendo&lt;/li&gt;
&lt;li&gt;Las decisiones intermedias son más difíciles de preservar de forma estructurada.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ralph convierte &amp;ldquo;Claude Code&amp;rdquo; o &amp;ldquo;Amp&amp;rdquo; en algo más parecido a un ejecutor por lotes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La fuente de la tarea es &lt;code&gt;prd.json&lt;/code&gt;, no instrucciones de chat ad hoc.&lt;/li&gt;
&lt;li&gt;Cada iteración reconoce solo una historia.&lt;/li&gt;
&lt;li&gt;El estado de finalización se vuelve a escribir en los archivos.&lt;/li&gt;
&lt;li&gt;Los aprendizajes van en &lt;code&gt;progress.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Los cambios de código se conservan en git&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Entonces, en la práctica, se siente menos como un nuevo asistente de IA y más como un controlador de iteración agregado sobre un agente de codificación.&lt;/p&gt;
&lt;h2 id=&#34;06-un-requisito-importante&#34;&gt;06 Un requisito importante
&lt;/h2&gt;&lt;p&gt;Que Ralph funcione bien depende menos del bucle en sí y más de la calidad de sus bucles de retroalimentación. El archivo README dice esto de manera muy directa: sin verificación de tipo, pruebas y CI, los errores se agravarán en iteraciones posteriores.&lt;/p&gt;
&lt;p&gt;Para tareas frontend, el repositorio incluso recomienda agregar la verificación del navegador a los criterios de aceptación. Sin una verificación real, un agente puede confundir fácilmente &amp;ldquo;parece hecho&amp;rdquo; con &amp;ldquo;realmente funciona&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Ese punto es importante. Ralph no es una automatización mágica. Es más como un multiplicador de fuerza para la disciplina de ingeniería que ya tienes. Si su proyecto ya tiene desgloses de tareas claros y controles confiables, Ralph se vuelve mucho más útil. Si faltan esos fundamentos, el bucle sólo repetirá la confusión.&lt;/p&gt;
&lt;h2 id=&#34;07-resumen-de-una-oración&#34;&gt;07 Resumen de una oración
&lt;/h2&gt;&lt;p&gt;Lo que hace que valga la pena estudiar &amp;ldquo;Ralph&amp;rdquo; no es que introduzca una enorme cantidad de infraestructura nueva. Toma una idea simple pero útil y la convierte en un flujo de trabajo práctico: &lt;strong&gt;deje que &lt;code&gt;Claude Code&lt;/code&gt; o &lt;code&gt;Amp&lt;/code&gt; manejen una pequeña historia por ronda, mantenga el enfoque en un contexto nuevo y preserve la continuidad a través de &lt;code&gt;git&lt;/code&gt;, &lt;code&gt;prd.json&lt;/code&gt; y &lt;code&gt;progress.txt&lt;/code&gt;.&lt;/strong&gt;
Si ya está utilizando agentes de codificación en proyectos reales y sigue estancado en cómo impulsar tareas largas de manera confiable, vale la pena tomar prestado el enfoque de Ralph.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Repositorio de GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/snarktank/ralph&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/snarktank/ralph&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Diagrama de flujo interactivo: &lt;a class=&#34;link&#34; href=&#34;https://snarktank.github.io&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://snarktank.github.io&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>DeepSeek V4 Pro vs GPT-5.5: después de probar la interfaz, la escritura y la codificación, la brecha parece mayor de lo esperado</title>
        <link>https://knightli.com/es/2026/04/25/deepseek-v4-pro-vs-gpt-5-5-frontend-writing-code/</link>
        <pubDate>Sat, 25 Apr 2026 11:12:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/25/deepseek-v4-pro-vs-gpt-5-5-frontend-writing-code/</guid>
        <description>&lt;p&gt;Las comparaciones entre &lt;code&gt;DeepSeek V4 Pro&lt;/code&gt; y &lt;code&gt;GPT-5.5&lt;/code&gt; están recibiendo más atención últimamente. La razón ya no es si alguno de los modelos es utilizable. La verdadera pregunta es: &lt;strong&gt;cuando el trabajo recae en el desarrollo, la redacción y la codificación del frontend, ¿cuál es mejor para ser su herramienta principal?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Cuando la gente compara modelos como este, a menudo empiezan preguntando cuál es más fuerte.&lt;br&gt;
Pero la pregunta más útil suele ser diferente: &lt;strong&gt;en una tarea real, ¿cuál es más estable, más barata para comunicarse y con mayor probabilidad de producir algo que pueda seguir construyendo de inmediato?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Si simplificamos primero la conclusión, queda más o menos así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cuando desea un resultado más equilibrado y una experiencia productiva más completa, mucha gente todavía mira primero &lt;code&gt;GPT-5.5&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Cuando necesita una iteración de alta frecuencia en chino, se preocupa más por el costo y desea ciclos de respuesta rápidos, &amp;ldquo;DeepSeek V4 Pro&amp;rdquo; se convierte en un candidato serio.&lt;/li&gt;
&lt;li&gt;Lo que realmente determina la experiencia a menudo no es el nombre del modelo en sí, sino el tipo de tarea, el enfoque de las indicaciones y si es necesario seguir revisándolo después.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Analicemos esto en los tres escenarios de comparación más comunes.&lt;/p&gt;
&lt;h2 id=&#34;1-tareas-frontend-la-verdadera-pregunta-no-es-si-puede-crear-una-página-sino-si-puede-seguir-mejorándola&#34;&gt;1. Tareas frontend: la verdadera pregunta no es si puede crear una página, sino si puede seguir mejorándola
&lt;/h2&gt;&lt;p&gt;El trabajo frontend parece ideal para comparaciones de modelos porque el resultado es fácil de ver.&lt;br&gt;
¿Se puede ejecutar la página? ¿Se ve bien? ¿Está limpia la estructura? Puedes juzgar todo eso rápidamente.&lt;/p&gt;
&lt;p&gt;Pero la verdadera diferencia no suele aparecer en si el primer borrador funciona. Aparece en preguntas como estas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;¿Está la estructura lo suficientemente clara?&lt;/li&gt;
&lt;li&gt;¿La división del componente es natural?&lt;/li&gt;
&lt;li&gt;¿Cambiar una pieza accidentalmente rompe otra?&lt;/li&gt;
&lt;li&gt;¿Puede seguir la misma lógica de implementación en múltiples rondas de instrucciones?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Es también por eso que muchas demostraciones de frontend que parecen impresionantes en la primera ronda no necesariamente se mantienen a la vanguardia en los flujos de trabajo reales.&lt;/p&gt;
&lt;p&gt;Si su tarea es algo como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Generar rápidamente un prototipo de página ejecutable&lt;/li&gt;
&lt;li&gt;Redactar una idea de página de destino.&lt;/li&gt;
&lt;li&gt;Complete los estilos, botones, tarjetas, formularios y otros elementos básicos requeridos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;entonces ambos modelos a menudo te acercarán bastante, y la diferencia está más en el estilo de salida.&lt;/p&gt;
&lt;p&gt;Pero si la tarea se convierte en:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Revisar repetidamente la interfaz de usuario durante varias rondas.&lt;/li&gt;
&lt;li&gt;Leer el código existente y continuar desde allí.&lt;/li&gt;
&lt;li&gt;Equilibrar la estructura de los componentes, la coherencia del estilo y la mantenibilidad.&lt;/li&gt;
&lt;li&gt;Convertir gradualmente una página estática en código de proyecto real.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;entonces lo que debes observar ya no es “quién luce mejor en la primera ronda”, sino “quién tiene menos probabilidades de quedarse dormido en la quinta ronda”.&lt;/p&gt;
&lt;p&gt;Entonces, en el trabajo frontend, la comparación clave no es si el modelo puede generar una página. Se trata de si, después de seguir agregando restricciones, aún puede mantener una estructura estable, nombres consistentes y costos de modificación manejables.&lt;/p&gt;
&lt;h2 id=&#34;2-tareas-de-escritura-la-verdadera-diferencia-no-es-cuánto-se-escribe-sino-qué-tan-estable-se-mantiene-el-estilo-y-qué-tan-bien-se-reescribe&#34;&gt;2. Tareas de escritura: la verdadera diferencia no es cuánto se escribe, sino qué tan estable se mantiene el estilo y qué tan bien se reescribe.
&lt;/h2&gt;&lt;p&gt;La escritura es otra área en la que la gente puede juzgar mal los modelos con mucha facilidad.&lt;/p&gt;
&lt;p&gt;Una razón importante es que los primeros borradores suelen verse bien desde ambos lados.&lt;br&gt;
La estructura es completa, los párrafos están ahí y el tono es lo suficientemente suave como para que sea fácil pensar que son básicamente similares.&lt;/p&gt;
&lt;p&gt;Pero tan pronto como avanzas la tarea un paso más, aparecen las diferencias:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;¿Puede comprender con precisión a su público objetivo?&lt;/li&gt;
&lt;li&gt;¿Puede cambiar de tono manteniendo el mismo tema?&lt;/li&gt;
&lt;li&gt;¿Se pierden puntos clave al reescribir?&lt;/li&gt;
&lt;li&gt;¿Se mantiene estable al comprimir, ampliar, retitular o reestructurar?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El mayor problema al escribir no suele ser “no puede escribir”, sino “escribió algo que aún necesita mucho arreglo”.&lt;/p&gt;
&lt;p&gt;Entonces, al comparar &amp;ldquo;DeepSeek V4 Pro&amp;rdquo; y &amp;ldquo;GPT-5.5&amp;rdquo;, el método más útil es no pedirles a cada uno que escriba un artículo. Se trata de ejecutar varias rondas como esta:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Escribe el primer borrador.&lt;/li&gt;
&lt;li&gt;Reescríbelo en un tono diferente.&lt;/li&gt;
&lt;li&gt;Comprímelo en una versión más corta.&lt;/li&gt;
&lt;li&gt;Modifíquelo para convertirlo en algo más adecuado para titulares basados en clics o distribución de búsqueda.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si un modelo puede mantener intactos los puntos clave, la redacción estable y la estructura limpia durante esas rondas, entonces tiene mucho más valor en un flujo de trabajo de escritura real.&lt;/p&gt;
&lt;p&gt;En otras palabras, lo que realmente miden las tareas de escritura no es el “estilo literario”, sino la &lt;strong&gt;capacidad de revisión, el seguimiento de instrucciones y el sentimiento de colaboración continua&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&#34;3-tareas-de-codificación-la-brecha-real-se-muestra-en-la-estabilidad-de-la-cadena-larga&#34;&gt;3. Tareas de codificación: la brecha real se muestra en la estabilidad de la cadena larga
&lt;/h2&gt;&lt;p&gt;Las tareas de codificación exponen el nivel real de un modelo más fácilmente que el trabajo frontend, porque no se trata solo de generar resultados. Tienen que conectar con la realidad.&lt;/p&gt;
&lt;p&gt;Muy rápidamente, te encuentras con preguntas como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;¿Puede comprender la estructura de un proyecto existente?&lt;/li&gt;
&lt;li&gt;¿Puede modificar varios archivos a la vez?&lt;/li&gt;
&lt;li&gt;¿Introduce nuevos problemas después de realizar cambios?&lt;/li&gt;
&lt;li&gt;¿Puede seguir depurando siguiendo registros y errores?&lt;/li&gt;
&lt;li&gt;Después de varias rondas, ¿todavía recuerda lo que ya cambió?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En este tipo de trabajo, lo que más preocupa a los usuarios no suele ser si un único fragmento de código parece elegante. Es: &lt;strong&gt;¿puede este modelo seguir avanzando en la tarea, en lugar de dejarme a mí limpiar el desorden?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Entonces, al comparar &lt;code&gt;DeepSeek V4 Pro&lt;/code&gt; y &lt;code&gt;GPT-5.5&lt;/code&gt;, lo más significativo a considerar generalmente no son indicaciones de codificación aisladas, sino un proceso más cercano al trabajo real:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Leer un repositorio existente&lt;/li&gt;
&lt;li&gt;Encuentra un error&lt;/li&gt;
&lt;li&gt;Modificar varios archivos relacionados&lt;/li&gt;
&lt;li&gt;Continuar corrigiendo según los mensajes de error.&lt;/li&gt;
&lt;li&gt;Resumir claramente el resultado al final.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Una vez que la tarea ingresa a ese tipo de flujo de trabajo continuo, la retención del contexto, los hábitos de ejecución, la calidad de la explicación y la tasa de retrabajo son más importantes que la calidad de la respuesta en un solo turno.&lt;/p&gt;
&lt;p&gt;Esta es también la razón por la que muchos usuarios eventualmente no se conforman con “usar un solo modelo para siempre” para codificar. En cambio, cambian su herramienta principal según la etapa de la tarea.&lt;/p&gt;
&lt;h2 id=&#34;4-lo-que-realmente-vale-la-pena-comparar-no-es-quién-gana-sino-qué-tareas-son-más-rentables-asignar-a-quién&#34;&gt;4. Lo que realmente vale la pena comparar no es quién gana, sino qué tareas son más rentables asignar a quién
&lt;/h2&gt;&lt;p&gt;Si pones &amp;ldquo;DeepSeek V4 Pro&amp;rdquo; y &amp;ldquo;GPT-5.5&amp;rdquo; uno al lado del otro y solo intentas elegir un campeón general, el resultado suele ser una conclusión vacía.&lt;/p&gt;
&lt;p&gt;Esto se debe a que las tareas reales no son un examen estándar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Algunos son de una sola generación.&lt;/li&gt;
&lt;li&gt;Algunas son colaboraciones de múltiples rondas.&lt;/li&gt;
&lt;li&gt;Algunos están escritos en chino.&lt;/li&gt;
&lt;li&gt;Algunos son cambios de ingeniería.&lt;/li&gt;
&lt;li&gt;Algunos priorizan la velocidad&lt;/li&gt;
&lt;li&gt;Algunos priorizan la estabilidad&lt;/li&gt;
&lt;li&gt;Algunos priorizan el costo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Entonces, el enfoque que se acerca más al uso real suele ser dividir por objetivo de la tarea:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si desea una experiencia general más completa, una interacción más madura y un resultado general más estable, pruebe primero &lt;code&gt;GPT-5.5&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Si desea experimentar con alta frecuencia en chino, iteración rápida y mejor relación calidad-precio, &amp;ldquo;DeepSeek V4 Pro&amp;rdquo; merece un lugar importante en su flujo de trabajo.&lt;/li&gt;
&lt;li&gt;Si la tarea en sí es de cadena larga, de múltiples rondas y colaborativa, no se detenga en el primer resultado; observe quién se mantiene más estable después de cinco rondas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En otras palabras, la verdadera pregunta no es “quién es absolutamente más fuerte”, sino ésta:&lt;br&gt;
&lt;strong&gt;para el trabajo frontend, la escritura y la codificación, ¿qué modelo parece más la herramienta más práctica para su etapa actual?&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;5-cómo-realizar-una-comparación-que-realmente-signifique-algo&#34;&gt;5. Cómo realizar una comparación que realmente signifique algo
&lt;/h2&gt;&lt;p&gt;Si desea probar &lt;code&gt;DeepSeek V4 Pro&lt;/code&gt; y &lt;code&gt;GPT-5.5&lt;/code&gt; usted mismo, un método más confiable generalmente no es ejecutar una sola ronda, sino hacer algo como esto:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Dé a ambos modelos el mismo requisito inicial.&lt;/li&gt;
&lt;li&gt;Mantenga las mismas restricciones en ambos lados&lt;/li&gt;
&lt;li&gt;Continúe haciendo preguntas de seguimiento durante tres a cinco rondas.&lt;/li&gt;
&lt;li&gt;Registre la calidad de salida, la frecuencia de deriva y la cantidad de retrabajo&lt;/li&gt;
&lt;li&gt;Solo entonces compara velocidad, coste y usabilidad final.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Ese tipo de prueba te acercará mucho más al trabajo real que simplemente preguntar quién luce más impresionante en la primera ronda.&lt;/p&gt;
&lt;p&gt;Especialmente en frontend, escritura y codificación, lo que a menudo determina la experiencia real no es la línea de partida, sino &lt;strong&gt;quién puede quedarse contigo y ayudarte a terminar el trabajo&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&#34;6-una-forma-sencilla-de-recordarlo&#34;&gt;6. Una forma sencilla de recordarlo
&lt;/h2&gt;&lt;p&gt;Si solo quieres un resumen práctico, puedes recordarlo así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GPT-5.5&lt;/code&gt;: más como un espacio de trabajo predeterminado amplio, productivo y convencional&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DeepSeek V4 Pro&lt;/code&gt;: más bien un competidor fuerte que vale la pena incorporar a los flujos de trabajo diarios en chino y al trabajo de prueba y error de alta frecuencia&lt;/li&gt;
&lt;li&gt;El verdadero punto de comparación: no un resultado llamativo en la primera ronda, sino quién se mantiene más estable y ahorra más esfuerzo después de múltiples rondas de revisión.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Entonces, en este tipo de comparación, lo que realmente importa nunca es simplemente “quién ganó”. Es este:&lt;br&gt;
&lt;strong&gt;Para sus tareas de frontend, escritura y codificación, ¿qué modelo facilita el progreso continuo, reduce el retrabajo y le brinda resultados más estables?&lt;/strong&gt;&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Cómo dividir tareas entre ChatGPT, Claude y Gemini: elección de uso diario, codificación y capacidades especiales</title>
        <link>https://knightli.com/es/2026/04/25/chatgpt-claude-gemini-task-selection/</link>
        <pubDate>Sat, 25 Apr 2026 10:51:19 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/25/chatgpt-claude-gemini-task-selection/</guid>
        <description>&lt;p&gt;Mucha gente ya no confía en un solo modelo. En cambio, alternan entre &amp;ldquo;ChatGPT&amp;rdquo;, &amp;ldquo;Claude&amp;rdquo; y &amp;ldquo;Gemini&amp;rdquo;. Eso hace que la pregunta sea mucho más práctica: &lt;strong&gt;¿qué tipo de tareas deberían asignarse a qué modelo?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Esto resulta confuso no porque los tres sean débiles, sino porque ahora son fuertes de diferentes maneras. Si aún así eliges basándose en un estándar vago como “cuál es más inteligente”, fácilmente puedes terminar eligiendo la herramienta equivocada.&lt;/p&gt;
&lt;p&gt;Si simplificamos primero la conclusión, queda más o menos así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Para conversaciones diarias y tareas de propósito general, muchas personas comienzan con &lt;code&gt;ChatGPT&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Para la codificación de línea de comandos, la colaboración de contexto prolongado y la ejecución sostenida de tareas, &amp;ldquo;Claude&amp;rdquo; a menudo se siente más fluido.&lt;/li&gt;
&lt;li&gt;Cuando necesita integración del ecosistema de Google, búsqueda, puntos de entrada multimodales o ciertas capacidades a nivel de producto, &amp;ldquo;Gemini&amp;rdquo; tiende a destacar más.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Dividámoslo en tres partes.&lt;/p&gt;
&lt;h2 id=&#34;1-conversaciones-diarias-por-qué-muchas-personas-todavía-abren-chatgpt-primero&#34;&gt;1. Conversaciones diarias: por qué muchas personas todavía abren &lt;code&gt;ChatGPT&lt;/code&gt; primero
&lt;/h2&gt;&lt;p&gt;Para la mayoría de los escenarios cotidianos, &amp;ldquo;ChatGPT&amp;rdquo; todavía se siente como el &amp;ldquo;punto de entrada predeterminado&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;No se trata de un único punto de referencia. Se trata de la experiencia general:&lt;br&gt;
cuando desea hacer una pregunta rápida, organizar sus pensamientos, redactar un borrador, crear una primera versión o resumir un material, &amp;ldquo;ChatGPT&amp;rdquo; generalmente se siente bastante equilibrado.&lt;/p&gt;
&lt;p&gt;Sus puntos fuertes suelen aparecer en algunos lugares:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Su estilo de respuesta es relativamente estable.&lt;/li&gt;
&lt;li&gt;La curva de aprendizaje es baja para los usuarios generales.&lt;/li&gt;
&lt;li&gt;La mayoría de las tareas amplias no requieren muchos ajustes adicionales&lt;/li&gt;
&lt;li&gt;El producto se siente pulido y funciona bien para el uso diario frecuente&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Entonces, si tu tarea es algo como esto:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ayúdame a organizar un tema.&lt;/li&gt;
&lt;li&gt;Convertir una idea en contenido estructurado.&lt;/li&gt;
&lt;li&gt;Resumir un artículo extenso.&lt;/li&gt;
&lt;li&gt;Lluvia de ideas sobre varios enfoques&lt;/li&gt;
&lt;li&gt;Reescribir algo más claramente&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Entonces, &amp;ldquo;ChatGPT&amp;rdquo; suele ser un lugar muy natural para empezar.&lt;/p&gt;
&lt;p&gt;Eso no significa que sea siempre la opción más sólida para cada tarea profesional. Esto significa que, para un uso amplio y de propósito general, a menudo se siente más como el espacio de trabajo predeterminado.&lt;/p&gt;
&lt;h2 id=&#34;2-codificación-de-línea-de-comandos-y-tareas-largas-por-qué-mucha-gente-se-inclina-por-claude&#34;&gt;2. Codificación de línea de comandos y tareas largas: por qué mucha gente se inclina por &lt;code&gt;Claude&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;Una vez que una tarea pasa de &amp;ldquo;charlemos&amp;rdquo; a &amp;ldquo;seguiremos trabajando hasta terminar esto&amp;rdquo;, muchas personas empiezan a preferir &amp;ldquo;Claude&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Esto es especialmente cierto en escenarios como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Programación de línea de comandos&lt;/li&gt;
&lt;li&gt;Comprender el contexto de un gran proyecto.&lt;/li&gt;
&lt;li&gt;Coordinar ediciones en múltiples archivos.&lt;/li&gt;
&lt;li&gt;Depuración de largas cadenas de tareas.&lt;/li&gt;
&lt;li&gt;Leer código mientras se avanza constantemente una tarea&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En este tipo de trabajo, la clave no suele ser si una respuesta es especialmente impresionante. Se trata de si el modelo puede permanecer estable a lo largo de una cadena de trabajo más larga.&lt;/p&gt;
&lt;p&gt;La razón por la que a menudo se prefiere &amp;ldquo;Claude&amp;rdquo; no es que &amp;ldquo;diga una frase mejor que las demás&amp;rdquo;, sino que:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Se mantiene mejor en tareas de contexto prolongado.&lt;/li&gt;
&lt;li&gt;Se siente más estable al leer archivos, registros y reglas continuamente&lt;/li&gt;
&lt;li&gt;Es más adecuado para avanzar gradualmente en trabajos de codificación complejos.&lt;/li&gt;
&lt;li&gt;En los flujos de trabajo de agentes y de línea de comandos, a menudo se lo trata como el modelo de trabajo principal.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si está haciendo &amp;ldquo;codificación de vibración&amp;rdquo;, corrigiendo errores en la terminal, entendiendo la estructura del proyecto o cambiando características en varios archivos, las fortalezas de &amp;ldquo;Claude&amp;rdquo; tienden a mostrarse más claramente.
En pocas palabras, &amp;ldquo;Claude&amp;rdquo; se siente más como un modelo con el que trabajas para hacer las cosas, no simplemente como uno al que haces una pregunta y obtienes una respuesta.&lt;/p&gt;
&lt;h2 id=&#34;3-géminis-a-menudo-gana-no-compitiendo-frontalmente-en-todo&#34;&gt;3. &amp;ldquo;Géminis&amp;rdquo; a menudo gana no &amp;ldquo;compitiendo frontalmente en todo&amp;rdquo;
&lt;/h2&gt;&lt;p&gt;Cuando la gente habla de &amp;ldquo;Géminis&amp;rdquo;, a menudo formulan la pregunta de la siguiente manera: ¿es el más fuerte de los tres?&lt;/p&gt;
&lt;p&gt;Pero en el uso real, la pregunta más útil no suele ser esa. Es: &lt;strong&gt;¿en qué escenarios vale especialmente la pena sacarlo y usarlo a propósito?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;El valor de &amp;ldquo;Géminis&amp;rdquo; a menudo se muestra más claramente en estas direcciones:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Integración con el ecosistema de Google.&lt;/li&gt;
&lt;li&gt;Búsqueda y recopilación de información.&lt;/li&gt;
&lt;li&gt;Puntos de entrada multimodales&lt;/li&gt;
&lt;li&gt;Ciertos vínculos de características del lado del producto.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si su flujo de trabajo ya está cerca de la cadena de herramientas de Google, por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Buscar&lt;/li&gt;
&lt;li&gt;Documentos&lt;/li&gt;
&lt;li&gt;Correo electrónico&lt;/li&gt;
&lt;li&gt;Uso del lado del navegador&lt;/li&gt;
&lt;li&gt;Puntos de entrada móviles&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Entonces la conveniencia práctica de &amp;ldquo;Gemini&amp;rdquo; puede importar más que una simple comparación entre modelo y puntuación.&lt;/p&gt;
&lt;p&gt;En otras palabras, &amp;ldquo;Gemini&amp;rdquo; suele ser útil porque se integra en su flujo de trabajo de manera más natural, no solo porque puede o no vencer a otra persona en una sola respuesta.&lt;/p&gt;
&lt;h2 id=&#34;4-la-forma-útil-de-elegir-no-es-preguntar-quién-es-más-fuerte-sino-qué-tipo-de-tarea-tienes&#34;&gt;4. La forma útil de elegir no es preguntar quién es más fuerte, sino qué tipo de tarea tienes
&lt;/h2&gt;&lt;p&gt;Cuando la gente compara los tres modelos uno al lado del otro, la trampa más fácil es tratar de encontrar el “mejor” modelo.&lt;/p&gt;
&lt;p&gt;Pero las tareas reales varían demasiado:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Algunas son preguntas y respuestas únicas&lt;/li&gt;
&lt;li&gt;Algunas son conversaciones de larga duración.&lt;/li&gt;
&lt;li&gt;Algunos son proyectos de software.&lt;/li&gt;
&lt;li&gt;Algunos son recuperación de información.&lt;/li&gt;
&lt;li&gt;Algunos son procesamiento multimodal&lt;/li&gt;
&lt;li&gt;Algunos son colaboración en cadena de herramientas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por lo tanto, el enfoque más eficaz suele ser ordenar por tipo de tarea:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si desea un asistente amplio y de alta frecuencia que funcione de inmediato, comience con &lt;code&gt;ChatGPT&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Si necesita contexto extenso, trabajo en la línea de comandos, colaboración en codificación y progreso constante en tareas complejas, pruebe primero con &amp;ldquo;Claude&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;Si necesita ayuda del ecosistema de Google, búsqueda, puntos de entrada multimodal o ciertas integraciones de productos, preste especial atención a &amp;ldquo;Gemini&amp;rdquo;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ese tipo de división del trabajo está mucho más cerca del uso en el mundo real que obligar a un único campeón general.&lt;/p&gt;
&lt;h2 id=&#34;5-por-qué-muchos-usuarios-habituales-se-suscriben-a-los-tres&#34;&gt;5. Por qué muchos usuarios habituales se suscriben a los tres
&lt;/h2&gt;&lt;p&gt;Desde la perspectiva de un usuario ligero, pagar por los tres puede parecer redundante.&lt;br&gt;
Desde la perspectiva de un usuario intensivo, es más como asignar diferentes herramientas a diferentes trabajos.&lt;/p&gt;
&lt;p&gt;La razón es sencilla:&lt;br&gt;
Si las fortalezas de los tres modelos ya han comenzado a divergir claramente, entonces usarlos juntos no constituye realmente un gasto duplicado. Es una forma de reducir los costos de cambio y los costos de prueba y error.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Utilice &lt;code&gt;ChatGPT&lt;/code&gt; para la organización diaria y preguntas y respuestas generales&lt;/li&gt;
&lt;li&gt;Utilice &lt;code&gt;Claude&lt;/code&gt; para el trabajo de codificación principal.&lt;/li&gt;
&lt;li&gt;Utilice &lt;code&gt;Gemini&lt;/code&gt; para ciertos flujos de trabajo de búsqueda, multimodales o relacionados con Google&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La lógica de esta configuración no es fundamentalmente diferente de la de los diseñadores que instalan múltiples herramientas creativas o los desarrolladores que usan múltiples IDE.&lt;/p&gt;
&lt;h2 id=&#34;6-cuándo-no-debes-cambiar-de-modelo-con-demasiada-frecuencia&#34;&gt;6. Cuándo no debes cambiar de modelo con demasiada frecuencia
&lt;/h2&gt;&lt;p&gt;Eso sí, tener más modelos no siempre es mejor.&lt;/p&gt;
&lt;p&gt;Si todavía estás creando un flujo de trabajo estable, saltar demasiado pronto y con demasiada frecuencia entre tres modelos puede complicar aún más las cosas. Los problemas comunes incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Volver a explicar la misma tarea tres veces.&lt;/li&gt;
&lt;li&gt;Recibir diferentes sugerencias de diferentes modelos y luchar más para juzgarlas.&lt;/li&gt;
&lt;li&gt;Perder contexto y aumentar los costos de colaboración.&lt;/li&gt;
&lt;li&gt;Estancarse en la elección de herramientas antes de establecer sus propios límites de trabajo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Entonces, una forma más estable suele ser esta:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Asigne primero a cada modelo un escenario principal&lt;/li&gt;
&lt;li&gt;Úselo continuamente en ese escenario por un tiempo.&lt;/li&gt;
&lt;li&gt;Construya gradualmente sus propios hábitos de división del trabajo.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Eso hace que sea más fácil obtener experiencia reutilizable en lugar de quedarse para siempre en la etapa de &amp;ldquo;déjame probar esta hoy&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;7-una-forma-sencilla-de-recordarlo&#34;&gt;7. Una forma sencilla de recordarlo
&lt;/h2&gt;&lt;p&gt;Si solo desea una versión práctica para recordar, puede utilizar esta división en lenguaje sencillo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ChatGPT&lt;/code&gt;: más parecido al asistente de uso general predeterminado&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Claude&lt;/code&gt;: más bien la opción principal para tareas largas y colaboración en codificación&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Gemini&lt;/code&gt;: más bien la herramienta con mayores ventajas en la búsqueda, el trabajo multimodal y el ecosistema de Google&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esta no es una regla absoluta y no significa que los tres no puedan reemplazarse entre sí. Es simplemente un punto de partida más realista.&lt;/p&gt;
&lt;p&gt;Lo que realmente importa no es elegir el “modelo más fuerte del universo”, sino averiguarlo lo antes posible:&lt;br&gt;
&lt;strong&gt;Para el tipo de tarea que tienes por delante, ¿qué modelo ahorra más tiempo, cuesta menos esfuerzo mental y facilita la obtención de resultados?&lt;/strong&gt;&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Por qué las API de LLM cobran por tokens: una guía clara sobre los costos de entrada, salida y contexto</title>
        <link>https://knightli.com/es/2026/04/25/llm-token-pricing-principles/</link>
        <pubDate>Sat, 25 Apr 2026 08:44:32 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/25/llm-token-pricing-principles/</guid>
        <description>&lt;p&gt;Una de las cosas más fáciles de confundir acerca de la facturación API de LLM es por qué casi todas las plataformas eventualmente se reducen a una unidad: &amp;ldquo;token&amp;rdquo;. La verdadera pregunta es simple: &lt;strong&gt;¿por qué los LLM cobran por token y por qué diferentes tokens pueden tener precios diferentes?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Para muchas personas que recién comienzan a usar API modelo, la parte más confusa no es la capacidad del modelo sino la factura. ¿Por qué el costo aumenta tan rápidamente incluso cuando solo hace unas pocas preguntas? ¿Por qué los insumos son más baratos que los productos? ¿Por qué la factura empieza a crecer mucho más rápido una vez que el contexto se alarga?&lt;/p&gt;
&lt;p&gt;Una forma sencilla de pensarlo es la siguiente: &lt;strong&gt;no estás pagando por &amp;ldquo;una respuesta&amp;rdquo;. Usted paga por la computación y el ancho de banda consumidos durante todo el proceso de inferencia.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;1-qué-es-una-ficha&#34;&gt;1. ¿Qué es una ficha?
&lt;/h2&gt;&lt;p&gt;En la facturación de LLM, un &amp;ldquo;token&amp;rdquo; no es un recuento de caracteres ni de palabras. Es la unidad que utiliza un modelo al procesar texto.&lt;/p&gt;
&lt;p&gt;Un token podría ser:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Un solo carácter chino&lt;/li&gt;
&lt;li&gt;Parte de una palabra inglesa.&lt;/li&gt;
&lt;li&gt;Un signo de puntuación&lt;/li&gt;
&lt;li&gt;Un breve fragmento de texto visto con frecuencia.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Es por eso que las plataformas API no suelen cobrar por frase ni por solicitud. Cobran según la cantidad de tokens que realmente lee y genera el modelo.&lt;br&gt;
Esto es mucho más razonable que cobrar por recuento de solicitudes, porque una solicitud puede contener 20 caracteres, mientras que otra puede incluir 200.000 tokens de contexto. El consumo de recursos no es ni de lejos el mismo.&lt;/p&gt;
&lt;h2 id=&#34;2-por-qué-los-insumos-y-los-productos-se-cotizan-por-separado&#34;&gt;2. ¿Por qué los insumos y los productos se cotizan por separado?
&lt;/h2&gt;&lt;p&gt;La mayoría de las API de modelos actuales dividen los precios en dos partes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Precio del token de entrada&lt;/li&gt;
&lt;li&gt;Precio del token de salida&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Y en muchos casos, &lt;strong&gt;los tokens de salida cuestan más que los tokens de entrada&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;La razón no es difícil de entender.&lt;/p&gt;
&lt;p&gt;Cuando un modelo procesa entradas, principalmente lee y codifica contenido existente. Pero cuando genera resultados, tiene que predecir el siguiente token, luego el siguiente, luego el siguiente. Esto no es sólo leer. Es un proceso continuo de inferencia y muestreo, que normalmente cuesta más cálculo.&lt;/p&gt;
&lt;p&gt;Puedes pensar en ello más o menos así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Entrada: entrega de materiales al modelo.&lt;/li&gt;
&lt;li&gt;Resultado: pedirle al modelo que escriba la respuesta en el acto.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Escribir sobre el terreno suele costar más que leer los materiales una vez, por lo que es muy común que el precio de salida sea más alto.&lt;/p&gt;
&lt;h2 id=&#34;3-por-qué-el-contexto-prolongado-hace-que-sea-más-fácil-perder-el-control-de-los-costos&#34;&gt;3. Por qué el contexto prolongado hace que sea más fácil perder el control de los costos
&lt;/h2&gt;&lt;p&gt;Mucha gente piensa que sólo están añadiendo un poco más de información general, pero desde la perspectiva de la facturación modelo, el impacto suele ser mucho mayor de lo esperado.&lt;/p&gt;
&lt;p&gt;La razón es que &lt;strong&gt;cada llamada de modelo generalmente tiene que procesar nuevamente el contexto completo incluido en esa solicitud.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Eso significa que si su solicitud contiene actualmente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Un mensaje del sistema&lt;/li&gt;
&lt;li&gt;Historial de conversaciones&lt;/li&gt;
&lt;li&gt;Valores de retorno de la herramienta&lt;/li&gt;
&lt;li&gt;trozos de documentos largos&lt;/li&gt;
&lt;li&gt;Archivos de código fuente&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;todo eso se destina a la facturación del token de entrada.&lt;/p&gt;
&lt;p&gt;Entonces, lo que realmente hace crecer los proyectos de ley no es a menudo la pregunta final en sí misma, sino la larga cadena de contexto que se le presenta.&lt;br&gt;
A medida que aumenta el número de turnos de conversación, se acumulan las llamadas a herramientas y se siguen enviando mensajes anteriores, el coste del token crece ronda tras ronda.&lt;/p&gt;
&lt;h2 id=&#34;4-por-qué-es-especialmente-probable-que-las-llamadas-a-herramientas-inflen-el-uso-de-tokens&#34;&gt;4. Por qué es especialmente probable que las llamadas a herramientas inflen el uso de tokens
&lt;/h2&gt;&lt;p&gt;En escenarios como agentes, asistentes de codificación y automatización del flujo de trabajo, el uso de tokens suele ser mucho mayor que en el chat normal.
La cuestión no es sólo que la modelo haya escrito un párrafo. Es que el flujo de trabajo sigue produciendo contenido como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Leer archivos&lt;/li&gt;
&lt;li&gt;Inspeccionar registros&lt;/li&gt;
&lt;li&gt;Llamadas a API&lt;/li&gt;
&lt;li&gt;Volviendo JSON&lt;/li&gt;
&lt;li&gt;Introducir los resultados de la herramienta en el modelo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Siempre que el resultado de cada llamada a la herramienta se inserte en la siguiente ronda de contexto, se convierte en una nueva fuente de tokens de entrada.&lt;/p&gt;
&lt;p&gt;Es por eso que muchos desarrolladores finalmente se dan cuenta de:&lt;br&gt;
&lt;strong&gt;El precio unitario del modelo no siempre es el verdadero problema. El flujo de trabajo en sí puede acumular el costo de los tokens capa por capa.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Por ejemplo, imagine un agente codificador haciendo lo siguiente:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Leer la estructura del proyecto.&lt;/li&gt;
&lt;li&gt;Abra varios archivos fuente.&lt;/li&gt;
&lt;li&gt;Ejecute un conjunto de pruebas&lt;/li&gt;
&lt;li&gt;Vuelva a introducir los registros de errores en el modelo.&lt;/li&gt;
&lt;li&gt;Leer más archivos relacionados&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Cada paso puede hacer que las solicitudes posteriores tengan aún más contexto. Incluso si el precio unitario no cambia, la factura total puede aumentar rápidamente.&lt;/p&gt;
&lt;h2 id=&#34;5-por-qué-un-mismo-tipo-de-modelo-puede-tener-precios-muy-diferentes&#34;&gt;5. Por qué un mismo tipo de modelo puede tener precios muy diferentes
&lt;/h2&gt;&lt;p&gt;Las diferencias en los precios de los tokens entre modelos no se deben solo a que los proveedores quieran cobrar más. Suelen estar directamente relacionados con varios factores:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tamaño del modelo&lt;/li&gt;
&lt;li&gt;Eficiencia de inferencia&lt;/li&gt;
&lt;li&gt;Longitud del contexto&lt;/li&gt;
&lt;li&gt;Costo de implementación&lt;/li&gt;
&lt;li&gt;Mercado objetivo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cuanto más grande es el modelo, más parámetros activos utiliza y más compleja es su ruta de inferencia, mayor suele ser el costo de generar un token.&lt;br&gt;
Si el modelo también admite un contexto ultralargo, un razonamiento más complejo o un mejor uso de las herramientas, la presión sobre la infraestructura aumenta aún más.&lt;/p&gt;
&lt;p&gt;Entonces, el precio en realidad cubre varios tipos de costos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Recursos de GPU o acelerador&lt;/li&gt;
&lt;li&gt;Uso de VRAM&lt;/li&gt;
&lt;li&gt;Latencia de inferencia&lt;/li&gt;
&lt;li&gt;Estabilidad de la red y del servicio.&lt;/li&gt;
&lt;li&gt;Capacidad máxima de concurrencia&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un modelo más barato no es necesariamente malo y un modelo más caro no es necesariamente la elección correcta para cada tarea. En muchos casos, la brecha de precios refleja cuánto costo de infraestructura requiere un cierto nivel de capacidad.&lt;/p&gt;
&lt;h2 id=&#34;6-por-qué-la-entrada-en-caché-es-más-barata&#34;&gt;6. Por qué la entrada en caché es más barata
&lt;/h2&gt;&lt;p&gt;Muchas plataformas de modelos ahora ofrecen características como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;entrada en caché&lt;/li&gt;
&lt;li&gt;almacenamiento en caché rápido&lt;/li&gt;
&lt;li&gt;almacenamiento en caché de prefijos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La idea compartida detrás de ellos es simple: si una gran cantidad de insumos ya ha sido procesada una vez, no sigan calculándolos desde cero al precio completo.&lt;/p&gt;
&lt;p&gt;Por ejemplo, si envía repetidamente el mismo mensaje del sistema, las mismas instrucciones de herramienta o el mismo prefijo de documento largo, es posible que la plataforma pueda almacenar en caché parte de ese cálculo. Luego, aunque todavía se utilice el token de entrada, la parte almacenada en caché se puede facturar a una tarifa más baja.&lt;/p&gt;
&lt;p&gt;Esto también explica por qué muchas páginas de precios de API muestran tres o más niveles de precios:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Entrada estándar&lt;/li&gt;
&lt;li&gt;Entrada en caché&lt;/li&gt;
&lt;li&gt;Salida&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La diferencia no es que el texto signifique cosas diferentes. Es que el cálculo subyacente puede ser reutilizable o no.&lt;/p&gt;
&lt;h2 id=&#34;7-por-qué-los-tokens-baratos-no-significan-automáticamente-un-costo-total-más-bajo&#34;&gt;7. Por qué los &amp;ldquo;tokens baratos&amp;rdquo; no significan automáticamente un costo total más bajo
&lt;/h2&gt;&lt;p&gt;Cuando la gente ve un modelo anunciado como &amp;ldquo;muy barato por millón de tokens&amp;rdquo;, el primer instinto suele ser que el coste total también debe ser menor. En realidad, no siempre.&lt;/p&gt;
&lt;p&gt;Esto se debe a que el costo total es aproximadamente:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;precio unitario del token × volumen real del token&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Y el volumen real de tokens puede verse amplificado por muchas cosas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Avisos demasiado largos.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Historial de conversaciones que nunca se recorta&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Demasiada salida de herramienta retroalimentada&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Salida del modelo demasiado detallada&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Reintentos repetidos para la misma tarea
Por tanto, la factura real no está determinada únicamente por el precio. Suele estar determinado por:&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Precio unitario del modelo&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Longitud de entrada por ronda&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Longitud de salida por ronda&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Número de llamadas&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Diseño de flujo de trabajo&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esta es también la razón por la que un &amp;ldquo;modelo de bajo costo&amp;rdquo; aún puede resultar costoso en los flujos de trabajo de algunos agentes. Es posible que necesite más rondas, más contexto suplementario y más ciclos de reintento.&lt;/p&gt;
&lt;h2 id=&#34;8-cómo-los-desarrolladores-deberían-estimar-el-costo-del-token&#34;&gt;8. Cómo los desarrolladores deberían estimar el costo del token
&lt;/h2&gt;&lt;p&gt;Si desea un mejor control presupuestario en un proyecto real, una forma sencilla de estimar el costo es:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Mida el promedio de tokens de entrada por solicitud&lt;/li&gt;
&lt;li&gt;Mida los tokens de producción promedio por solicitud&lt;/li&gt;
&lt;li&gt;Calcule cuántas rondas requiere una tarea completa&lt;/li&gt;
&lt;li&gt;Multiplica por el precio del modelo.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;8k tokens&lt;/code&gt; de entrada por ronda&lt;/li&gt;
&lt;li&gt;&lt;code&gt;1k tokens&lt;/code&gt; de producción por ronda&lt;/li&gt;
&lt;li&gt;&lt;code&gt;10&lt;/code&gt; rondas para una tarea&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Entonces lo que realmente estás consumiendo no es &amp;ldquo;un intercambio de preguntas y respuestas&amp;rdquo;, sino:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Aproximadamente &amp;ldquo;80.000 tokens&amp;rdquo; de entrada&lt;/li&gt;
&lt;li&gt;Aproximadamente &amp;ldquo;10.000 tokens&amp;rdquo; de producción&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Y si se siguen agregando registros, resultados de herramientas y contenidos de archivos a lo largo del camino, el total crece aún más.&lt;/p&gt;
&lt;p&gt;Por eso la planificación presupuestaria no debería centrarse únicamente en una única ronda. Debería observar &lt;strong&gt;cuántos tokens consumirá un ciclo de tarea completo de principio a fin.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;9-cómo-controlar-la-factura-en-la-práctica&#34;&gt;9. Cómo controlar la factura en la práctica.
&lt;/h2&gt;&lt;p&gt;Si ya utiliza API o agentes, los siguientes métodos suelen ser los más eficaces:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Acorte el mensaje del sistema y elimine las palabras repetidas&lt;/li&gt;
&lt;li&gt;Recortar el historial de conversaciones antiguas con regularidad&lt;/li&gt;
&lt;li&gt;Mantenga solo los campos necesarios de los resultados de la herramienta&lt;/li&gt;
&lt;li&gt;Recuperar primero y luego enviar solo las partes relevantes de documentos extensos&lt;/li&gt;
&lt;li&gt;Limite la longitud de salida y evite la expansión ilimitada&lt;/li&gt;
&lt;li&gt;Utilice modelos caros para tareas de alto valor y modelos más baratos para tareas de menor valor&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En muchos casos, la mejor manera de ahorrar dinero es no cambiar a ciegas a un modelo más económico. Primero se trata de eliminar el consumo innecesario de tokens del flujo de trabajo.&lt;/p&gt;
&lt;h2 id=&#34;10-cómo-pensar-en-todo-esto&#34;&gt;10. Cómo pensar en todo esto
&lt;/h2&gt;&lt;p&gt;Al final del día, el precio de los tokens es una forma de cobrar por cuánto tuvo que leer, inferir y escribir el modelo.&lt;/p&gt;
&lt;p&gt;No es como los precios de software tradicionales, donde la facturación por cuenta, por solicitud o mensual es suficiente para describir el uso de recursos. Una llamada de modelo es un proceso de cálculo dinámico. La cantidad de contexto que envía, las herramientas que invoca y la longitud del resultado que solicita afectan directamente el costo.&lt;/p&gt;
&lt;p&gt;Entonces lo más importante es no memorizar tablas de precios. Está construyendo la intuición correcta:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El contexto prolongado aumenta el costo de los insumos&lt;/li&gt;
&lt;li&gt;La producción prolongada aumenta el costo de generación.&lt;/li&gt;
&lt;li&gt;Las cadenas de herramientas amplifican el uso total de tokens&lt;/li&gt;
&lt;li&gt;El almacenamiento en caché y el diseño del flujo de trabajo pueden cambiar significativamente la factura.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Una vez que esos puntos estén claros, la estructura de precios de la mayoría de las API de LLM se vuelve mucho más fácil de entender.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Lanzamiento de la vista previa de DeepSeek-V4: contexto de 1M, dos modelos y notas de migración de API</title>
        <link>https://knightli.com/es/2026/04/24/deepseek-v4-preview-release/</link>
        <pubDate>Fri, 24 Apr 2026 22:39:46 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/24/deepseek-v4-preview-release/</guid>
        <description>&lt;p&gt;DeepSeek lanzó &lt;a class=&#34;link&#34; href=&#34;https://api-docs.deepseek.com/news/news260424&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Lanzamiento preliminar de DeepSeek V4&lt;/a&gt; el &lt;code&gt;2026-04-24&lt;/code&gt;. Según la página de anuncio oficial, la actualización se centra en algunos temas muy claros: &amp;ldquo;1M context&amp;rdquo;, una línea de dos modelos con &amp;ldquo;V4-Pro&amp;rdquo; y &amp;ldquo;V4-Flash&amp;rdquo;, optimización dedicada para escenarios de agentes y migración de modelos del lado API.&lt;/p&gt;
&lt;p&gt;Si reducimos el comunicado a una frase, la señal principal es la siguiente: DeepSeek no sólo está intentando crear un modelo más potente. Está impulsando el contexto ultralargo y las capacidades de los agentes hacia algo que esté listo para su implementación práctica.&lt;/p&gt;
&lt;h2 id=&#34;1-lo-que-se-lanzó-esta-vez&#34;&gt;1. Lo que se lanzó esta vez
&lt;/h2&gt;&lt;p&gt;Según la página oficial, &lt;code&gt;DeepSeek-V4 Preview&lt;/code&gt; incluye principalmente dos líneas de productos:&lt;/p&gt;
&lt;p&gt;-&lt;code&gt;DeepSeek-V4-Pro&lt;/code&gt;
-&lt;code&gt;DeepSeek-V4-Flash&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Las descripciones oficiales también son muy directas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;DeepSeek-V4-Pro&lt;/code&gt;: &lt;code&gt;1.6T total / 49B parámetros activos&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DeepSeek-V4-Flash&lt;/code&gt;: &lt;code&gt;284B en total / 13B de parámetros activos&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El nombre ya deja clara la estrategia. Esta no es una actualización de un solo modelo. DeepSeek está lanzando un modelo de gama alta y un modelo más rentable al mismo tiempo.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;V4-Pro&amp;rdquo; está posicionado alrededor del techo de rendimiento, y DeepSeek dice que puede competir con los mejores modelos de código cerrado del mundo. &lt;code&gt;V4-Flash&lt;/code&gt;, por el contrario, se posiciona en torno a la velocidad, la eficiencia y el menor costo, lo que lo hace más adecuado para cargas de trabajo que se preocupan más por la latencia y el precio de API.&lt;/p&gt;
&lt;h2 id=&#34;2-1m-contexto-es-el-título-más-visible&#34;&gt;2. &lt;code&gt;1M contexto&lt;/code&gt; es el título más visible
&lt;/h2&gt;&lt;p&gt;Una de las líneas más destacadas de la página oficial es: &lt;strong&gt;&amp;ldquo;Bienvenido a la era del contexto rentable de 1 millón de longitud&amp;rdquo;.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;DeepSeek no se limita a decir que el modelo admite un contexto prolongado. Presenta &amp;ldquo;contexto 1M&amp;rdquo; como una capacidad predeterminada de esta generación. La página es explícita que:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;1M context&lt;/code&gt; es ahora el estándar predeterminado en todos los servicios oficiales de DeepSeek&lt;/li&gt;
&lt;li&gt;Tanto &lt;code&gt;V4-Pro&lt;/code&gt; como &lt;code&gt;V4-Flash&lt;/code&gt; admiten &lt;code&gt;contexto 1M&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La importancia de esto no es sólo que puedas colocar más tokens. Afecta directamente a tareas como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Comprender grandes bases de código&lt;/li&gt;
&lt;li&gt;Preguntas y respuestas de documentos extensos y síntesis de información.&lt;/li&gt;
&lt;li&gt;Flujos de trabajo de agentes de múltiples turnos&lt;/li&gt;
&lt;li&gt;Tareas complejas que abarcan múltiples archivos, herramientas y etapas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cuando la ventana de contexto es lo suficientemente grande, es menos probable que el modelo pierda el contexto a mitad del camino y vuelva a leer el material repetidamente. Esto es muy importante para la codificación agente y el trabajo de conocimiento complejo.&lt;/p&gt;
&lt;h2 id=&#34;3-qué-enfatiza-principalmente-v4-pro&#34;&gt;3. Qué enfatiza principalmente &lt;code&gt;V4-Pro&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;Según el texto de la página oficial, &amp;ldquo;DeepSeek-V4-Pro&amp;rdquo; se centra en tres cosas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Capacidad de codificación agente&lt;/li&gt;
&lt;li&gt;conocimiento mundial&lt;/li&gt;
&lt;li&gt;Capacidad de razonamiento&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La página dice que &amp;ldquo;V4-Pro&amp;rdquo; alcanza SOTA de código abierto en puntos de referencia de codificación agente. También afirma ser líder entre los modelos abiertos actuales en el conocimiento mundial, sólo por detrás de &amp;ldquo;Gemini-3.1-Pro&amp;rdquo;, y afirma que su rendimiento en matemáticas, &amp;ldquo;STEM&amp;rdquo; y codificación supera a los modelos abiertos actuales y rivaliza con los mejores modelos de código cerrado.&lt;/p&gt;
&lt;p&gt;En otras palabras, &amp;ldquo;V4-Pro&amp;rdquo; no se posiciona como un simple modelo de preguntas y respuestas. Está dirigido mucho más al razonamiento de alta dificultad, la codificación compleja y la ejecución de tareas a largo plazo.&lt;/p&gt;
&lt;h2 id=&#34;4-v4-flash-no-es-solo-una-versión-reducida&#34;&gt;4. &lt;code&gt;V4-Flash&lt;/code&gt; no es solo una versión reducida
&lt;/h2&gt;&lt;p&gt;Otro punto destacable es que DeepSeek no presenta &lt;code&gt;V4-Flash&lt;/code&gt; como modelo de gama baja. Más bien, subraya que el modelo ya es lo suficientemente sólido para muchas tareas prácticas.&lt;/p&gt;
&lt;p&gt;Según el anuncio, &lt;code&gt;V4-Flash&lt;/code&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tiene una capacidad de razonamiento cercana a &amp;ldquo;V4-Pro&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;Funciona a la par con &lt;code&gt;V4-Pro&lt;/code&gt; en tareas simples de agente&lt;/li&gt;
&lt;li&gt;Utiliza menos parámetros, responde más rápido y es más económico para el uso de API&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Eso significa que la alineación no es una estructura muy dividida de &amp;ldquo;un buque insignia, un nivel de entrada&amp;rdquo;. Está más cerca de:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;V4-Pro&lt;/code&gt;: optimización para un mayor rendimiento y un techo más resistente&lt;/li&gt;
&lt;li&gt;&lt;code&gt;V4-Flash&lt;/code&gt;: optimización para una menor latencia y una mejor rentabilidad&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para los desarrolladores, esta suele ser una combinación más práctica, porque muchas tareas de producción no necesitan el modelo más sólido en teoría. Necesitan algo lo suficientemente fuerte, lo suficientemente rápido y lo suficientemente asequible.&lt;/p&gt;
&lt;h2 id=&#34;5-el-lanzamiento-pone-un-claro-énfasis-en-la-optimización-de-los-agentes&#34;&gt;5. El lanzamiento pone un claro énfasis en la optimización de los agentes.
&lt;/h2&gt;&lt;p&gt;Otra señal fuerte de la página de anuncios es que DeepSeek está impulsando activamente &amp;ldquo;V4&amp;rdquo; hacia casos de uso de agentes.&lt;/p&gt;
&lt;p&gt;La página dice que &amp;ldquo;DeepSeek-V4&amp;rdquo; se ha integrado perfectamente con varios agentes líderes de IA, incluidos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Código Claude&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;OpenClaw&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Código Abierto&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;DeepSeek también dice que &amp;ldquo;V4&amp;rdquo; ya se está utilizando en sus flujos de trabajo de codificación agentes internos.&lt;/p&gt;
&lt;p&gt;Eso significa que el objetivo ya no se limita al chat o a la finalización ordinaria. El modelo se está posicionando para flujos de trabajo más largos: leer código, comprender la estructura, llamar a herramientas, generar resultados y conectar todo el proceso.&lt;/p&gt;
&lt;p&gt;Si ha estado prestando atención a los agentes de codificación recientemente, vale la pena señalarlo. Los proveedores de modelos ya no compiten sólo en base a puntos de referencia. También compiten sobre si el modelo realmente puede integrarse en flujos de trabajo reales.&lt;/p&gt;
&lt;h2 id=&#34;6-la-innovación-estructural-está-al-servicio-de-la-eficiencia-en-el-contexto-a-largo-plazo&#34;&gt;6. La innovación estructural está al servicio de la eficiencia en el contexto a largo plazo.
&lt;/h2&gt;&lt;p&gt;En el aspecto técnico, la página resume el trabajo estructural de este lanzamiento como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;compresión por token&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DSA (Atención escasa de DeepSeek)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La dirección es clara: hacer que el contexto largo sea más barato y más eficiente, al mismo tiempo que se reducen los costos de computación y memoria tanto como sea posible.&lt;/p&gt;
&lt;p&gt;La página del anuncio no entra en detalles técnicos completos, pero al menos sugiere que DeepSeek no depende únicamente del escalamiento por fuerza bruta para admitir ventanas más largas. También está realizando optimizaciones a nivel de arquitectura específicamente para la eficiencia en contextos prolongados.&lt;/p&gt;
&lt;p&gt;Para los usuarios reales, eso a menudo es más importante que simplemente ver un número de contexto mayor, porque la usabilidad real depende de algo más que si &amp;ldquo;1M&amp;rdquo; está técnicamente disponible. También depende de:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si la velocidad sigue siendo aceptable&lt;/li&gt;
&lt;li&gt;Si el costo sigue siendo aceptable&lt;/li&gt;
&lt;li&gt;Si las tareas de contexto largo permanecen estables en la práctica&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;7-la-api-ya-está-disponible-pero-la-migración-del-modelo-es-importante&#34;&gt;7. La API ya está disponible, pero la migración del modelo es importante
&lt;/h2&gt;&lt;p&gt;La página oficial indica claramente que la API está disponible hoy.&lt;/p&gt;
&lt;p&gt;La ruta de migración también es relativamente sencilla:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mantener la misma &lt;code&gt;base_url&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Cambie el nombre del modelo a &lt;code&gt;deepseek-v4-pro&lt;/code&gt; o &lt;code&gt;deepseek-v4-flash&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La página también dice que ambos modelos admiten:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Contexto 1M&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Modos duales &amp;ldquo;Pensamiento / No pensamiento&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Compleciones de Chat OpenAI&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;API antrópicas&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Eso significa que si ya utiliza la API de DeepSeek, la ruta de actualización no es especialmente difícil. El trabajo principal es actualizar los nombres de los modelos y validar el comportamiento.&lt;/p&gt;
&lt;h2 id=&#34;8-el-calendario-de-jubilación-para-modelos-antiguos-es-explícito&#34;&gt;8. El calendario de jubilación para modelos antiguos es explícito.
&lt;/h2&gt;&lt;p&gt;Para los desarrolladores, uno de los detalles más importantes de la página es en realidad el aviso de retirada de modelos más antiguos.&lt;/p&gt;
&lt;p&gt;DeepSeek dice explícitamente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;chat de búsqueda profunda&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;razonador de búsqueda profunda&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;quedará completamente retirado y será inaccesible después del &lt;strong&gt;24 de julio de 2026 a las 15:59 UTC&lt;/strong&gt;.
La página también señala que estos dos modelos están siendo encaminados actualmente a los modos de pensamiento y no pensamiento de &amp;ldquo;deepseek-v4-flash&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Eso significa que si su proyecto todavía hace referencia directa a &lt;code&gt;deepseek-chat&lt;/code&gt; o &lt;code&gt;deepseek-reasoner&lt;/code&gt;, ahora es el momento de planificar la migración en lugar de esperar hasta que se acerque la fecha de cierre formal.&lt;/p&gt;
&lt;h2 id=&#34;9-por-qué-vale-la-pena-leer-este-comunicado&#34;&gt;9. Por qué vale la pena leer este comunicado
&lt;/h2&gt;&lt;p&gt;Si comprimimos la actualización en algunas conclusiones principales, se ven así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;DeepSeek está convirtiendo el &amp;ldquo;contexto 1M&amp;rdquo; de una característica premium a un estándar predeterminado&lt;/li&gt;
&lt;li&gt;La estrategia de dos modelos es más clara: uno apunta al techo de rendimiento, el otro apunta a la velocidad y la rentabilidad.&lt;/li&gt;
&lt;li&gt;La capacidad del agente se ha trasladado a un papel muy central.&lt;/li&gt;
&lt;li&gt;La ruta de actualización de API es relativamente directa, pero el cronograma de retiro del modelo antiguo necesita atención pronto.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para los usuarios generales, el cambio más visible puede ser que los documentos largos, los contextos de código largos y los flujos de trabajo largos sean más fáciles de encajar en una sola sesión.&lt;br&gt;
Para los desarrolladores, el punto más importante es que si ya están creando agentes, asistentes de codificación, flujos de trabajo de conocimiento o canales de automatización complejos, esta generación está muy claramente diseñada para esos escenarios.&lt;/p&gt;
&lt;p&gt;Esta no es sólo una actualización rutinaria del modelo de DeepSeek. Se lee más como una declaración más clara de la próxima dirección de su producto: &lt;strong&gt;contexto ultralargo, optimización de agentes y preparación de API más práctica.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;enlaces-relacionados&#34;&gt;Enlaces relacionados
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Página oficial de noticias de DeepSeek: &lt;a class=&#34;link&#34; href=&#34;https://api-docs.deepseek.com/news/news260424&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://api-docs.deepseek.com/news/news260424&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Informe técnico: &lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/deepseek-ai/DeepSeek-V4-Pro/blob/main/DeepSeek_V4.pdf&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://huggingface.co/deepseek-ai/DeepSeek-V4-Pro/blob/main/DeepSeek_V4.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Pesos abiertos: &lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/collections/deepseek-ai/deepseek-v4&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://huggingface.co/collections/deepseek-ai/deepseek-v4&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>C贸mo solucionar que Ollama use CPU en lugar de GPU</title>
        <link>https://knightli.com/es/2026/04/24/fix-ollama-using-cpu-instead-of-gpu/</link>
        <pubDate>Fri, 24 Apr 2026 18:30:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/24/fix-ollama-using-cpu-instead-of-gpu/</guid>
        <description>&lt;p&gt;Al ejecutar LLMs locales, uno de los problemas más frustrantes es este: tu máquina claramente tiene una GPU, sin embargo, &lt;code&gt;Ollama&lt;/code&gt; sigue apoyándose en gran medida en la &lt;code&gt;CPU&lt;/code&gt;, y el rendimiento es dolorosamente lento.&lt;/p&gt;
&lt;p&gt;La versión corta es que esto generalmente no se debe a un único problema. Las causas más comunes son:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Ollama&lt;/code&gt; no está detectando ninguna GPU utilizable&lt;/li&gt;
&lt;li&gt;El driver, el entorno &lt;code&gt;ROCm&lt;/code&gt; o &lt;code&gt;CUDA&lt;/code&gt; no están configurados correctamente&lt;/li&gt;
&lt;li&gt;El servicio &lt;code&gt;Ollama&lt;/code&gt; se inició sin las variables de entorno adecuadas&lt;/li&gt;
&lt;li&gt;El modelo es demasiado grande y ha recurrido a la &lt;code&gt;CPU&lt;/code&gt; o tiene una carga mixta de &lt;code&gt;CPU/GPU&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;En plataformas AMD, puede haber problemas de compatibilidad adicionales, como una incompatibilidad de versión de &lt;code&gt;ROCm&lt;/code&gt;, ajustes &lt;code&gt;gfx&lt;/code&gt;, o problemas de visibilidad del dispositivo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La forma más rápida de solucionar el problema es seguir las comprobaciones a continuación en orden.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;1-primero-confirma-si-ollama-realmente-no-está-usando-la-gpu&#34;&gt;1. Primero, confirma si Ollama realmente no está usando la GPU
&lt;/h2&gt;&lt;p&gt;La comprobación más directa es:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama ps
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Concéntrate en la columna &lt;code&gt;PROCESSOR&lt;/code&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;100% GPU&lt;/code&gt;: el modelo se está ejecutando completamente en la GPU&lt;/li&gt;
&lt;li&gt;&lt;code&gt;100% CPU&lt;/code&gt;: la GPU no se está usando en absoluto&lt;/li&gt;
&lt;li&gt;Resultados como &lt;code&gt;48%/52% CPU/GPU&lt;/code&gt;: parte del modelo está en VRAM, y parte se ha volcado a la memoria del sistema&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si ves &lt;code&gt;100% CPU&lt;/code&gt;, el siguiente paso es centrarse en la configuración del entorno y del servicio.
Si ves una carga mixta, eso no significa necesariamente que la GPU esté rota. En muchos casos, simplemente significa que la VRAM no es suficiente.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;2-descartar-primero-el-malentendido-más-común-el-modelo-no-cabe-en-vram&#34;&gt;2. Descartar primero el malentendido más común: el modelo no cabe en VRAM
&lt;/h2&gt;&lt;p&gt;Mucha gente asume que una vez que se instala una GPU, &lt;code&gt;Ollama&lt;/code&gt; siempre funcionará completamente en ella. Eso no es así.&lt;/p&gt;
&lt;p&gt;Si el modelo es demasiado grande, el contexto es demasiado largo, o algún otro modelo cargado ya está ocupando VRAM, &lt;code&gt;Ollama&lt;/code&gt; puede recurrir a:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GPU parcial + CPU parcial&lt;/li&gt;
&lt;li&gt;&lt;code&gt;100% CPU&lt;/code&gt; completo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En este punto, las dos pruebas más sencillas son:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Intentar un modelo más pequeño primero
Por ejemplo, pruébalo con un modelo &lt;code&gt;4B&lt;/code&gt; o &lt;code&gt;7B&lt;/code&gt; antes de saltar directamente a modelos mucho más grandes.&lt;/li&gt;
&lt;li&gt;Descargar otros modelos activos y probar de nuevo
Ejecuta &lt;code&gt;ollama ps&lt;/code&gt; primero y asegúrate de que nada más esté ocupando VRAM.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si los modelos más pequeños usan la GPU, pero los más grandes no, el problema real suele ser la capacidad de VRAM, y no el driver.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;3-comprobar-si-el-driver-de-la-gpu-y-el-runtime-de-bajo-nivel-están-funcionando-realmente&#34;&gt;3. Comprobar si el driver de la GPU y el runtime de bajo nivel están funcionando realmente
&lt;/h2&gt;&lt;p&gt;Si incluso modelos pequeños se ejecutan solo en &lt;code&gt;CPU&lt;/code&gt;, el siguiente paso es revisar el entorno subyacente.&lt;/p&gt;
&lt;h3 id=&#34;nvidia&#34;&gt;NVIDIA
&lt;/h3&gt;&lt;p&gt;Primero, confirma que el driver está funcionando y que el sistema puede ver la GPU. Una comprobación común es:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nvidia-smi
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si esto ya falla, es muy poco probable que &lt;code&gt;Ollama&lt;/code&gt; use la GPU correctamente.&lt;/p&gt;
&lt;h3 id=&#34;amd--rocm&#34;&gt;AMD / ROCm
&lt;/h3&gt;&lt;p&gt;Si estás usando una &lt;code&gt;AMD GPU&lt;/code&gt;, especialmente con &lt;code&gt;ROCm&lt;/code&gt;, empieza con:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rocminfo
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rocm-smi
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si estas herramientas no pueden listar el dispositivo correctamente, el problema sigue estando por debajo de &lt;code&gt;Ollama&lt;/code&gt;, por lo que no tiene sentido depurar la capa de la aplicación todavía.&lt;/p&gt;
&lt;p&gt;En AMD, el problema más común no es simplemente &lt;code&gt;¿está instalado el driver?&lt;/code&gt;, sino más bien:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La versión de &lt;code&gt;ROCm&lt;/code&gt; no coincide con la versión del OS&lt;/li&gt;
&lt;li&gt;La arquitectura actual de la GPU tiene soporte incompleto&lt;/li&gt;
&lt;li&gt;El dispositivo existe, pero el runtime no se está exponiendo correctamente a &lt;code&gt;Ollama&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;4-reinicia-el-servicio-de-ollama-no-solo-tu-terminal&#34;&gt;4. Reinicia el servicio de Ollama, no solo tu terminal
&lt;/h2&gt;&lt;p&gt;Esta es una trampa muy común.&lt;/p&gt;
&lt;p&gt;Muchas personas instalan drivers, cambian variables de entorno, arreglan &lt;code&gt;ROCm&lt;/code&gt;, y luego simplemente abren una nueva terminal y continúan con &lt;code&gt;ollama run&lt;/code&gt;. Pero si &lt;code&gt;Ollama&lt;/code&gt; se está ejecutando como un servicio en segundo plano, aún puede estar usando el entorno antiguo.&lt;/p&gt;
&lt;p&gt;Por lo tanto, el enfoque más seguro es:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Reiniciar completamente el servicio &lt;code&gt;Ollama&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Reiniciar la máquina si es necesario&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si lo estás ejecutando como un servicio en Linux, asegúrate de que el proceso del servicio fue realmente reiniciado en lugar de reutilizar el antiguo.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;5-comprobar-si-las-variables-de-entorno-están-llegando-realmente-al-servicio&#34;&gt;5. Comprobar si las variables de entorno están llegando realmente al servicio
&lt;/h2&gt;&lt;p&gt;Esto es especialmente importante en sistemas &lt;code&gt;AMD ROCm&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Algunas máquinas funcionan bien cuando se ejecutan comandos manualmente en un shell, pero el servicio &lt;code&gt;Ollama&lt;/code&gt; sigue usando solo &lt;code&gt;CPU&lt;/code&gt;. En ese caso, la razón habitual es que el proceso del servicio nunca recibió las variables que estableciste en tu shell.&lt;/p&gt;
&lt;p&gt;Las variables comunes a revisar incluyen:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ROCR_VISIBLE_DEVICES
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;HSA_OVERRIDE_GFX_VERSION
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Específicamente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ROCR_VISIBLE_DEVICES&lt;/code&gt; limita o selecciona qué GPUs puede ver &lt;code&gt;ROCm&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;HSA_OVERRIDE_GFX_VERSION&lt;/code&gt; se usa a menudo como solución de compatibilidad en algunas plataformas AMD&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si solo &lt;code&gt;exportas&lt;/code&gt; estas variables en la terminal actual, pero &lt;code&gt;Ollama&lt;/code&gt; es iniciado por &lt;code&gt;systemd&lt;/code&gt;, un servicio de fondo de escritorio u otro demonio, es posible que no surtan efecto.&lt;/p&gt;
&lt;p&gt;En otras palabras, que &amp;ldquo;parece estar establecido en mi terminal&amp;rdquo; no significa que &lt;code&gt;Ollama&lt;/code&gt; lo esté usando realmente.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;6-en-plataformas-amd-céntrate-en-la-compatibilidad-de-rocm&#34;&gt;6. En plataformas AMD, céntrate en la compatibilidad de ROCm
&lt;/h2&gt;&lt;p&gt;Según los metadatos de la página pública, el video original sobre este tema está vinculado a &lt;code&gt;AMD Max+ 395&lt;/code&gt;, &lt;code&gt;strix halo&lt;/code&gt;, y &lt;code&gt;AMD ROCm&lt;/code&gt;.
En configuraciones como estas, que &lt;code&gt;Ollama&lt;/code&gt; no logre usar la GPU a menudo depende más de la coincidencia de versiones que de los sistemas NVIDIA.&lt;/p&gt;
&lt;p&gt;Empieza revisando lo siguiente:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Si la versión instalada de &lt;code&gt;ROCm&lt;/code&gt; es compatible con el OS y la GPU actuales&lt;/li&gt;
&lt;li&gt;Si la GPU pertenece a una arquitectura con soporte sólido de &lt;code&gt;ROCm&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Si necesitas establecer &lt;code&gt;HSA_OVERRIDE_GFX_VERSION&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Si una versión anterior de &lt;code&gt;Ollama&lt;/code&gt; o un runtime de inferencia antiguo está causando problemas de compatibilidad&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si &lt;code&gt;rocminfo&lt;/code&gt; funciona y la GPU es visible para el sistema, pero &lt;code&gt;Ollama&lt;/code&gt; sigue ejecutándose solo en &lt;code&gt;CPU&lt;/code&gt;, el problema a menudo radica en la combinación de versiones en lugar de en los parámetros del modelo.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;7-en-docker-wsl-o-entornos-remotos-comprueba-también-el-mapeo-de-dispositivos&#34;&gt;7. En Docker, WSL o entornos remotos, comprueba también el mapeo de dispositivos
&lt;/h2&gt;&lt;p&gt;Si no estás ejecutando en hardware físico (bare metal) sino dentro de:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Docker&lt;/li&gt;
&lt;li&gt;WSL&lt;/li&gt;
&lt;li&gt;Contenedores remotos (Remote containers)&lt;/li&gt;
&lt;li&gt;Entornos virtualizados&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;entonces necesitas comprobar una capa más: si el dispositivo GPU realmente se está exponiendo dentro de ese entorno.&lt;/p&gt;
&lt;p&gt;Un síntoma típico se ve así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La máquina anfitriona (host machine) puede ver la GPU&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ollama&lt;/code&gt; dentro del contenedor o subsistema sigue usando solo &lt;code&gt;CPU&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En ese caso, el problema puede no ser &lt;code&gt;Ollama&lt;/code&gt; en sí. El contenedor o subsistema simplemente puede no tener acceso a la GPU.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;8-revisar-los-registros-al-final-pero-revisarlos-por-la-razón-correcta&#34;&gt;8. Revisar los registros al final, pero revisarlos por la razón correcta
&lt;/h2&gt;&lt;p&gt;Si ya has pasado por los pasos anteriores, el siguiente movimiento más efectivo no es reinstalar sin parar, sino mirar directamente los registros de inicio y tiempo de ejecución de &lt;code&gt;Ollama&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Concéntrate en dos tipos de mensajes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si se detectó una GPU&lt;/li&gt;
&lt;li&gt;Si hay errores de controlador, carga de bibliotecas o inicialización de dispositivos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si los registros dicen claramente algo como &amp;ldquo;no compatible GPU found&amp;rdquo; o &amp;ldquo;failed to initialize ROCm/CUDA&amp;rdquo;, la dirección de la solución de problemas se vuelve mucho más clara de inmediato.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;orden-de-solución-de-problemas&#34;&gt;Orden de Solución de Problemas
&lt;/h2&gt;&lt;p&gt;Si solo quieres el camino más corto, usa este orden:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Ejecuta &lt;code&gt;ollama ps&lt;/code&gt; y confirma si está usando &lt;code&gt;GPU&lt;/code&gt;, &lt;code&gt;CPU&lt;/code&gt; o carga mixta.&lt;/li&gt;
&lt;li&gt;Intenta con un modelo más pequeño para descartar límites de VRAM.&lt;/li&gt;
&lt;li&gt;Utiliza &lt;code&gt;nvidia-smi&lt;/code&gt;, &lt;code&gt;rocminfo&lt;/code&gt; y &lt;code&gt;rocm-smi&lt;/code&gt; para verificar primero el entorno de bajo nivel.&lt;/li&gt;
&lt;li&gt;Reinicia completamente el servicio &lt;code&gt;Ollama&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Revisa las variables de entorno del servicio, especialmente &lt;code&gt;ROCR_VISIBLE_DEVICES&lt;/code&gt; y &lt;code&gt;HSA_OVERRIDE_GFX_VERSION&lt;/code&gt; en AMD.&lt;/li&gt;
&lt;li&gt;Si estás en Docker o WSL, verifica el mapeo de dispositivos.&lt;/li&gt;
&lt;li&gt;Finalmente, inspecciona los logs para encontrar el error exacto.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;conclusión&#34;&gt;Conclusión
&lt;/h2&gt;&lt;p&gt;Cuando &lt;code&gt;Ollama&lt;/code&gt; utiliza &lt;code&gt;CPU&lt;/code&gt; en lugar de &lt;code&gt;GPU&lt;/code&gt;, la causa raíz generalmente cae en uno de tres grupos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La GPU no está siendo detectada en absoluto&lt;/li&gt;
&lt;li&gt;La GPU es detectable, pero el entorno de ejecución no está alcanzando a &lt;code&gt;Ollama&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;La GPU está funcionando, pero el modelo es demasiado grande y retrocede a &lt;code&gt;CPU&lt;/code&gt; o memoria mixta&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Una vez que se separan esos tres casos, la solución de problemas se vuelve mucho más rápida. Si estás en una plataforma AMD, presta especial atención a la coincidencia de versiones de &lt;code&gt;ROCm&lt;/code&gt;, la visibilidad del dispositivo y las variables de compatibilidad, en lugar de centrarte solo en el comando &lt;code&gt;Ollama&lt;/code&gt; en sí.&lt;/p&gt;
&lt;p&gt;Original video: &lt;a class=&#34;link&#34; href=&#34;https://www.bilibili.com/video/BV1cHoYBqE8k/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.bilibili.com/video/BV1cHoYBqE8k/&lt;/a&gt;
false&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Qu茅 es NVIDIA nvbandwidth: c贸mo usar esta herramienta de prueba de ancho de banda de GPU</title>
        <link>https://knightli.com/es/2026/04/24/nvidia-nvbandwidth-guide/</link>
        <pubDate>Fri, 24 Apr 2026 14:41:35 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/24/nvidia-nvbandwidth-guide/</guid>
        <description>&lt;p&gt;Si recientemente has estado solucionando problemas del rendimiento de la interconexión entre múltiples &lt;code&gt;NVIDIA GPU&lt;/code&gt;s, o si deseas verificar el ancho de banda real entre &lt;code&gt;PCIe&lt;/code&gt;, &lt;code&gt;NVLink&lt;/code&gt;, la memoria host y la VRAM, &lt;code&gt;NVIDIA/nvbandwidth&lt;/code&gt; es una herramienta pequeña que vale la pena conocer.&lt;/p&gt;
&lt;p&gt;No es una utilidad de benchmark general, ni es un comando oculto dentro de un framework de modelo grande. Es una herramienta de código abierto de NVIDIA diseñada específicamente para medir el ancho de banda y la latencia para copias de memoria relacionadas con la GPU. En lugar de solo mirar el ancho de banda teórico, &lt;code&gt;nvbandwidth&lt;/code&gt; es mejor para responder a una pregunta práctica: &lt;strong&gt;¿cuánto ancho de banda puede entregar esta máquina y sus interconexiones GPU actuales en este momento?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;1-qué-hace-nvbandwidth&#34;&gt;1. ¿Qué hace &lt;code&gt;nvbandwidth&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;Según el README oficial, &lt;code&gt;nvbandwidth&lt;/code&gt; es una herramienta de línea de comandos para medir el ancho de banda en las &lt;code&gt;NVIDIA GPU&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Se enfoca principalmente en el rendimiento de transferencia a través de diferentes patrones de &lt;code&gt;memcpy&lt;/code&gt;, tales como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GPU -&amp;gt; GPU&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CPU -&amp;gt; GPU&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GPU -&amp;gt; CPU&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Transferencias entre GPUs a través de múltiples nodos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas pruebas son especialmente útiles en escenarios como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Solucionar problemas de cuellos de botella de interconexión en el entrenamiento o la inferencia multi-GPU&lt;/li&gt;
&lt;li&gt;Verificar el comportamiento real de enlaces como &lt;code&gt;NVLink&lt;/code&gt;, &lt;code&gt;PCIe&lt;/code&gt; y &lt;code&gt;C2C&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Comparar diferencias de transferencia entre servidores, topologías, drivers o versiones de CUDA&lt;/li&gt;
&lt;li&gt;Realizar validación de hardware de referencia antes del despliegue del clúster&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En resumen, &lt;code&gt;nvbandwidth&lt;/code&gt; no se trata del rendimiento del modelo (model throughput). Se trata de la capacidad de bajo nivel para mover datos.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;2-no-produce-solo-una-puntuación-simple&#34;&gt;2. No produce solo una puntuación simple
&lt;/h2&gt;&lt;p&gt;Mucha gente considera una prueba de ancho de banda como algo que termina con un solo número, pero &lt;code&gt;nvbandwidth&lt;/code&gt; proporciona una salida más detallada que eso.&lt;/p&gt;
&lt;p&gt;Informa los resultados como matrices para cada tipo de prueba. Por ejemplo, en una prueba como &lt;code&gt;device_to_device_memcpy_write_ce&lt;/code&gt;, muestra el ancho de banda entre cada par de GPUs por fila y columna. Eso significa que puedes ver más que solo una estimación aproximada de la velocidad a nivel de todo el sistema. También puedes detectar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Qué pares de GPUs son especialmente rápidos&lt;/li&gt;
&lt;li&gt;Qué rutas están claramente limitadas por &lt;code&gt;PCIe&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Si ciertos pares de GPUs muestran un ancho de banda anormalmente bajo&lt;/li&gt;
&lt;li&gt;Si la topología multi-GPU coincide con tus expectativas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si estás trabajando con un servidor de 8 GPUs, una plataforma dual-socket o un sistema multinodo, esta salida de estilo matriz suele ser más útil que un único número promedio.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;3-cómo-entender-las-copias-ce-y-sm&#34;&gt;3. Cómo entender las copias &lt;code&gt;CE&lt;/code&gt; y &lt;code&gt;SM&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;La documentación oficial divide las pruebas en dos categorías:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CE&lt;/code&gt;: transferencias del motor de copia basadas en las APIs &lt;code&gt;memcpy&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SM&lt;/code&gt;: transferencias basadas en el kernel&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estos dos tipos de resultados no están garantizados a coincidir exactamente, porque representan diferentes rutas de copia. Si principalmente quieres entender el comportamiento regular de transferencia de dispositivo a dispositivo, generalmente mirarás &lt;code&gt;CE&lt;/code&gt; primero. Si quieres estudiar los detalles de ejecución más de cerca, entonces &lt;code&gt;SM&lt;/code&gt; también vale la pena revisar.&lt;/p&gt;
&lt;p&gt;El README también explica que los resultados de ancho de banda utilizan la mediana a través de múltiples ejecuciones de prueba por defecto. Las versiones más nuevas incluyen además estadísticas de variabilidad, lo que facilita juzgar cuán estables son los números.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;4-qué-entorno-requiere&#34;&gt;4. ¿Qué entorno requiere
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;nvbandwidth&lt;/code&gt; no es una utilidad binaria pura que simplemente descargues y ejecutes. Espera un entorno de desarrollo CUDA estándar.&lt;/p&gt;
&lt;p&gt;El README actual enumera estos requisitos básicos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CUDA Toolkit 11.x&lt;/code&gt; o más reciente&lt;/li&gt;
&lt;li&gt;Un compilador con soporte para &lt;code&gt;C++17&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CMake 3.20+&lt;/code&gt;, siendo &lt;code&gt;3.24+&lt;/code&gt; recomendado&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Boost program_options&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Un dispositivo &lt;code&gt;CUDA&lt;/code&gt; utilizable y un controlador compatible&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Los requisitos son más altos si deseas la versión multinode. El README actual indica explícitamente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Las compilaciones multinode requieren &lt;code&gt;CUDA Toolkit 12.3&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;El controlador debe ser &lt;code&gt;550&lt;/code&gt; o más reciente&lt;/li&gt;
&lt;li&gt;Se requiere &lt;code&gt;MPI&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;El servicio &lt;code&gt;nvidia-imex&lt;/code&gt; debe estar configurado&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por lo tanto, esta es mucho más una herramienta de ingeniería para servidores y clusters de GPU en Linux que algo destinado a un uso de escritorio casual.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;5-cómo-construir-y-ejecutar-la-versión-de-nodo-único&#34;&gt;5. Cómo construir y ejecutar la versión de nodo único
&lt;/h2&gt;&lt;p&gt;El proceso de construcción de nodo único es sencillo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cmake .
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;make
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;En &lt;code&gt;Ubuntu&lt;/code&gt; / &lt;code&gt;Debian&lt;/code&gt;, el proyecto también proporciona un script &lt;code&gt;debian_install.sh&lt;/code&gt; que instala dependencias comunes y construye el proyecto.&lt;/p&gt;
&lt;p&gt;Después de construir, puedes verificar primero la salida de ayuda:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./nvbandwidth -h
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Algunas opciones comúnmente utilizadas incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-l&lt;/code&gt;: listar pruebas disponibles&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-t&lt;/code&gt;: ejecutar una prueba específica por nombre o índice&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-p&lt;/code&gt;: ejecutar pruebas por prefijo&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-b&lt;/code&gt;: establecer el tamaño del búfer de memcpy, predeterminado &lt;code&gt;512 MiB&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-i&lt;/code&gt;: establecer el número de iteraciones de benchmark&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-j&lt;/code&gt;: salida &lt;code&gt;JSON&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-H&lt;/code&gt;: habilitar huge pages para la asignación de memoria del host&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si solo deseas ejecutar la suite de pruebas predeterminada una vez, usa:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./nvbandwidth
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si solo quieres probar un elemento específico, como una copia de dispositivo a dispositivo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./nvbandwidth -t device_to_device_memcpy_read_ce
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;6-el-soporte-multinodo-es-una-de-sus-características-más-destacadas&#34;&gt;6. El soporte multinodo es una de sus características más destacadas
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;nvbandwidth&lt;/code&gt; no es solo para pruebas multi-GPU en un solo nodo. También admite escenarios multinodo.&lt;/p&gt;
&lt;p&gt;Según el README, la compilación multinodo se realiza de esta manera:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cmake -DMULTINODE&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; .
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;make
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;En tiempo de ejecución, normalmente se utiliza junto con &lt;code&gt;mpirun&lt;/code&gt;, con un proceso lanzado por GPU. La documentación también requiere que todos los ranks participantes pertenezcan al mismo clúster multinodo, y recomienda ejecutar las pruebas principalmente con el prefijo &lt;code&gt;multinode&lt;/code&gt; bajo MPI.&lt;/p&gt;
&lt;p&gt;Esto acerca su posicionamiento a la informática de alto rendimiento (high-performance computing) y a los sistemas GPU grandes que a las comprobaciones básicas de una estación de trabajo.&lt;/p&gt;
&lt;p&gt;Si estás trabajando con implementaciones multinodo de &lt;code&gt;NVLink&lt;/code&gt; o plataformas más complejas como &lt;code&gt;GB200&lt;/code&gt; / &lt;code&gt;Grace Hopper&lt;/code&gt;, el valor de &lt;code&gt;nvbandwidth&lt;/code&gt; es mucho mayor de lo que sería en una configuración típica de GPU de consumo.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;7-qué-cambió-en-v09&#34;&gt;7. Qué cambió en v0.9
&lt;/h2&gt;&lt;p&gt;A partir del &lt;strong&gt;24 de abril de 2026&lt;/strong&gt;, la página de GitHub Releases muestra que la última versión de &lt;code&gt;nvbandwidth&lt;/code&gt; es &lt;strong&gt;&lt;code&gt;v0.9&lt;/code&gt;&lt;/strong&gt;, lanzada el &lt;strong&gt;8 de abril de 2026&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Las actualizaciones más destacadas en este lanzamiento incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Se agregaron estadísticas de variabilidad a la salida de ancho de banda&lt;/li&gt;
&lt;li&gt;Se agregó soporte para páginas grandes (huge page) para la memoria anfitriona (excluyendo Windows)&lt;/li&gt;
&lt;li&gt;Se agregó muestreo de pares (pair sampling) para pruebas de dispositivo a dispositivo&lt;/li&gt;
&lt;li&gt;Se agregó una guía de solución de problemas&lt;/li&gt;
&lt;li&gt;Se unificaron los caminos de ejecución de nodo único y multinodo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;También vale la pena señalar dos cambios orientados a la ingeniería:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mejora en la detección de la arquitectura CUDA sin depender tanto del acceso directo a la GPU&lt;/li&gt;
&lt;li&gt;Se eliminó el soporte para Volta (&lt;code&gt;sm_70&lt;/code&gt; / &lt;code&gt;sm_72&lt;/code&gt;) en entornos de CUDA Toolkit 13.0+&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por lo tanto, si solo mirabas las versiones anteriores, &lt;code&gt;v0.9&lt;/code&gt; ya no es solo un probador básico de ancho de banda. Claramente se está moviendo hacia una mejor automatización, solución de problemas y validación de sistemas a gran escala.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;8-cuándo-es-una-buena-opción&#34;&gt;8. ¿Cuándo es una buena opción?
&lt;/h2&gt;&lt;p&gt;``nvbandwidth` es especialmente adecuado cuando:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Quieres verificar el ancho de banda de interconexión real entre múltiples &lt;code&gt;NVIDIA GPU&lt;/code&gt;s&lt;/li&gt;
&lt;li&gt;Sospechas que una GPU está instalada en una ranura &lt;code&gt;PCIe&lt;/code&gt; con ancho de banda limitado&lt;/li&gt;
&lt;li&gt;Quieres comparar rutas &lt;code&gt;NVLink&lt;/code&gt; frente a rutas no &lt;code&gt;NVLink&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Estás desplegando un clúster de GPU multinode y necesitas validar los enlaces&lt;/li&gt;
&lt;li&gt;Quieres los resultados de las pruebas en &lt;code&gt;JSON&lt;/code&gt; para pipelines de automatización&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pero si tu objetivo es solo responder preguntas como &amp;ldquo;¿qué tan rápido es el entrenamiento?&amp;rdquo; o &amp;ldquo;¿cuántos tokens por segundo puede alcanzar la inferencia?&amp;rdquo;, esta herramienta no es la respuesta completa.
En ese caso, todavía necesitas pruebas a nivel de carga de trabajo (workload-level testing) con tu framework de entrenamiento, motor de inferencia o aplicación real.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;9-cómo-pensar-sobre-su-valor&#34;&gt;9. Cómo pensar sobre su valor
&lt;/h2&gt;&lt;p&gt;Muchos problemas de rendimiento de GPU no son causados realmente por una capacidad de cómputo insuficiente. Ocurren porque la ruta de datos no está funcionando como se espera.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Las GPUs no están utilizando la ruta de interconexión prevista&lt;/li&gt;
&lt;li&gt;El acceso Cross-NUMA está reduciendo la velocidad&lt;/li&gt;
&lt;li&gt;Ciertos pares de GPU tienen un ancho de banda anormal&lt;/li&gt;
&lt;li&gt;La comunicación multinode está solo parcialmente configurada&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estos problemas a menudo son difíciles de diagnosticar si solo se observa &lt;code&gt;nvidia-smi&lt;/code&gt; o el rendimiento del modelo. Una herramienta de nivel más bajo y orientada a matrices, como &lt;code&gt;nvbandwidth&lt;/code&gt;, es útil precisamente porque expone lo que está sucediendo en la capa de interconexión.&lt;/p&gt;
&lt;p&gt;Así que una forma sencilla de pensarlo es: &lt;strong&gt;&lt;code&gt;nvbandwidth&lt;/code&gt; es una herramienta de verificación de salud en línea de comandos para el ancho de banda en sistemas NVIDIA GPU.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;enlaces-relacionados&#34;&gt;Enlaces relacionados
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Proyecto GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/NVIDIA/nvbandwidth&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/NVIDIA/nvbandwidth&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Lanzamientos: &lt;a class=&#34;link&#34; href=&#34;https://github.com/NVIDIA/nvbandwidth/releases&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/NVIDIA/nvbandwidth/releases&lt;/a&gt;
false&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>K vecinos m谩s cercanos para principiantes: entender la clasificaci贸n en machine learning mediante voto de vecinos</title>
        <link>https://knightli.com/es/2026/04/24/knn-algorithm-beginner-guide/</link>
        <pubDate>Fri, 24 Apr 2026 11:17:13 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/24/knn-algorithm-beginner-guide/</guid>
        <description>&lt;p&gt;&lt;code&gt;K-nearest neighbors&lt;/code&gt;, a menudo escrito como &lt;code&gt;KNN&lt;/code&gt; o &lt;code&gt;k-NN&lt;/code&gt;, es uno de los algoritmos de aprendizaje automático más sencillos para empezar. Su idea es muy simple: para decidir a qué clase pertenece una muestra nueva, mira las muestras más similares a su alrededor y observa qué clase aparece con mayor frecuencia.&lt;/p&gt;
&lt;p&gt;Si explicamos KNN en una frase, sería:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A menudo eres juzgado por la compañía que mantienes.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Por ejemplo, imagina que acabas de mudarte a un barrio y quieres saber cuál es la mejor tienda de desayunos cercana para los estudiantes. Le preguntas a los 5 vecinos más cercanos, y 4 de ellos recomiendan la misma tienda. Probablemente confiarás en esa tienda primero. KNN hace algo similar al clasificar datos: encuentra vecinos y sigue la mayoría.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;1-comience-con-un-ejemplo-pequeño&#34;&gt;1. Comience con un Ejemplo Pequeño
&lt;/h2&gt;&lt;p&gt;Suponga que queremos decidir si una fruta es una manzana o una naranja. Ya conocemos algunas características de la fruta, tales como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Peso&lt;/li&gt;
&lt;li&gt;Color&lt;/li&gt;
&lt;li&gt;Dulzura&lt;/li&gt;
&lt;li&gt;Si la cáscara es rugosa&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ahora llega una fruta nueva y no sabemos qué es. KNN no resume primero una regla compleja. En cambio, busca directamente las frutas conocidas que son más similares a ella.&lt;/p&gt;
&lt;p&gt;Si las 5 frutas más similares incluyen 4 manzanas y 1 naranja, KNN juzgará que es más probable que la fruta nueva sea una manzana.&lt;/p&gt;
&lt;p&gt;Aquí, &lt;code&gt;K&lt;/code&gt; significa &amp;ldquo;cuántos vecinos mirar&amp;rdquo;. Si &lt;code&gt;K=5&lt;/code&gt;, miramos los 5 muestras más cercanas.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;2-un-diagrama-simple&#34;&gt;2. Un Diagrama Simple
&lt;/h2&gt;&lt;p&gt;El siguiente esquema bidimensional ayuda a construir la intuición. Supongamos que &lt;code&gt;A&lt;/code&gt; significa manzana, &lt;code&gt;O&lt;/code&gt; significa naranja, y &lt;code&gt;?&lt;/code&gt; es la nueva fruta que queremos clasificar.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Sweetness ^
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; High |        A       A
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      |
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      |           ?
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      |       A       O
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      |
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  Low |   O       O
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      +--------------------&amp;gt; Weight
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;         Light          Heavy
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si establecemos &lt;code&gt;K=3&lt;/code&gt;, miramos los 3 puntos más cercanos a &lt;code&gt;?&lt;/code&gt;. Supongamos que esos 3 vecinos más cercanos contienen 2 &lt;code&gt;A&lt;/code&gt; y 1 &lt;code&gt;O&lt;/code&gt;. KNN clasificará &lt;code&gt;?&lt;/code&gt; como &lt;code&gt;A&lt;/code&gt;, es decir, manzana.&lt;/p&gt;
&lt;p&gt;Ese es el proceso central de KNN: &lt;strong&gt;encontrar los K vecinos más cercanos y luego votar.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;3-pasos-básicos-de-knn&#34;&gt;3. Pasos Básicos de KNN
&lt;/h2&gt;&lt;p&gt;Sin usar fórmulas, el proceso de clasificación KNN funciona de la siguiente manera:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Preparar un conjunto de datos cuyas clases ya son conocidas&lt;/li&gt;
&lt;li&gt;Recibir una nueva muestra con una clase desconocida&lt;/li&gt;
&lt;li&gt;Comparar su similitud con todas las muestras conocidas&lt;/li&gt;
&lt;li&gt;Encontrar las K muestras más similares&lt;/li&gt;
&lt;li&gt;Verificar qué clase aparece con más frecuencia entre esas K muestras&lt;/li&gt;
&lt;li&gt;Asignar la nueva muestra a esa clase&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Por eso KNN es fácil de entender. A diferencia de algunos modelos que primero necesitan entrenar muchos parámetros, KNN es más parecido a almacenar los datos de entrenamiento primero y buscar vecinos cuando se necesita una predicción.&lt;/p&gt;
&lt;p&gt;También por eso a KNN se le llama a menudo un método de &amp;ldquo;lazy learning&amp;rdquo;. &amp;ldquo;Lazy&amp;rdquo; no es negativo aquí. Significa que el algoritmo no realiza mucha computación durante el entrenamiento; la mayor parte del trabajo se pospone hasta el momento de la predicción.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;4-qué-significa-más-cercano&#34;&gt;4. ¿Qué Significa &amp;ldquo;Más Cercano&amp;rdquo;?
&lt;/h2&gt;&lt;p&gt;En KNN, &amp;ldquo;más cercano&amp;rdquo; no significa necesariamente la distancia en un mapa. Usualmente significa &amp;ldquo;más similar en características&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Para la clasificación de frutas, dos frutas pueden considerarse más cercanas si su peso, color y dulzura son similares. Para la predicción de interés de usuarios, dos usuarios pueden considerarse más cercanos si tienen un historial de visualización, comportamiento de clic y registros de compra similares.&lt;/p&gt;
&lt;p&gt;Por lo tanto, la clave en KNN no es la ubicación física, sino cómo describes una muestra.&lt;/p&gt;
&lt;p&gt;Las características comunes pueden incluir:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Precio, peso y volumen de ventas del producto&lt;/li&gt;
&lt;li&gt;Edad del usuario, vistas de página y frecuencia de compra&lt;/li&gt;
&lt;li&gt;Color, textura y forma de la imagen&lt;/li&gt;
&lt;li&gt;Si ciertas palabras aparecen en un texto&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si las características se eligen bien afecta directamente el rendimiento de KNN.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;5-cómo-elegir-k&#34;&gt;5. Cómo Elegir K
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;K&lt;/code&gt; no es una respuesta fija. Debe elegirse basándose en los datos.&lt;/p&gt;
&lt;p&gt;Si &lt;code&gt;K&lt;/code&gt; es demasiado pequeño, como &lt;code&gt;K=1&lt;/code&gt;, el modelo confía demasiado en la única muestra más cercana. Esto puede ser sensible: si esa muestra más cercana resulta ser datos ruidosos, la predicción puede estar fácilmente equivocada.&lt;/p&gt;
&lt;p&gt;Si &lt;code&gt;K&lt;/code&gt; es demasiado grande, el modelo examina demasiados vecinos, y muestras distantes que no son muy relevantes pueden afectar el resultado. El límite entre las clases puede volverse borroso.&lt;/p&gt;
&lt;p&gt;Puedes pensarlo como pedir consejo a personas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Preguntar solo a 1 persona: es fácil ser engañado por una opinión&lt;/li&gt;
&lt;li&gt;Preguntar a demasiadas personas: algunas personas pueden no entender tu situación&lt;/li&gt;
&lt;li&gt;Preguntar a algunas personas cercanas y relevantes: usualmente más estable&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En la clasificación binaria, las personas a menudo eligen un &lt;code&gt;K&lt;/code&gt; impar, como &lt;code&gt;3&lt;/code&gt;, &lt;code&gt;5&lt;/code&gt; o &lt;code&gt;7&lt;/code&gt;, para reducir la posibilidad de un empate en la votación.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;6-knn-no-es-solo-para-clasificación&#34;&gt;6. KNN No es Solo para Clasificación
&lt;/h2&gt;&lt;p&gt;KNN se utiliza con mayor frecuencia para clasificación, como para determinar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si un correo electrónico es spam&lt;/li&gt;
&lt;li&gt;Si una imagen contiene un gato o un perro&lt;/li&gt;
&lt;li&gt;Si un usuario podría abandonarnos (churn)&lt;/li&gt;
&lt;li&gt;Si una reseña es positiva o negativa&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pero también se puede usar para regresión. Regresión significa predecir un valor numérico.&lt;/p&gt;
&lt;p&gt;Por ejemplo, si queremos estimar el precio de una casa, podemos encontrar varias casas que sean más similares a ella y usar sus precios como referencia. En lugar de votar por una clase, combinamos los valores numéricos de los vecinos.&lt;/p&gt;
&lt;p&gt;En resumen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Clasificación: los vecinos votan por una clase&lt;/li&gt;
&lt;li&gt;Regresión: se utilizan los valores de los vecinos para estimar un resultado&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;7-knn-ponderado-los-vecinos-más-cercanos-importan-más&#34;&gt;7. KNN Ponderado: Los Vecinos Más Cercanos Importan Más
&lt;/h2&gt;&lt;p&gt;El KNN ordinario otorga aproximadamente el mismo peso de votación a cada vecino. Pero en situaciones reales, los vecinos más cercanos suelen ser más fiables.&lt;/p&gt;
&lt;p&gt;Por ejemplo, entre 5 vecinos, una muestra puede ser casi idéntica a la nueva muestra, mientras que las otras 4 son solo algo similares. Tratar todos los votos por igual puede no ser razonable.&lt;/p&gt;
&lt;p&gt;Así que existe una idea mejorada llamada &amp;ldquo;KNN ponderado&amp;rdquo; (weighted KNN): los vecinos más cercanos tienen más influencia y los vecinos más lejanos tienen menos influencia.&lt;/p&gt;
&lt;p&gt;Esto es fácil de entender. Cuando compras un teléfono, el consejo de alguien cuyo presupuesto, caso de uso y preferencia de marca están muy cerca del tuyo suele ser más útil que el consejo general.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;8-ventajas-de-knn&#34;&gt;8. Ventajas de KNN
&lt;/h2&gt;&lt;p&gt;KNN tiene varias ventajas aptas para principiantes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La idea es intuitiva y fácil de explicar&lt;/li&gt;
&lt;li&gt;No requiere un proceso de entrenamiento complejo&lt;/li&gt;
&lt;li&gt;Se puede usar tanto para clasificación como para regresión&lt;/li&gt;
&lt;li&gt;Es flexible para problemas con límites irregulares&lt;/li&gt;
&lt;li&gt;Los datos nuevos generalmente se pueden añadir fácilmente&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si recién estás empezando a aprender machine learning, KNN es un punto de entrada muy bueno. Te ayuda a comprender conceptos básicos como samples, features, distancia, clasificación y training data.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;9-limitaciones-de-knn&#34;&gt;9. Limitaciones de KNN
&lt;/h2&gt;&lt;p&gt;KNN también tiene debilidades claras.&lt;/p&gt;
&lt;p&gt;Primero, la predicción puede ser lenta. Cada vez que llega una muestra nueva, puede que deba compararse con muchas muestras existentes. Si el conjunto de datos es grande, el coste de cómputo puede aumentar.&lt;/p&gt;
&lt;p&gt;Segundo, depende en gran medida de las escalas de las características. Por ejemplo, una característica puede ser &amp;ldquo;ingreso&amp;rdquo; (income), a menudo en miles o decenas de miles, mientras que otra es &amp;ldquo;edad&amp;rdquo; (age), generalmente de solo decenas. Sin procesamiento, el ingreso puede dominar demasiado el cálculo de la distancia.&lt;/p&gt;
&lt;p&gt;Por eso a menudo se necesita la estandarización de datos antes de usar KNN, para que las diferentes características se comparen de manera más equitativa.&lt;/p&gt;
&lt;p&gt;Tercero, se ve fácilmente afectado por características irrelevantes. Si estás clasificando frutas pero incluyes información irrelevante como &amp;ldquo;fecha de compra&amp;rdquo; (purchase date), el modelo puede distraerse.&lt;/p&gt;
&lt;p&gt;Cuarto, es sensible a la distribución local de los datos. Si una clase tiene muchos más ejemplos que otra, puede dominar más fácilmente la votación.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;10-no-confundirlo-con-k-means&#34;&gt;10. No Confundirlo con K-Means
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;KNN&lt;/code&gt; y &lt;code&gt;K-means&lt;/code&gt; ambos contienen &lt;code&gt;K&lt;/code&gt; en sus nombres, pero no son lo mismo.&lt;/p&gt;
&lt;p&gt;KNN es aprendizaje supervisado. Normalmente utiliza datos que ya tienen etiquetas para clasificar nuevas muestras.&lt;/p&gt;
&lt;p&gt;K-means se utiliza más a menudo para clústeres (clustering), lo que significa dividir automáticamente los datos en grupos cuando no hay etiquetas claras.&lt;/p&gt;
&lt;p&gt;Una forma simple de recordarlo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;KNN: mira a los vecinos, luego clasifica o realiza regresión&lt;/li&gt;
&lt;li&gt;K-means: encuentra centros, luego agrupa los datos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;11-cuándo-knn-es-una-buena-opción&#34;&gt;11. Cuándo KNN Es una Buena Opción
&lt;/h2&gt;&lt;p&gt;KNN es adecuado para estas situaciones:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El conjunto de datos no es demasiado grande&lt;/li&gt;
&lt;li&gt;Las características (Features) se pueden representar en números de forma bastante sencilla&lt;/li&gt;
&lt;li&gt;La similitud entre muestras es significativa&lt;/li&gt;
&lt;li&gt;Necesitas un método base (baseline) fácil de explicar&lt;/li&gt;
&lt;li&gt;Quieres probar rápidamente si una idea de clasificación funciona&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si el conjunto de datos es enorme, el número de características es muy grande o la velocidad de predicción es crítica, KNN puede no ser la mejor opción, o puede necesitar ser combinado con métodos de búsqueda de vecinos más eficientes (nearest-neighbor search methods).&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;12-lo-que-los-principiantes-deben-recordar&#34;&gt;12. Lo que los principiantes deben recordar
&lt;/h2&gt;&lt;p&gt;Al aprender KNN, no necesitas empezar con fórmulas complejas. Recuerda primero estas intuiciones:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;KNN usa &amp;ldquo;vecinos&amp;rdquo; para juzgar una muestra nueva.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;K&lt;/code&gt; significa cuántos vecinos más cercanos hay que considerar.&lt;/li&gt;
&lt;li&gt;La clasificación utiliza votación, mientras que la regresión utiliza los valores de los vecinos.&lt;/li&gt;
&lt;li&gt;La selección de características y la estandarización de datos son importantes.&lt;/li&gt;
&lt;li&gt;Si &lt;code&gt;K&lt;/code&gt; es demasiado pequeño, el ruido importa demasiado; si es demasiado grande, el modelo puede volverse lento.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;KNN es valioso no solo porque puede resolver algunos problemas, sino también porque introduce claramente varias ideas básicas en el aprendizaje automático (machine learning): cómo se representan los datos, cómo se mide la similitud y cómo se producen las predicciones a partir de muestras existentes.&lt;/p&gt;
&lt;p&gt;Una vez que entiendes &amp;ldquo;encuentra muestras similares y luego juzga basándote en los vecinos&amp;rdquo;, has captado el núcleo de KNN.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;enlaces-relacionados&#34;&gt;Enlaces relacionados
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://zh.wikipedia.org/wiki/K-%E8%BF%91%E9%82%BB%E7%AE%97%E6%B3%95&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;K-Nearest Neighbors - Wikipedia&lt;/a&gt;
false&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>OpenAI lanza GPT-5.5: codificaci贸n ag茅ntica, trabajo de conocimiento e investigaci贸n m谩s fuertes</title>
        <link>https://knightli.com/es/2026/04/24/openai-gpt-5-5-release/</link>
        <pubDate>Fri, 24 Apr 2026 08:39:56 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/24/openai-gpt-5-5-release/</guid>
        <description>&lt;p&gt;OpenAI publicó &lt;a class=&#34;link&#34; href=&#34;https://openai.com/index/introducing-gpt-5-5/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Introducing GPT-5.5&lt;/a&gt; el 23 de abril de 2026. A juzgar por la página oficial, este lanzamiento no se trata solo de hacer que el modelo sea &amp;ldquo;más inteligente&amp;rdquo;; se trata más de si el modelo puede seguir ejecutando tareas complejas.&lt;/p&gt;
&lt;p&gt;OpenAI posiciona GPT-5.5 como un modelo más adecuado para el trabajo real. Se espera que no solo responda preguntas, sino que también escriba código, depure, investigue en línea, analice datos, cree documentos y hojas de cálculo, opere software y se mueva entre herramientas hasta que la tarea esté terminada.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;1-dónde-es-más-fuerte-gpt-55&#34;&gt;1. Dónde es más fuerte GPT-5.5
&lt;/h2&gt;&lt;p&gt;La página de lanzamiento destaca repetidamente cuatro áreas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Codificación agentica&lt;/li&gt;
&lt;li&gt;Uso de la computadora y uso de herramientas&lt;/li&gt;
&lt;li&gt;Trabajo de conocimiento&lt;/li&gt;
&lt;li&gt;Asistencia en investigación científica temprana&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En otras palabras, GPT-5.5 está dirigido menos a preguntas y respuestas cortas y más a tareas de larga duración. Por ejemplo, un problema de ingeniería no es solo &amp;ldquo;¿cómo debe cambiarse este código?&amp;rdquo;; el modelo necesita entender la estructura del proyecto, localizar la causa de la falla, editar archivos relacionados, añadir pruebas, verificar resultados y reducir la solicitud de prompting repetida por parte del usuario.&lt;/p&gt;
&lt;p&gt;OpenAI también enfatiza que GPT-5.5 utiliza menos tokens en tareas de Codex. Esto es importante en la práctica porque los agentes de codificación pueden consumir tokens rápidamente una vez que comienzan a leer archivos, ejecutar comandos y arreglar bugs. Si un modelo puede completar la misma tarea en menos pasos, tanto el costo como el tiempo de espera disminuyen.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;2-la-codificación-es-el-principal-escaparate&#34;&gt;2. La codificación es el principal escaparate
&lt;/h2&gt;&lt;p&gt;OpenAI llama a GPT-5.5 su modelo de codificación agentico más potente hasta la fecha.&lt;/p&gt;
&lt;p&gt;Los números públicos más destacados incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Terminal-Bench 2.0&lt;/code&gt;: GPT-5.5 alcanza el &lt;code&gt;82.7%&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SWE-Bench Pro&lt;/code&gt;: GPT-5.5 alcanza el &lt;code&gt;58.6%&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Expert-SWE&lt;/code&gt; interno de OpenAI: GPT-5.5 también obtiene una puntuación más alta que GPT-5.4&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas evaluaciones tienen algo en común: están más cerca de flujos de trabajo de ingeniería reales que de preguntas de algoritmo aisladas. Terminal-Bench, en particular, implica operaciones de línea de comandos, planificación, prueba y error, coordinación de herramientas y verificación de múltiples pasos.&lt;/p&gt;
&lt;p&gt;Para los desarrolladores cotidianos, la implicación es directa: si un modelo puede asumir tareas más grandes depende de si puede mantener el contexto durante mucho tiempo, verificar sus propias suposiciones, saber cuándo ejecutar pruebas y entender qué más puede afectar un cambio.&lt;/p&gt;
&lt;p&gt;El valor de GPT-5.5 en Codex también se manifiesta principalmente en estos comportamientos. Se siente más como un colaborador que puede asumir parte de una tarea de ingeniería, en lugar de una herramienta que solo completa fragmentos de código.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;3-el-trabajo-del-conocimiento-se-convierte-en-un-escenario-central&#34;&gt;3. El Trabajo del Conocimiento se Convierte en un Escenario Central
&lt;/h2&gt;&lt;p&gt;Más allá de la codificación, OpenAI está integrando GPT-5.5 en un contexto de trabajo de oficina más amplio.&lt;/p&gt;
&lt;p&gt;El anuncio dice que GPT-5.5 puede generar documentos, hojas de cálculo (spreadsheets) y presentaciones (slide decks) mejor en Codex, y también es más adecuado para la investigación operativa, el modelado de hojas de cálculo y la organización de materiales de negocio. Combinado con el uso de la computadora, su objetivo no es simplemente ofrecer sugerencias, sino participar en el flujo de trabajo completo de encontrar información, comprender el contenido, usar herramientas, revisar la salida y convertir materia prima en un resultado.&lt;/p&gt;
&lt;p&gt;La página también señala que OpenAI ya utiliza Codex en muchos departamentos internos, incluyendo ingeniería de software, finanzas, comunicaciones, marketing, data science y product management. Lo interesante no es ningún ejemplo en particular, sino la dirección: OpenAI está expandiendo Codex de una herramienta para desarrolladores a una herramienta de trabajo más general.&lt;/p&gt;
&lt;p&gt;En ChatGPT, GPT-5.5 Thinking está disponible para usuarios Plus, Pro, Business y Enterprise; GPT-5.5 Pro está dirigido a preguntas más difíciles y trabajo de mayor precisión, y está disponible para usuarios Pro, Business y Enterprise.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;4-la-capacidad-de-investigación-es-más-que-respuestas-mejores&#34;&gt;4. La Capacidad de Investigación es Más que Respuestas Mejores
&lt;/h2&gt;&lt;p&gt;GPT-5.5 también recibe una fuerte presentación enfocada en la investigación.&lt;/p&gt;
&lt;p&gt;OpenAI afirma que ha mejorado en genética, biología cuantitativa, bioinformática, prueba matemática y áreas relacionadas. La clave no es si el modelo puede recordar un hecho, sino si puede manejar problemas de investigación más realistas: leer datos, detectar anomalías, proponer análisis, interpretar resultados y continuar basándose en hallazgos intermedios.&lt;/p&gt;
&lt;p&gt;La página de lanzamiento menciona &lt;code&gt;GeneBench&lt;/code&gt; y &lt;code&gt;BixBench&lt;/code&gt;, ambos centrados más en el análisis científico multifase. OpenAI también dice que una versión interna de GPT-5.5, con un &lt;em&gt;harness&lt;/em&gt; personalizado, ayudó a descubrir una nueva prueba relacionada con los números de Ramsey y la verificó con Lean.&lt;/p&gt;
&lt;p&gt;Estos ejemplos no deben simplificarse a &amp;ldquo;la IA ahora puede hacer investigación de forma independiente&amp;rdquo;. Pero sí sugieren que los modelos están pasando de ser motores de respuesta a ser colaboradores en la investigación. En escenarios donde se mezclan código, datos, artículos, ideas de experimentos y notas, el razonamiento de horizonte largo y el uso de herramientas de GPT-5.5 se vuelven especialmente importantes.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;5-eficiencia-de-inferencia-más-potente-sin-volverse-mucho-más-lento&#34;&gt;5. Eficiencia de Inferencia: Más Potente Sin Volverse Mucho Más Lento
&lt;/h2&gt;&lt;p&gt;Un punto fácilmente pasado por alto es que OpenAI afirma que GPT-5.5 iguala a GPT-5.4 en la latencia por token en el mundo real.&lt;/p&gt;
&lt;p&gt;Normalmente, los modelos más grandes y más capaces tienen una latencia más alta. Esta vez, OpenAI enfatiza que la optimización del sistema de inferencia ayudó a GPT-5.5 a volverse más capaz mientras mantenía la velocidad estable. La página de lanzamiento también menciona que Codex analizó patrones de tráfico de producción y escribió algoritmos heurísticos de balanceo de carga, aumentando la velocidad de generación de tokens en más de &lt;code&gt;20%&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Ese detalle es interesante: el modelo no solo es atendido por la infraestructura, sino que también ayuda a mejorar la infraestructura que lo sirve.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;6-la-seguridad-se-vuelve-más-estricta-especialmente-en-ciberseguridad&#34;&gt;6. La seguridad se vuelve más estricta, especialmente en ciberseguridad
&lt;/h2&gt;&lt;p&gt;Dado que GPT-5.5 tiene capacidades de ciberseguridad más sólidas, OpenAI también está reforzando los controles de seguridad.&lt;/p&gt;
&lt;p&gt;El anuncio indica que GPT-5.5 mejora respecto a GPT-5.4 en capacidad de ciberseguridad, por lo que OpenAI está implementando clasificadores más estrictos, especialmente para actividades de alto riesgo, solicitudes sensibles de ciberseguridad y uso indebido repetido.&lt;/p&gt;
&lt;p&gt;Esto significa que algunos usuarios pueden experimentar más rechazos o fricción al trabajar en tareas relacionadas con la ciberseguridad. OpenAI también ofrece Trusted Access for Cyber, diseñado para reducir barreras innecesarias para usuarios defensivos verificados.&lt;/p&gt;
&lt;p&gt;Para los desarrolladores comunes, la conclusión simple es: el refuerzo legítimo de la seguridad (security hardening), la corrección de vulnerabilidades y la auditoría de código deben seguir siendo compatibles, mientras que los flujos de trabajo de ataque de alto riesgo estarán más controlados.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;7-disponibilidad-y-precios-de-la-api&#34;&gt;7. Disponibilidad y Precios de la API
&lt;/h2&gt;&lt;p&gt;Según la página de lanzamiento de OpenAI, la disponibilidad de GPT-5.5 es la siguiente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ChatGPT: GPT-5.5 Thinking para usuarios Plus, Pro, Business y Enterprise&lt;/li&gt;
&lt;li&gt;ChatGPT: GPT-5.5 Pro para usuarios Pro, Business y Enterprise&lt;/li&gt;
&lt;li&gt;Codex: GPT-5.5 para planes Plus, Pro, Business, Enterprise, Edu y Go&lt;/li&gt;
&lt;li&gt;Codex: ventana de contexto de &lt;code&gt;400K&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Codex Modo Fast: velocidad de generación de tokens de aproximadamente &lt;code&gt;1.5x&lt;/code&gt; a un coste de &lt;code&gt;2.5x&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para la API, OpenAI dice que &lt;code&gt;gpt-5.5&lt;/code&gt; y &lt;code&gt;gpt-5.5-pro&lt;/code&gt; estarán disponibles pronto.&lt;/p&gt;
&lt;p&gt;Los precios de la API anunciados son:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;gpt-5.5&lt;/code&gt;: &lt;code&gt;US$5 / 1M tokens&lt;/code&gt; de entrada y &lt;code&gt;US$30 / 1M tokens&lt;/code&gt; de salida&lt;/li&gt;
&lt;li&gt;&lt;code&gt;gpt-5.5-pro&lt;/code&gt;: &lt;code&gt;US$30 / 1M tokens&lt;/code&gt; de entrada y &lt;code&gt;US$180 / 1M tokens&lt;/code&gt; de salida&lt;/li&gt;
&lt;li&gt;Ventana de contexto API de &lt;code&gt;gpt-5.5&lt;/code&gt;: &lt;code&gt;1M&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Batch y Flex tienen la mitad del precio estándar de la API&lt;/li&gt;
&lt;li&gt;El procesamiento prioritario es &lt;code&gt;2.5x&lt;/code&gt; el precio estándar&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto es claramente más caro que muchos modelos cotidianos, por lo que es más adecuado para tareas de alto valor: cambios de ingeniería complejos, análisis de documentos largos, automatización de oficinas, asistencia de investigación y flujos de trabajo empresariales importantes, en lugar de conversaciones casuales.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;8-cómo-leer-este-lanzamiento&#34;&gt;8. Cómo leer este lanzamiento
&lt;/h2&gt;&lt;p&gt;En una frase, GPT-5.5 trata sobre cómo OpenAI impulsa los modelos más allá de &amp;ldquo;responder preguntas&amp;rdquo; hacia &amp;ldquo;realizar trabajo&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;La parte más importante no son solo las puntuaciones de referencia (benchmark scores) más altas, sino la convergencia de varias capacidades:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mejor persistencia en tareas largas&lt;/li&gt;
&lt;li&gt;Uso de herramientas más confiable&lt;/li&gt;
&lt;li&gt;Comprensión de contexto de ingeniería más sólida&lt;/li&gt;
&lt;li&gt;Mejor adaptación a documentos, hojas de cálculo, investigación y flujos de trabajo empresariales&lt;/li&gt;
&lt;li&gt;Contexto más largo y mayor eficiencia de tokens&lt;/li&gt;
&lt;li&gt;Controles más estrictos en capacidades de alto riesgo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para los desarrolladores, lo más interesante de probar es trabajo de ingeniería complejo en Codex. Para los usuarios empresariales (enterprise users), la pregunta más grande es si puede convertir trabajo inter-herramental, inter-documental e inter-proceso en resultados entregables.&lt;/p&gt;
&lt;p&gt;GPT-5.5 no es una pequeña actualización dirigida solo a la experiencia de chat. Parece más bien otro paso en el avance de OpenAI hacia la IA como una capa de ejecución para el trabajo.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;enlaces-relacionados&#34;&gt;Enlaces Relacionados
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://openai.com/index/introducing-gpt-5-5/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Presentando GPT-5.5 - OpenAI&lt;/a&gt;
false&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Cómo Elegir Modelos de Embedding Comunes: OpenAI vs BGE vs E5 vs GTE vs Jina</title>
        <link>https://knightli.com/es/2026/04/23/compare-openai-bge-e5-gte-jina-embedding-models/</link>
        <pubDate>Thu, 23 Apr 2026 15:23:47 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/23/compare-openai-bge-e5-gte-jina-embedding-models/</guid>
        <description>&lt;p&gt;Cuando las personas comienzan a construir sistemas RAG, búsqueda semántica o recuperación de bases de conocimiento, a menudo se quedan atascadas en la misma pregunta: hay tantos modelos de embedding, ¿así que cuál debe elegir?&lt;/p&gt;
&lt;p&gt;Las opciones comunes se pueden dividir aproximadamente en dos grupos. Un grupo son los embeddings de texto de propósito general que cubren tareas en chino, inglés y multilingües. El otro grupo está mejor adaptado a escenarios en chino, especialmente la recuperación en chino, el QA en chino y las bases de conocimiento en chino.&lt;/p&gt;
&lt;p&gt;Si quieres la versión corta primero, esta es una forma práctica de verlo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si quieres el camino más fácil y prefieres usar una API directamente: &lt;code&gt;text-embedding-3-small&lt;/code&gt; o &lt;code&gt;text-embedding-3-large&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Si quieres recuperación en chino y prefieres modelos de código abierto que puedes autoalojar: &lt;code&gt;bge-base-zh-v1.5&lt;/code&gt;, &lt;code&gt;bge-m3&lt;/code&gt;, &lt;code&gt;gte-large-zh&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Si necesitas soporte multilingüe: &lt;code&gt;multilingual-e5-base&lt;/code&gt;, &lt;code&gt;multilingual-e5-large&lt;/code&gt;, &lt;code&gt;jina-embeddings-v3&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Si quieres mantener bajos los costos en escenarios chinos: &lt;code&gt;bge-small-zh-v1.5&lt;/code&gt;, &lt;code&gt;gte-base-zh&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;1-primero-míralos-por-categoría&#34;&gt;1. Primero, Míralos por Categoría
&lt;/h2&gt;&lt;h3 id=&#34;1-serie-openai&#34;&gt;1. Serie OpenAI
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;text-embedding-3-small&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;text-embedding-3-large&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Las principales fortalezas de estos modelos son la simplicidad y la estabilidad. Son adecuados si quieres llamar a una API directamente para recuperación, RAG, clasificación y coincidencia de similitud. Su ventaja no es que dominen una tabla de clasificación china específica, sino que la experiencia general es completa: bajo costo de integración, calidad estable y baja sobrecarga de ingeniería.&lt;/p&gt;
&lt;p&gt;Si tu equipo no quiere alojar modelos ni mantener servicios de inferencia, OpenAI suele ser la opción que ahorra más tiempo.&lt;/p&gt;
&lt;h3 id=&#34;2-serie-bge&#34;&gt;2. Serie BGE
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;BAAI/bge-small-zh-v1.5&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;BAAI/bge-base-zh-v1.5&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bge-m3&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;BGE es una de las familias más comunes utilizadas en recuperación china. &lt;code&gt;bge-small-zh-v1.5&lt;/code&gt; y &lt;code&gt;bge-base-zh-v1.5&lt;/code&gt; se inclinan más hacia tareas monolingües en chino, lo que los hace adecuados para la búsqueda semántica en chino, la recuperación de bases de conocimiento y la coincidencia de preguntas frecuentes (FAQ). &lt;code&gt;bge-m3&lt;/code&gt; es más de propósito general y puede cubrir escenarios de recuperación multilingües, de multi-granularidad y más complejos.&lt;/p&gt;
&lt;p&gt;Si la mayor parte de tus datos es texto en chino, BGE es a menudo una de las familias más fáciles de incluir en la lista corta.&lt;/p&gt;
&lt;h3 id=&#34;3-serie-e5&#34;&gt;3. Serie E5
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;intfloat/multilingual-e5-base&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;multilingual-e5-large&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La fortaleza de la familia E5 es una capacidad multilingüe más equilibrada. Funciona bien para datos mixtos chinos-inglés, recuperación translingüística y bibliotecas de contenido internacionalizado. No se enfoca solo en chino.&lt;/p&gt;
&lt;h3 id=&#34;4-serie-e5&#34;&gt;4. Serie E5
&lt;/h3&gt;&lt;h3 id=&#34;5-serie-e5&#34;&gt;5. Serie E5
&lt;/h3&gt;&lt;h2 id=&#34;6-serie-e5&#34;&gt;6. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;7-serie-e5&#34;&gt;7. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;8-serie-e5&#34;&gt;8. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;9-serie-e5&#34;&gt;9. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;10-serie-e5&#34;&gt;10. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;11-serie-e5&#34;&gt;11. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;12-serie-e5&#34;&gt;12. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;13-serie-e5&#34;&gt;13. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;14-serie-e5&#34;&gt;14. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;15-serie-e5&#34;&gt;15. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;16-serie-e5&#34;&gt;16. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;17-serie-e5&#34;&gt;17. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;18-serie-e5&#34;&gt;18. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;19-serie-e5&#34;&gt;19. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;20-serie-e5&#34;&gt;20. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;21-serie-e5&#34;&gt;21. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;22-serie-e5&#34;&gt;22. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;23-serie-e5&#34;&gt;23. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;24-serie-e5&#34;&gt;24. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;25-serie-e5&#34;&gt;25. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;26-serie-e5&#34;&gt;26. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;27-serie-e5&#34;&gt;27. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;28-serie-e5&#34;&gt;28. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;29-serie-e5&#34;&gt;29. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;30-serie-e5&#34;&gt;30. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;31-serie-e5&#34;&gt;31. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;32-serie-e5&#34;&gt;32. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;33-serie-e5&#34;&gt;33. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;34-serie-e5&#34;&gt;34. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;35-serie-e5&#34;&gt;35. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;36-serie-e5&#34;&gt;36. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;37-serie-e5&#34;&gt;37. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;38-serie-e5&#34;&gt;38. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;39-serie-e5&#34;&gt;39. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;40-serie-e5&#34;&gt;40. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;41-serie-e5&#34;&gt;41. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;42-serie-e5&#34;&gt;42. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;43-serie-e5&#34;&gt;43. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;44-serie-e5&#34;&gt;44. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;45-serie-e5&#34;&gt;45. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;46-serie-e5&#34;&gt;46. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;47-serie-e5&#34;&gt;47. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;48-serie-e5&#34;&gt;48. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;49-serie-e5&#34;&gt;49. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;50-serie-e5&#34;&gt;50. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;51-serie-e5&#34;&gt;51. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;52-serie-e5&#34;&gt;52. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;53-serie-e5&#34;&gt;53. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;54-serie-e5&#34;&gt;54. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;55-serie-e5&#34;&gt;55. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;56-serie-e5&#34;&gt;56. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;57-serie-e5&#34;&gt;57. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;58-serie-e5&#34;&gt;58. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;59-serie-e5&#34;&gt;59. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;60-serie-e5&#34;&gt;60. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;61-serie-e5&#34;&gt;61. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;62-serie-e5&#34;&gt;62. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;63-serie-e5&#34;&gt;63. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;64-serie-e5&#34;&gt;64. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;65-serie-e5&#34;&gt;65. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;66-serie-e5&#34;&gt;66. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;67-serie-e5&#34;&gt;67. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;68-serie-e5&#34;&gt;68. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;69-serie-e5&#34;&gt;69. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;70-serie-e5&#34;&gt;70. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;71-serie-e5&#34;&gt;71. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;72-serie-e5&#34;&gt;72. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;73-serie-e5&#34;&gt;73. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;74-serie-e5&#34;&gt;74. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;75-serie-e5&#34;&gt;75. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;76-serie-e5&#34;&gt;76. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;77-serie-e5&#34;&gt;77. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;78-serie-e5&#34;&gt;78. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;79-serie-e5&#34;&gt;79. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;80-serie-e5&#34;&gt;80. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;81-serie-e5&#34;&gt;81. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;82-serie-e5&#34;&gt;82. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;83-serie-e5&#34;&gt;83. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;84-serie-e5&#34;&gt;84. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;85-serie-e5&#34;&gt;85. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;86-serie-e5&#34;&gt;86. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;87-serie-e5&#34;&gt;87. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;88-serie-e5&#34;&gt;88. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;89-serie-e5&#34;&gt;89. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;90-serie-e5&#34;&gt;90. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;91-serie-e5&#34;&gt;91. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;92-serie-e5&#34;&gt;92. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;93-serie-e5&#34;&gt;93. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;94-serie-e5&#34;&gt;94. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;95-serie-e5&#34;&gt;95. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;96-serie-e5&#34;&gt;96. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;97-serie-e5&#34;&gt;97. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;98-serie-e5&#34;&gt;98. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;99-serie-e5&#34;&gt;99. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;100-serie-e5&#34;&gt;100. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;101-serie-e5&#34;&gt;101. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;102-serie-e5&#34;&gt;102. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;103-serie-e5&#34;&gt;103. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;104-serie-e5&#34;&gt;104. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;105-serie-e5&#34;&gt;105. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;106-serie-e5&#34;&gt;106. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;107-serie-e5&#34;&gt;107. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;108-serie-e5&#34;&gt;108. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;109-serie-e5&#34;&gt;109. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;110-serie-e5&#34;&gt;110. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;111-serie-e5&#34;&gt;111. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;112-serie-e5&#34;&gt;112. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;113-serie-e5&#34;&gt;113. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;114-serie-e5&#34;&gt;114. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;115-serie-e5&#34;&gt;115. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;116-serie-e5&#34;&gt;116. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;117-serie-e5&#34;&gt;117. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;118-serie-e5&#34;&gt;118. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;119-serie-e5&#34;&gt;119. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;120-serie-e5&#34;&gt;120. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;121-serie-e5&#34;&gt;121. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;122-serie-e5&#34;&gt;122. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;123-serie-e5&#34;&gt;123. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;124-serie-e5&#34;&gt;124. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;125-serie-e5&#34;&gt;125. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;126-serie-e5&#34;&gt;126. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;127-serie-e5&#34;&gt;127. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;128-serie-e5&#34;&gt;128. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;129-serie-e5&#34;&gt;129. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;130-serie-e5&#34;&gt;130. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;131-serie-e5&#34;&gt;131. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;132-serie-e5&#34;&gt;132. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;133-serie-e5&#34;&gt;133. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;134-serie-e5&#34;&gt;134. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;135-serie-e5&#34;&gt;135. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;136-serie-e5&#34;&gt;136. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;137-serie-e5&#34;&gt;137. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;138-serie-e5&#34;&gt;138. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;139-serie-e5&#34;&gt;139. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;140-serie-e5&#34;&gt;140. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;141-serie-e5&#34;&gt;141. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;142-serie-e5&#34;&gt;142. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;143-serie-e5&#34;&gt;143. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;144-serie-e5&#34;&gt;144. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;145-serie-e5&#34;&gt;145. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;146-serie-e5&#34;&gt;146. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;147-serie-e5&#34;&gt;147. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;148-serie-e5&#34;&gt;148. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;149-serie-e5&#34;&gt;149. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;150-serie-e5&#34;&gt;150. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;151-serie-e5&#34;&gt;151. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;152-serie-e5&#34;&gt;152. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;153-serie-e5&#34;&gt;153. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;154-serie-e5&#34;&gt;154. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;155-serie-e5&#34;&gt;155. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;156-serie-e5&#34;&gt;156. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;157-serie-e5&#34;&gt;157. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;158-serie-e5&#34;&gt;158. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;159-serie-e5&#34;&gt;159. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;160-serie-e5&#34;&gt;160. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;161-serie-e5&#34;&gt;161. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;162-serie-e5&#34;&gt;162. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;163-serie-e5&#34;&gt;163. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;164-serie-e5&#34;&gt;164. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;165-serie-e5&#34;&gt;165. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;166-serie-e5&#34;&gt;166. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;167-serie-e5&#34;&gt;167. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;168-serie-e5&#34;&gt;168. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;169-serie-e5&#34;&gt;169. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;170-serie-e5&#34;&gt;170. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;171-serie-e5&#34;&gt;171. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;172-serie-e5&#34;&gt;172. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;173-serie-e5&#34;&gt;173. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;174-serie-e5&#34;&gt;174. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;175-serie-e5&#34;&gt;175. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;176-serie-e5&#34;&gt;176. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;177-serie-e5&#34;&gt;177. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;178-serie-e5&#34;&gt;178. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;179-serie-e5&#34;&gt;179. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;180-serie-e5&#34;&gt;180. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;181-serie-e5&#34;&gt;181. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;182-serie-e5&#34;&gt;182. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;183-serie-e5&#34;&gt;183. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;184-serie-e5&#34;&gt;184. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;185-serie-e5&#34;&gt;185. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;186-serie-e5&#34;&gt;186. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;187-serie-e5&#34;&gt;187. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;188-serie-e5&#34;&gt;188. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;189-serie-e5&#34;&gt;189. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;190-serie-e5&#34;&gt;190. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;191-serie-e5&#34;&gt;191. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;192-serie-e5&#34;&gt;192. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;193-serie-e5&#34;&gt;193. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;194-serie-e5&#34;&gt;194. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;195-serie-e5&#34;&gt;195. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;196-serie-e5&#34;&gt;196. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;197-serie-e5&#34;&gt;197. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;198-serie-e5&#34;&gt;198. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;199-serie-e5&#34;&gt;199. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;200-serie-e5&#34;&gt;200. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;201-serie-e5&#34;&gt;201. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;202-serie-e5&#34;&gt;202. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;203-serie-e5&#34;&gt;203. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;204-serie-e5&#34;&gt;204. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;205-serie-e5&#34;&gt;205. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;206-serie-e5&#34;&gt;206. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;207-serie-e5&#34;&gt;207. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;208-serie-e5&#34;&gt;208. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;209-serie-e5&#34;&gt;209. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;210-serie-e5&#34;&gt;210. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;211-serie-e5&#34;&gt;211. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;212-serie-e5&#34;&gt;212. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;213-serie-e5&#34;&gt;213. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;214-serie-e5&#34;&gt;214. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;215-serie-e5&#34;&gt;215. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;216-serie-e5&#34;&gt;216. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;217-serie-e5&#34;&gt;217. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;218-serie-e5&#34;&gt;218. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;219-serie-e5&#34;&gt;219. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;220-serie-e5&#34;&gt;220. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;221-serie-e5&#34;&gt;221. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;222-serie-e5&#34;&gt;222. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;223-serie-e5&#34;&gt;223. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;224-serie-e5&#34;&gt;224. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;225-serie-e5&#34;&gt;225. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;226-serie-e5&#34;&gt;226. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;227-serie-e5&#34;&gt;227. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;228-serie-e5&#34;&gt;228. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;229-serie-e5&#34;&gt;229. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;230-serie-e5&#34;&gt;230. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;231-serie-e5&#34;&gt;231. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;232-serie-e5&#34;&gt;232. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;233-serie-e5&#34;&gt;233. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;234-serie-e5&#34;&gt;234. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;235-serie-e5&#34;&gt;235. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;236-serie-e5&#34;&gt;236. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;237-serie-e5&#34;&gt;237. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;238-serie-e5&#34;&gt;238. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;239-serie-e5&#34;&gt;239. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;240-serie-e5&#34;&gt;240. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;241-serie-e5&#34;&gt;241. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;242-serie-e5&#34;&gt;242. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;243-serie-e5&#34;&gt;243. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;244-serie-e5&#34;&gt;244. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;245-serie-e5&#34;&gt;245. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;246-serie-e5&#34;&gt;246. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;247-serie-e5&#34;&gt;247. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;248-serie-e5&#34;&gt;248. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;249-serie-e5&#34;&gt;249. Serie E5
&lt;/h2&gt;&lt;h2 id=&#34;250-serie-e5&#34;&gt;250. Serie E5
&lt;/h2&gt;</description>
        </item>
        <item>
        <title>Qué es la vectorización de imágenes: de píxeles a representaciones vectoriales buscables y analizables</title>
        <link>https://knightli.com/es/2026/04/23/what-is-image-vectorization-vector-search-vision-workflow/</link>
        <pubDate>Thu, 23 Apr 2026 15:08:19 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/23/what-is-image-vectorization-vector-search-vision-workflow/</guid>
        <description>&lt;p&gt;Ya hay una cantidad enorme de imágenes por todas partes, pero las imágenes no se convierten automáticamente en algo que un sistema pueda entender o usar bien.&lt;/p&gt;
&lt;p&gt;Para las personas es fácil mirar una imagen y saber si contiene un gato, si muestra el mismo producto o si revela cierto defecto. Para un sistema, una imagen cruda empieza como una cuadrícula de píxeles. Sin procesamiento adicional, se parece más a una pila de puntos de colores que a un dato que pueda buscarse, agruparse, recomendarse o reconocerse directamente.&lt;/p&gt;
&lt;p&gt;La vectorización de imágenes resuelve ese paso. Convierte imágenes desde archivos basados en píxeles a representaciones vectoriales que las máquinas pueden comparar y calcular eficientemente. Muchas capacidades como búsqueda imagen-a-imagen, recomendación de imágenes similares, recuperación visual, clustering y comprensión multimodal dependen de esta capa.&lt;/p&gt;
&lt;h2 id=&#34;1-qué-significa-realmente-vectorizar-una-imagen&#34;&gt;1. Qué significa realmente vectorizar una imagen
&lt;/h2&gt;&lt;p&gt;La forma más corta de decirlo:&lt;/p&gt;
&lt;p&gt;la vectorización convierte una imagen en un vector numérico que captura sus características visuales.&lt;/p&gt;
&lt;p&gt;Ese vector no está pensado para ser leído por humanos. Está pensado para modelos y sistemas de recuperación. Su valor es que una imagen deja de ser solo un archivo y se vuelve un objeto que puede participar en comparación de similitud, ranking y cómputo.&lt;/p&gt;
&lt;p&gt;Toma una foto de un gato. En bruto, el archivo guarda píxeles. Tras vectorizar, el sistema obtiene un vector numérico de longitud fija. El vector no dice literalmente &amp;ldquo;esto es un gato&amp;rdquo;, pero codifica forma, textura, distribución de color, estructura local y semántica de nivel superior. Eso permite calcular distancias con otras imágenes y decidir cuáles son más similares.&lt;/p&gt;
&lt;p&gt;La vectorización no cambia principalmente la imagen. Cambia cómo el sistema puede procesarla.&lt;/p&gt;
&lt;h2 id=&#34;2-por-qué-los-píxeles-crudos-no-bastan-para-búsqueda-y-análisis&#34;&gt;2. Por qué los píxeles crudos no bastan para búsqueda y análisis
&lt;/h2&gt;&lt;p&gt;Los píxeles crudos pueden compararse, pero con eficacia y eficiencia limitadas.&lt;/p&gt;
&lt;p&gt;Problemas principales:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;la dimensionalidad es alta, así que comparar directamente es caro&lt;/li&gt;
&lt;li&gt;similitud de píxeles no equivale a similitud semántica&lt;/li&gt;
&lt;li&gt;iluminación, recorte, fondo y resolución pueden distorsionar el resultado&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ejemplo típico: recuperación de imágenes de producto. Dos fotos pueden representar claramente el mismo artículo para una persona aunque cambien ángulo, fondo o tamaño. Si el sistema compara solo píxeles, puede juzgarlas como imágenes totalmente distintas.&lt;/p&gt;
&lt;p&gt;El propósito de la vectorización es mover la definición de similitud desde píxeles crudos hacia similitud semántica y estructural.&lt;/p&gt;
&lt;h2 id=&#34;3-cómo-suele-hacerse&#34;&gt;3. Cómo suele hacerse
&lt;/h2&gt;&lt;p&gt;En la práctica, rara vez es un solo paso. Suele ser una pipeline:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;preprocesar la imagen&lt;/li&gt;
&lt;li&gt;extraer características&lt;/li&gt;
&lt;li&gt;comprimirlas en un vector de longitud fija&lt;/li&gt;
&lt;li&gt;guardar el vector en una base vectorial o sistema de recuperación&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Cada etapa afecta la calidad final.&lt;/p&gt;
&lt;h3 id=&#34;1-preprocesamiento&#34;&gt;1. Preprocesamiento
&lt;/h3&gt;&lt;p&gt;Incluye cosas como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;redimensionar la imagen&lt;/li&gt;
&lt;li&gt;normalizar la entrada&lt;/li&gt;
&lt;li&gt;retirar parte del ruido&lt;/li&gt;
&lt;li&gt;unificar formato de color o estructura de entrada&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No busca embellecer visualmente. Busca estabilizar la entrada del modelo.&lt;/p&gt;
&lt;h3 id=&#34;2-extracción-de-características&#34;&gt;2. Extracción de características
&lt;/h3&gt;&lt;p&gt;Es el núcleo de la vectorización.&lt;/p&gt;
&lt;p&gt;Enfoques anteriores dependían más de características diseñadas a mano como &lt;code&gt;SIFT&lt;/code&gt;, &lt;code&gt;SURF&lt;/code&gt; y &lt;code&gt;HOG&lt;/code&gt;, buenas para bordes, esquinas y estructuras locales. Hoy se usan mucho más modelos deep learning:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ResNet&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;VGG&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Inception&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ViT&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CLIP&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estos modelos codifican imágenes en características visuales más abstractas y de mayor nivel. Frente a feature engineering tradicional, expresan mejor la semántica y sirven más para búsqueda de similitud, comprensión multimodal y clustering a gran escala.&lt;/p&gt;
&lt;h3 id=&#34;3-generación-del-vector&#34;&gt;3. Generación del vector
&lt;/h3&gt;&lt;p&gt;Tras extraer características, el sistema suele comprimir la representación interna en un vector de longitud fija, por ejemplo &lt;code&gt;512&lt;/code&gt;, &lt;code&gt;768&lt;/code&gt; o &lt;code&gt;1024&lt;/code&gt; dimensiones.&lt;/p&gt;
&lt;p&gt;Más dimensiones no siempre es mejor. El problema real es equilibrar poder representacional, coste de almacenamiento y velocidad de recuperación.&lt;/p&gt;
&lt;h3 id=&#34;4-almacenamiento-y-recuperación&#34;&gt;4. Almacenamiento y recuperación
&lt;/h3&gt;&lt;p&gt;Una vez generado, el vector ya no se gestiona como un archivo de imagen normal. Entra en un sistema con recuperación vectorial, como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Faiss&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Milvus&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;sistemas de búsqueda con capacidades vectoriales&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Entonces la imagen puede participar en nearest-neighbor search aproximado, clustering y ranking por similitud.&lt;/p&gt;
&lt;h2 id=&#34;4-cómo-evolucionó-la-ruta-técnica&#34;&gt;4. Cómo evolucionó la ruta técnica
&lt;/h2&gt;&lt;p&gt;La vectorización de imágenes no es nueva. Lo que cambió en años recientes es calidad y amplitud de aplicaciones.&lt;/p&gt;
&lt;p&gt;Tres etapas:&lt;/p&gt;
&lt;h3 id=&#34;1-feature-engineering-tradicional&#34;&gt;1. Feature engineering tradicional
&lt;/h3&gt;&lt;p&gt;El foco estaba en características definidas manualmente: bordes, texturas, esquinas y descriptores locales. Era maduro e interpretable, pero con comprensión semántica limitada en escenas complejas.&lt;/p&gt;
&lt;h3 id=&#34;2-etapa-impulsada-por-cnn&#34;&gt;2. Etapa impulsada por CNN
&lt;/h3&gt;&lt;p&gt;Las redes convolucionales permitieron aprender características automáticamente. Frente a features manuales, capturaban representaciones visuales más ricas y estables para clasificación, reconocimiento y búsqueda de similitud.&lt;/p&gt;
&lt;h3 id=&#34;3-etapa-transformer-y-multimodal&#34;&gt;3. Etapa Transformer y multimodal
&lt;/h3&gt;&lt;p&gt;Esta etapa empujó la vectorización más allá de features visuales hacia alineación semántica imagen-texto. Modelos como &lt;code&gt;ViT&lt;/code&gt; y &lt;code&gt;CLIP&lt;/code&gt; no solo reconocen imágenes. Permiten que imágenes entren en sistemas multimodales mayores y trabajen con texto, etiquetas y bases de conocimiento.&lt;/p&gt;
&lt;p&gt;Por eso muchos sistemas actuales ya no se limitan a búsqueda imagen-a-imagen. También soportan text-to-image o recuperación mixta imagen-texto.&lt;/p&gt;
&lt;h2 id=&#34;5-escenarios-de-aplicación-comunes&#34;&gt;5. Escenarios de aplicación comunes
&lt;/h2&gt;&lt;h3 id=&#34;1-recuperación-de-imágenes-similares&#34;&gt;1. Recuperación de imágenes similares
&lt;/h3&gt;&lt;p&gt;Es el caso más intuitivo.&lt;/p&gt;
&lt;p&gt;Con imágenes convertidas a vectores, los sistemas pueden hacer:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;búsqueda imagen-a-imagen&lt;/li&gt;
&lt;li&gt;detección de duplicados&lt;/li&gt;
&lt;li&gt;matching de productos similares&lt;/li&gt;
&lt;li&gt;deduplicación visual&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Común en e-commerce, plataformas de contenido y sistemas de assets multimedia.&lt;/p&gt;
&lt;h3 id=&#34;2-sistemas-de-recomendación&#34;&gt;2. Sistemas de recomendación
&lt;/h3&gt;&lt;p&gt;Muchas recomendaciones preguntan si una imagen se parece a lo que el usuario acaba de ver.&lt;/p&gt;
&lt;p&gt;Tras vectorizar, el contenido de la imagen puede entrar en la lógica de recomendación, no depender solo de etiquetas o categorías manuales. Es valioso para recomendación de productos, contenido y anuncios.&lt;/p&gt;
&lt;h3 id=&#34;3-clustering-y-clasificación-automática&#34;&gt;3. Clustering y clasificación automática
&lt;/h3&gt;&lt;p&gt;Cuando las colecciones crecen, organizar manualmente es lento.&lt;/p&gt;
&lt;p&gt;Con vectorización, las imágenes pueden agruparse por similitud para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;archivado&lt;/li&gt;
&lt;li&gt;agrupación de escenas&lt;/li&gt;
&lt;li&gt;organización de materiales&lt;/li&gt;
&lt;li&gt;sugerencias automáticas de tags&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Común en manufactura, salud, educación y gestión de contenido.&lt;/p&gt;
&lt;h3 id=&#34;4-detección-de-anomalías-e-inspección-de-calidad&#34;&gt;4. Detección de anomalías e inspección de calidad
&lt;/h3&gt;&lt;p&gt;Si las muestras normales ya tienen representación vectorial estable, las imágenes que se desvían de la distribución normal son más fáciles de detectar.&lt;/p&gt;
&lt;p&gt;Ejemplos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;detección de defectos industriales&lt;/li&gt;
&lt;li&gt;reconocimiento de anomalías en vigilancia&lt;/li&gt;
&lt;li&gt;screening anómalo de documentos o imágenes médicas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La vectorización no produce directamente el juicio final. Convierte la imagen en entrada más fácil de comparar y modelar.&lt;/p&gt;
&lt;h3 id=&#34;5-recuperación-multimodal-y-comprensión-imagen-texto&#34;&gt;5. Recuperación multimodal y comprensión imagen-texto
&lt;/h3&gt;&lt;p&gt;Es una de las áreas más importantes hoy.&lt;/p&gt;
&lt;p&gt;Cuando imágenes y texto se codifican en espacios vectoriales cercanos, los sistemas pueden soportar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;búsqueda text-to-image&lt;/li&gt;
&lt;li&gt;alineación imagen-texto&lt;/li&gt;
&lt;li&gt;recuperación de contenido visual&lt;/li&gt;
&lt;li&gt;recuperación multimodal de conocimiento&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas capacidades conectan naturalmente con sistemas generativos actuales, pipelines de visual question answering y workflows empresariales RAG.&lt;/p&gt;
&lt;h2 id=&#34;6-qué-deben-manejar-realmente-las-empresas&#34;&gt;6. Qué deben manejar realmente las empresas
&lt;/h2&gt;&lt;p&gt;En teoría suena fluido, pero la parte difícil suele estar en detalles:&lt;/p&gt;
&lt;h3 id=&#34;1-equilibrar-dimensión-vectorial-y-coste&#34;&gt;1. Equilibrar dimensión vectorial y coste
&lt;/h3&gt;&lt;p&gt;Si el vector es demasiado pequeño, representa peor. Si es demasiado grande, suben costes de almacenamiento y recuperación. No hay respuesta universal; depende del tamaño de datos, latencia y precisión objetivo.&lt;/p&gt;
&lt;h3 id=&#34;2-si-el-modelo-generaliza-entre-escenarios&#34;&gt;2. Si el modelo generaliza entre escenarios
&lt;/h3&gt;&lt;p&gt;Un modelo que funciona en datasets públicos quizá no funcione igual con tus imágenes. Fotos de producto, imágenes industriales, médicas y vigilancia difieren mucho.&lt;/p&gt;
&lt;h3 id=&#34;3-si-el-sistema-escala&#34;&gt;3. Si el sistema escala
&lt;/h3&gt;&lt;p&gt;Cuando las imágenes pasan de miles a millones, generar vectores es solo la primera mitad. Diseño de índices, estrategia de recall, actualizaciones y rendimiento online definen la experiencia.&lt;/p&gt;
&lt;h3 id=&#34;4-la-vectorización-no-es-el-loop-de-negocio-completo&#34;&gt;4. La vectorización no es el loop de negocio completo
&lt;/h3&gt;&lt;p&gt;Convierte imágenes en objetos computables, pero no es solución completa. Luego necesitas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;lógica de recuperación&lt;/li&gt;
&lt;li&gt;sistema de etiquetas&lt;/li&gt;
&lt;li&gt;criterios de evaluación&lt;/li&gt;
&lt;li&gt;revisión humana&lt;/li&gt;
&lt;li&gt;integración con sistemas de negocio&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Sin eso, los vectores no crean valor automáticamente.&lt;/p&gt;
&lt;h2 id=&#34;7-cómo-pensar-su-valor-real&#34;&gt;7. Cómo pensar su valor real
&lt;/h2&gt;&lt;p&gt;Desde lo técnico puede sonar bajo nivel. Desde negocio, el valor es concreto:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;da buscabilidad a imágenes&lt;/li&gt;
&lt;li&gt;mueve similitud desde píxeles a semántica&lt;/li&gt;
&lt;li&gt;permite que imágenes entren en recomendación, recuperación, clustering y reconocimiento&lt;/li&gt;
&lt;li&gt;convierte datos visuales en algo que participa en análisis y automatización&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Puedes verlo como la entrada estándar de datos visuales a sistemas AI. Sin ella, muchas capacidades se quedan en gestión de archivos. Con ella, las imágenes empiezan a ser activos de datos.&lt;/p&gt;
&lt;h2 id=&#34;conclusión&#34;&gt;Conclusión
&lt;/h2&gt;&lt;p&gt;La vectorización de imágenes no es un truco aislado. Es una capa básica en sistemas modernos de visión.&lt;/p&gt;
&lt;p&gt;Lo que hace no es misterioso: convierte imágenes desde píxeles a representaciones vectoriales que pueden buscarse, compararse y analizarse. Pero ese paso determina si las imágenes pueden entrar realmente en pipelines de AI, búsqueda, recomendación y aplicaciones multimodales.&lt;/p&gt;
&lt;p&gt;Si recuerdas una frase:&lt;/p&gt;
&lt;p&gt;la esencia de la vectorización de imágenes no es comprimir imágenes, sino convertirlas en una representación que las máquinas puedan usar.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Términos de AI explicados: Agent, MCP, RAG y Token en lenguaje simple</title>
        <link>https://knightli.com/es/2026/04/23/ai-terms-agent-mcp-rag-token-explained/</link>
        <pubDate>Thu, 23 Apr 2026 13:13:40 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/23/ai-terms-agent-mcp-rag-token-explained/</guid>
        <description>&lt;p&gt;Cuando la gente empieza con AI, lo que suele alejarla no son los modelos en sí, sino la larga lista de términos que aparecen en cada discusión. &lt;code&gt;Agent&lt;/code&gt;, &lt;code&gt;MCP&lt;/code&gt;, &lt;code&gt;RAG&lt;/code&gt;, &lt;code&gt;AIGC&lt;/code&gt; y &lt;code&gt;Token&lt;/code&gt; suenan familiares, pero sin una explicación simple muchas personas solo reconocen las palabras sin entenderlas de verdad.&lt;/p&gt;
&lt;p&gt;Este artículo condensa 10 términos frecuentes de AI en significados más fáciles de recordar. El objetivo no es sonar académico, sino ayudarte a construir un modelo mental básico para seguir conversaciones cotidianas sobre AI.&lt;/p&gt;
&lt;h2 id=&#34;10-términos-comunes-de-ai-y-qué-significan&#34;&gt;10 términos comunes de AI y qué significan
&lt;/h2&gt;&lt;h3 id=&#34;1-agent-una-ai-que-hace-más-que-chatear&#34;&gt;1. Agent: una AI que hace más que chatear
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;Agent&lt;/code&gt; puede entenderse como un asistente AI que realmente hace trabajo.&lt;/p&gt;
&lt;p&gt;Un chatbot normal suele seguir un patrón de pregunta y respuesta. Un &lt;code&gt;Agent&lt;/code&gt; va más lejos: puede dividir una tarea en pasos, organizar un proceso, llamar herramientas y devolver un resultado terminado. Si le pides organizar materiales, buscar algo o generar un documento, quizá no solo dé consejos, sino que encadene acciones y las complete.&lt;/p&gt;
&lt;p&gt;Por eso el punto clave de un &lt;code&gt;Agent&lt;/code&gt; no es si puede hablar, sino si puede actuar.&lt;/p&gt;
&lt;h3 id=&#34;2-openclaw-un-asistente-ai-que-vive-en-tu-ordenador&#34;&gt;2. OpenClaw: un asistente AI que vive en tu ordenador
&lt;/h3&gt;&lt;p&gt;Aquí, &lt;code&gt;OpenClaw&lt;/code&gt; se describe como un tipo de asistente AI que vive en tu ordenador.&lt;/p&gt;
&lt;p&gt;Puedes pensar en esta herramienta como un ayudante AI más orientado al escritorio. No solo recibe texto. También puede observar la interfaz, llamar herramientas locales y ejecutar tareas paso a paso. Frente a un chat web normal, enfatiza mucho más la capacidad operativa.&lt;/p&gt;
&lt;p&gt;Si &lt;code&gt;Agent&lt;/code&gt; es la idea abstracta de una AI orientada a ejecución, este tipo de asistente de escritorio es una versión concreta para ordenador personal.&lt;/p&gt;
&lt;h3 id=&#34;3-skills-paquetes-de-capacidad-añadidos-a-un-agent&#34;&gt;3. Skills: paquetes de capacidad añadidos a un Agent
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;Skills&lt;/code&gt; pueden entenderse como módulos funcionales o instrucciones operativas para un &lt;code&gt;Agent&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;El mismo &lt;code&gt;Agent&lt;/code&gt; puede comportarse muy distinto según las &lt;code&gt;Skills&lt;/code&gt; que tenga. Algunas se centran en copywriting, otras en organizar datos y otras en código. Son un poco como apps en un teléfono y un poco como workflows reutilizables.&lt;/p&gt;
&lt;p&gt;En muchos casos no es que el modelo se vuelva más inteligente de repente. Es que se añadieron reglas, herramientas y pasos más claros detrás.&lt;/p&gt;
&lt;h3 id=&#34;4-mcp-una-forma-unificada-para-conectar-ai-con-herramientas&#34;&gt;4. MCP: una forma unificada para conectar AI con herramientas
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;MCP&lt;/code&gt; significa &lt;code&gt;Model Context Protocol&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;En términos cotidianos, es un poco como un conector &lt;code&gt;Type-C&lt;/code&gt; para el mundo AI. Antes, conectar un modelo a distintas herramientas solía exigir integraciones separadas una por una. Con un protocolo unificado, la forma de conectar herramientas se vuelve más estándar y reutilizable.&lt;/p&gt;
&lt;p&gt;Para la mayoría de usuarios, lo importante es recordar esto: &lt;code&gt;MCP&lt;/code&gt; no trata de si un modelo puede responder una pregunta. Trata de cómo un modelo puede conectarse a herramientas y recursos externos de forma segura y estable.&lt;/p&gt;
&lt;h3 id=&#34;5-gacha-la-salida-ai-es-inherentemente-aleatoria&#34;&gt;5. Gacha: la salida AI es inherentemente aleatoria
&lt;/h3&gt;&lt;p&gt;El término &amp;ldquo;gacha&amp;rdquo; aparece a menudo en generación de imágenes, video y trabajo creativo con &lt;code&gt;AI&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;La idea es simple. Incluso con el mismo prompt y la misma dirección general, el resultado puede cambiar cada vez. A veces sale genial. A veces se rompe. Por eso se compara repetir generaciones con tirar gacha en un juego.&lt;/p&gt;
&lt;p&gt;Esto recuerda que la generación AI no es una fórmula fija, sino un proceso probabilístico con variación.&lt;/p&gt;
&lt;h3 id=&#34;6-api-la-conexión-entre-una-app-y-un-modelo&#34;&gt;6. API: la conexión entre una app y un modelo
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;API&lt;/code&gt; significa &lt;code&gt;Application Programming Interface&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Puedes pensarla como el punto de entrada estándar por el que los programas se comunican. Cuando llamas un servicio de modelo desde tu app, script o editor, usas una &lt;code&gt;API&lt;/code&gt; para enviar una solicitud y recibir un resultado.&lt;/p&gt;
&lt;p&gt;Si comparas un servicio de modelo con un restaurante:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;el menú es como la documentación de &lt;code&gt;API&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;hacer un pedido es como una solicitud &lt;code&gt;API&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;la cocina devolviendo el plato es como el modelo devolviendo resultado&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por eso muchas herramientas pueden verse distintas en superficie y aun así llamar alguna &lt;code&gt;API&lt;/code&gt; por debajo.&lt;/p&gt;
&lt;h3 id=&#34;7-multimodalidad-ai-maneja-más-que-texto&#34;&gt;7. Multimodalidad: AI maneja más que texto
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;Multimodality&lt;/code&gt; significa que AI ya no solo lee y escribe texto. Puede procesar varios tipos de entrada y salida.&lt;/p&gt;
&lt;p&gt;Por ejemplo, puede leer imágenes, entender voz, interpretar video, generar dibujos o soportar interacción de voz y video en tiempo real. Frente a los primeros modelos solo texto, los modelos multimodales se acercan más a combinar ver, oír, hablar y escribir.&lt;/p&gt;
&lt;p&gt;Por eso muchos productos AI ya no giran alrededor de una sola caja de texto.&lt;/p&gt;
&lt;h3 id=&#34;8-rag-recuperar-información-primero-y-luego-generar-respuesta&#34;&gt;8. RAG: recuperar información primero y luego generar respuesta
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;RAG&lt;/code&gt; significa &lt;code&gt;Retrieval-Augmented Generation&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Sirve para resolver un problema práctico: los datos de entrenamiento de un modelo tienen un límite temporal y no conoce automáticamente los documentos nuevos de tu empresa, registros de soporte o reglas de negocio. La idea de &lt;code&gt;RAG&lt;/code&gt; es recuperar primero material relevante de fuentes específicas y luego generar una respuesta basada en ese material.&lt;/p&gt;
&lt;p&gt;Su valor aparece en tres formas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;las respuestas se mantienen más cerca del material fuente real&lt;/li&gt;
&lt;li&gt;puedes rastrear de dónde salió la respuesta&lt;/li&gt;
&lt;li&gt;documentos nuevos pueden añadirse y reflejarse rápido&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por eso muchas bases de conocimiento empresariales, sistemas de atención AI y herramientas internas de Q&amp;amp;A dependen de &lt;code&gt;RAG&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;9-aigc-término-general-para-contenido-generado-por-ai&#34;&gt;9. AIGC: término general para contenido generado por AI
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;AIGC&lt;/code&gt; significa &lt;code&gt;AI Generated Content&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;No es una herramienta concreta. Es una etiqueta amplia para contenido producido por AI: texto, imágenes, audio, video y más. Escritura AI, ilustración AI, generación de video corto y síntesis de voz AI entran bajo &lt;code&gt;AIGC&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Lo importante es que describe una forma de producir contenido, no un modelo específico.&lt;/p&gt;
&lt;h3 id=&#34;10-token-la-unidad-usada-para-medir-procesamiento-del-modelo&#34;&gt;10. Token: la unidad usada para medir procesamiento del modelo
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;Token&lt;/code&gt; puede entenderse como la unidad básica que un modelo usa para procesar texto.&lt;/p&gt;
&lt;p&gt;No equivale exactamente a un carácter o una palabra, pero en la práctica puedes tratarlo como la unidad común para cómputo y facturación del modelo. Tu entrada consume &lt;code&gt;Token&lt;/code&gt;, la salida del modelo consume &lt;code&gt;Token&lt;/code&gt; y el contexto guardado en memoria también ocupa &lt;code&gt;Token&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Por eso los servicios de modelos hablan tanto de longitud de contexto, control de coste y compresión de prompts. En el fondo, todo eso está ligado a &lt;code&gt;Token&lt;/code&gt;.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Cómo ajustar llama.cpp con 8GB de VRAM: por qué 32K es más seguro y 64K necesita cuantización de KV Cache</title>
        <link>https://knightli.com/es/2026/04/23/llama-cpp-8g-vram-32k-64k-kv-cache-tuning/</link>
        <pubDate>Thu, 23 Apr 2026 12:13:04 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/23/llama-cpp-8g-vram-32k-64k-kv-cache-tuning/</guid>
        <description>&lt;p&gt;Si &lt;code&gt;8GB&lt;/code&gt; de VRAM bastan para ejecutar LLMs locales con fluidez, especialmente con contextos largos, es una de las preguntas más comunes al usar &lt;code&gt;llama.cpp&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Tres conclusiones clave:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Con &lt;code&gt;8GB&lt;/code&gt; de VRAM, contexto &lt;code&gt;32K&lt;/code&gt; suele ser el equilibrio más seguro&lt;/li&gt;
&lt;li&gt;Si realmente quieres &lt;code&gt;64K&lt;/code&gt;, la cuantización de &lt;code&gt;KV Cache&lt;/code&gt; suele ser esencial&lt;/li&gt;
&lt;li&gt;En inferencia full-GPU, subir a ciegas el número de hilos &lt;code&gt;CPU&lt;/code&gt; puede empeorar el rendimiento&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;1-qué-significan-32k-64k-y-kv-cache&#34;&gt;1. Qué significan 32K, 64K y KV Cache
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;32K&lt;/code&gt; y &lt;code&gt;64K&lt;/code&gt; se refieren a longitud de contexto, es decir, cuántos &lt;code&gt;tokens&lt;/code&gt; puede procesar el modelo a la vez. &lt;code&gt;K&lt;/code&gt; significa miles: &lt;code&gt;32K&lt;/code&gt; son unos &lt;code&gt;32000 tokens&lt;/code&gt;, y &lt;code&gt;64K&lt;/code&gt; unos &lt;code&gt;64000 tokens&lt;/code&gt;. Cuanto más largo el contexto, más contenido previo puede ver el modelo.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;KV Cache&lt;/code&gt; es una caché de resultados intermedios que el modelo mantiene para acelerar la generación autoregresiva. Una vez que el modelo leyó parte del contexto, no necesita recalcular todo desde cero cada vez. Guarda información intermedia y la reutiliza. &lt;code&gt;K&lt;/code&gt; y &lt;code&gt;V&lt;/code&gt; vienen de &lt;code&gt;Key&lt;/code&gt; y &lt;code&gt;Value&lt;/code&gt; en Transformers.&lt;/p&gt;
&lt;p&gt;Estos términos aparecen juntos porque:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;32K&lt;/code&gt; y &lt;code&gt;64K&lt;/code&gt; definen cuánto contenido quieres recordar&lt;/li&gt;
&lt;li&gt;&lt;code&gt;KV Cache&lt;/code&gt; determina cuánta VRAM extra hace falta para mantener esa memoria&lt;/li&gt;
&lt;li&gt;cuanto más largo el contexto, más grande suele ser la &lt;code&gt;KV Cache&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cuando la inferencia de contexto largo se ralentiza, el problema raíz suele ser que la caché creció hasta presionar el límite de VRAM.&lt;/p&gt;
&lt;h2 id=&#34;2-por-qué-32k-y-64k-se-comportan-tan-distinto&#34;&gt;2. Por qué 32K y 64K se comportan tan distinto
&lt;/h2&gt;&lt;p&gt;Usando unas &lt;code&gt;30000&lt;/code&gt; letras chinas de &lt;em&gt;The Three-Body Problem&lt;/em&gt; como stress test, la comparación entre &lt;code&gt;32K&lt;/code&gt; y &lt;code&gt;64K&lt;/code&gt; puede verse dramática: con tamaño de documento similar, &lt;code&gt;64K&lt;/code&gt; puede volverse mucho más lento.&lt;/p&gt;
&lt;p&gt;La razón no es que el modelo empeore de repente. El problema real es tocar el límite de VRAM.&lt;/p&gt;
&lt;p&gt;En &lt;code&gt;32K&lt;/code&gt;, pesos del modelo más caché quizá aún caben en &lt;code&gt;8GB&lt;/code&gt;, así que la mayoría del tráfico se queda en la memoria de la GPU. Al pasar a &lt;code&gt;64K&lt;/code&gt;, la caché crece, el uso total se acerca o supera el techo de VRAM, y parte de los datos se empuja a memoria compartida o del sistema.&lt;/p&gt;
&lt;p&gt;En ese punto no colapsa el cómputo bruto, sino el ancho de banda.&lt;/p&gt;
&lt;p&gt;Lo que parece &amp;ldquo;el contexto se duplicó y el rendimiento se hundió&amp;rdquo; suele ser que la ruta de datos salió de VRAM hacia memoria mucho más lenta.&lt;/p&gt;
&lt;h2 id=&#34;3-para-64k-la-cuantización-de-kv-cache-importa-mucho&#34;&gt;3. Para 64K, la cuantización de KV Cache importa mucho
&lt;/h2&gt;&lt;p&gt;Para usuarios de &lt;code&gt;8GB&lt;/code&gt; de VRAM, una conclusión importante es que cuantizar &lt;code&gt;KV Cache&lt;/code&gt; importa muchísimo.&lt;/p&gt;
&lt;p&gt;Sin cambiar el modelo, cuantizar solo la caché reduce directamente el uso de memoria en contexto largo. Eso permite que parte de los datos que antes salían de VRAM vuelvan a caber. &lt;code&gt;64K&lt;/code&gt; seguirá siendo más pesado que &lt;code&gt;32K&lt;/code&gt;, pero es menos probable que caiga en la zona más lenta.&lt;/p&gt;
&lt;p&gt;En simple:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;32K&lt;/code&gt; es el rango predeterminado más práctico para &lt;code&gt;8GB&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;64K&lt;/code&gt; no es imposible&lt;/li&gt;
&lt;li&gt;pero sin cuantización de caché, puede pasar de usable a difícil de usar&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Prioridad habitual:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Revisar si la VRAM ya está cerca del techo&lt;/li&gt;
&lt;li&gt;Decidir si activar cuantización de &lt;code&gt;KV Cache&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Solo después experimentar con ajustes de throughput&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;4-baja-utilización-gpu-no-significa-que-esté-inactiva&#34;&gt;4. Baja utilización GPU no significa que esté inactiva
&lt;/h2&gt;&lt;p&gt;Este punto rompe la intuición.&lt;/p&gt;
&lt;p&gt;Cuando Task Manager muestra 20% o 30% de &lt;code&gt;GPU&lt;/code&gt;, mucha gente asume:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;los parámetros están mal&lt;/li&gt;
&lt;li&gt;el modelo no corre realmente en GPU&lt;/li&gt;
&lt;li&gt;la GPU no se usa completa&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pero en inferencia &lt;code&gt;llama.cpp&lt;/code&gt;, lo más probable es que el cuello de botella no sea cómputo del core, sino lecturas y escrituras de memoria.&lt;/p&gt;
&lt;p&gt;Los cores GPU pueden terminar rápido un lote de cálculo y pasar el resto del tiempo esperando el siguiente lote de pesos o datos cacheados.&lt;/p&gt;
&lt;p&gt;Por eso:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;la utilización de cores no parece alta&lt;/li&gt;
&lt;li&gt;pero la velocidad end-to-end no mejora&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No es una GPU perezosa. Es una ruta de datos estrecha.&lt;/p&gt;
&lt;h2 id=&#34;5-aumentar-parámetros-de-throughput-ayuda-solo-si-la-vram-aguanta&#34;&gt;5. Aumentar parámetros de throughput ayuda solo si la VRAM aguanta
&lt;/h2&gt;&lt;p&gt;Si los cores GPU no están saturados, aumentar parámetros relacionados con throughput puede hacer que la GPU procese más datos a la vez y use mejor el paralelismo.&lt;/p&gt;
&lt;p&gt;Puede mejorar velocidad, pero con una condición: debe quedar margen de VRAM.&lt;/p&gt;
&lt;p&gt;Si ya estás en &lt;code&gt;64K&lt;/code&gt;, con una caché grande y VRAM casi agotada, subir esos parámetros puede terminar en:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;crash&lt;/li&gt;
&lt;li&gt;fallback a memoria compartida mucho más lenta&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La secuencia más segura:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;proteger primero el límite de VRAM&lt;/li&gt;
&lt;li&gt;luego probar optimizaciones de throughput&lt;/li&gt;
&lt;li&gt;tras cada cambio, revisar velocidad y estabilidad&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;6-más-hilos-cpu-no-siempre-son-mejores&#34;&gt;6. Más hilos CPU no siempre son mejores
&lt;/h2&gt;&lt;p&gt;Es una trampa fácil.&lt;/p&gt;
&lt;p&gt;Parece natural pensar que más hilos dan más velocidad. Pero si el modelo ya corre casi todo en GPU, forzar más hilos &lt;code&gt;CPU&lt;/code&gt; puede empeorar claramente el rendimiento.&lt;/p&gt;
&lt;p&gt;En inferencia full-GPU, la &lt;code&gt;CPU&lt;/code&gt; es más scheduler y ayudante de preprocesamiento que motor principal. Demasiados hilos aumentan contención, overhead de scheduling y cambios de contexto, interrumpiendo el flujo de datos.&lt;/p&gt;
&lt;p&gt;Resultado:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;la &lt;code&gt;CPU&lt;/code&gt; parece más ocupada&lt;/li&gt;
&lt;li&gt;la velocidad general baja&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En este setup, valores predeterminados o hilos más bajos suelen ser más fiables que maximizar todo.&lt;/p&gt;
&lt;h2 id=&#34;7-enfoque-práctico-para-8gb-de-vram&#34;&gt;7. Enfoque práctico para 8GB de VRAM
&lt;/h2&gt;&lt;h3 id=&#34;1-trata-32k-como-objetivo-predeterminado&#34;&gt;1. Trata 32K como objetivo predeterminado
&lt;/h3&gt;&lt;p&gt;Con una GPU de &lt;code&gt;8GB&lt;/code&gt;, no persigas &lt;code&gt;64K&lt;/code&gt; de inmediato. &lt;code&gt;32K&lt;/code&gt; suele equilibrar mejor velocidad, estabilidad y memoria.&lt;/p&gt;
&lt;h3 id=&#34;2-si-quieres-64k-resuelve-primero-la-caché&#34;&gt;2. Si quieres 64K, resuelve primero la caché
&lt;/h3&gt;&lt;p&gt;Confirma si &lt;code&gt;KV Cache&lt;/code&gt; está cuantizada y si la VRAM ya está al límite.&lt;/p&gt;
&lt;h3 id=&#34;3-no-juzgues-todo-por-utilización-gpu&#34;&gt;3. No juzgues todo por utilización GPU
&lt;/h3&gt;&lt;p&gt;Baja utilización no implica ajustes incorrectos. Puede indicar que el cuello de botella es memoria.&lt;/p&gt;
&lt;h3 id=&#34;4-optimiza-throughput-sin-cruzar-el-límite-de-vram&#34;&gt;4. Optimiza throughput sin cruzar el límite de VRAM
&lt;/h3&gt;&lt;p&gt;Estos parámetros pueden ayudar, pero solo con margen suficiente.&lt;/p&gt;
&lt;h3 id=&#34;5-sé-conservador-con-hilos-cpu&#34;&gt;5. Sé conservador con hilos CPU
&lt;/h3&gt;&lt;p&gt;Si el modelo corre principalmente en GPU, más hilos CPU no son automáticamente mejores.&lt;/p&gt;
&lt;h2 id=&#34;conclusión&#34;&gt;Conclusión
&lt;/h2&gt;&lt;p&gt;El valor de esta discusión no son solo números de benchmark, sino una verdad fácil de olvidar:&lt;/p&gt;
&lt;p&gt;ajustar LLMs locales no consiste en poner cada valor al máximo. Consiste en entender si tu cuello de botella real es cómputo, capacidad de VRAM, ancho de banda de memoria o scheduling de &lt;code&gt;CPU&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Para usuarios de &lt;code&gt;8GB&lt;/code&gt;, la estrategia más segura suele ser proteger primero el límite de VRAM y solo entonces decidir cuánto más empujar.&lt;/p&gt;
&lt;p&gt;Si recuerdas una frase:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;32K&lt;/code&gt; suele ser el rango de trabajo más estable para &lt;code&gt;8GB&lt;/code&gt; de VRAM; &lt;code&gt;64K&lt;/code&gt; es posible, pero solo si ya controlaste &lt;code&gt;KV Cache&lt;/code&gt; y uso de VRAM.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>La configuración de entorno en cuatro partes de Claude Code: CLAUDE.md, Rules, Memory y Hooks</title>
        <link>https://knightli.com/es/2026/04/23/claude-code-claude-md-rules-memory-hooks-guide/</link>
        <pubDate>Thu, 23 Apr 2026 10:43:40 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/23/claude-code-claude-md-rules-memory-hooks-guide/</guid>
        <description>&lt;p&gt;Si usas &lt;code&gt;Claude Code&lt;/code&gt; durante un tiempo, pronto notas algo: el modelo importa, pero el entorno que le das, los límites que defines y las reglas que configuras importan igual.&lt;/p&gt;
&lt;p&gt;Al principio, mucha gente se centra en &amp;ldquo;cómo escribo este prompt&amp;rdquo;. Pero cuando empiezas a usar &lt;code&gt;Claude Code&lt;/code&gt; en serio, te importa más otra cosa:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;¿Sabe quién eres?&lt;/li&gt;
&lt;li&gt;¿Sabe cómo trabajas?&lt;/li&gt;
&lt;li&gt;¿Sabe qué reglas no puede romper?&lt;/li&gt;
&lt;li&gt;¿Sabe qué acciones requieren confirmación primero?&lt;/li&gt;
&lt;li&gt;¿Puede recordar esos límites con el tiempo?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Lo que vuelve maduro a &lt;code&gt;Claude Code&lt;/code&gt; no es solo la capacidad del modelo. Es que hay un sistema completo para convertir tu estilo de trabajo en estructura persistente. A alto nivel, ese sistema puede dividirse en cuatro capas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Rules&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Memory&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Hooks&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Este artículo explica las cuatro.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-la-configuración-de-entorno-importa-más-que-prompts-únicos&#34;&gt;Por qué la configuración de entorno importa más que prompts únicos
&lt;/h2&gt;&lt;p&gt;Puedes pensar en &lt;code&gt;Claude Code&lt;/code&gt; como un asistente que contrataste.&lt;/p&gt;
&lt;p&gt;El primer día no le dirías solo &amp;ldquo;ayúdame a hacer cosas&amp;rdquo;. Le darías un manual y explicarías:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;quién eres&lt;/li&gt;
&lt;li&gt;qué estilo de comunicación prefieres&lt;/li&gt;
&lt;li&gt;qué acciones siempre requieren confirmación&lt;/li&gt;
&lt;li&gt;qué errores ya ocurrieron y no deben repetirse&lt;/li&gt;
&lt;li&gt;dónde están los documentos importantes del proyecto&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por eso, a largo plazo, la configuración de entorno suele importar más que un prompt aislado.&lt;/p&gt;
&lt;p&gt;Un prompt resuelve &amp;ldquo;qué hacemos esta vez&amp;rdquo;. La configuración de entorno resuelve &amp;ldquo;cómo trabajamos cada vez desde ahora&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;capa-1-claudemd&#34;&gt;Capa 1: &lt;code&gt;CLAUDE.md&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;Empieza por la pieza básica. &lt;code&gt;CLAUDE.md&lt;/code&gt; es esencialmente un archivo de texto.&lt;/p&gt;
&lt;p&gt;Puedes escribir instrucciones para Claude, como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;quién eres&lt;/li&gt;
&lt;li&gt;en qué trabajas&lt;/li&gt;
&lt;li&gt;tus preferencias de comunicación&lt;/li&gt;
&lt;li&gt;reglas obligatorias&lt;/li&gt;
&lt;li&gt;contexto especial del proyecto actual&lt;/li&gt;
&lt;li&gt;dónde están documentos o directorios importantes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cada vez que &lt;code&gt;Claude Code&lt;/code&gt; arranca, este documento se inyecta automáticamente en el contexto, así que el modelo lo leerá.&lt;/p&gt;
&lt;p&gt;Suelo pensarlo como un &amp;ldquo;archivo de entendimiento compartido&amp;rdquo;, porque eso es: el acuerdo permanente entre tú y el modelo.&lt;/p&gt;
&lt;h3 id=&#34;qué-poner-en-claudemd&#34;&gt;Qué poner en &lt;code&gt;CLAUDE.md&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Lo mejor para &lt;code&gt;CLAUDE.md&lt;/code&gt; suele ser:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;identidad y contexto de trabajo&lt;/li&gt;
&lt;li&gt;preferencias de tono y salida&lt;/li&gt;
&lt;li&gt;reglas globales de comportamiento&lt;/li&gt;
&lt;li&gt;contexto de proyecto que aparece a menudo&lt;/li&gt;
&lt;li&gt;errores comunes y cómo evitarlos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;tu zona horaria&lt;/li&gt;
&lt;li&gt;si permites que el modelo envíe emails o mensajes directamente&lt;/li&gt;
&lt;li&gt;qué acciones son irreversibles&lt;/li&gt;
&lt;li&gt;tus hábitos con documentos y archivos&lt;/li&gt;
&lt;li&gt;prácticas de seguridad y límites sobre información sensible&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;un-principio-muy-importante-mantenerlo-conciso&#34;&gt;Un principio muy importante: mantenerlo conciso
&lt;/h3&gt;&lt;p&gt;Un principio clave para &lt;code&gt;CLAUDE.md&lt;/code&gt;: mantenlo lo más conciso posible.&lt;/p&gt;
&lt;p&gt;La razón es simple: se inyecta en contexto cada vez.&lt;/p&gt;
&lt;p&gt;Si crece demasiado, ocupa demasiado espacio de contexto y diluye la información importante. El modelo no lo ignora, pero su atención se dispersa, así que es más probable que pase por alto reglas críticas.&lt;/p&gt;
&lt;p&gt;La recomendación oficial suele ser mantenerlo por debajo de &lt;code&gt;400&lt;/code&gt; líneas.&lt;/p&gt;
&lt;p&gt;Mi hábito es aún más conservador: intento mantenerlo por debajo de &lt;code&gt;200&lt;/code&gt; líneas.&lt;/p&gt;
&lt;h3 id=&#34;alcances-comunes-de-claudemd&#34;&gt;Alcances comunes de &lt;code&gt;CLAUDE.md&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;En la práctica, &lt;code&gt;CLAUDE.md&lt;/code&gt; puede existir en distintos niveles, y esos niveles determinan su alcance.&lt;/p&gt;
&lt;h4 id=&#34;1-nivel-de-usuario&#34;&gt;1. Nivel de usuario
&lt;/h4&gt;&lt;p&gt;Es el nivel global.&lt;/p&gt;
&lt;p&gt;Vive en tu entorno de máquina y aplica a todos los proyectos locales.&lt;/p&gt;
&lt;p&gt;Es buen lugar para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;información de identidad&lt;/li&gt;
&lt;li&gt;preferencias generales de comunicación&lt;/li&gt;
&lt;li&gt;hábitos que aplican a todos los proyectos&lt;/li&gt;
&lt;li&gt;reglas globales de seguridad&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;2-nivel-de-proyecto&#34;&gt;2. Nivel de proyecto
&lt;/h4&gt;&lt;p&gt;Es el nivel del proyecto.&lt;/p&gt;
&lt;p&gt;Está dentro de un directorio de proyecto concreto y solo aplica a ese proyecto.&lt;/p&gt;
&lt;p&gt;Es buen lugar para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;contexto específico del proyecto&lt;/li&gt;
&lt;li&gt;reglas que solo tienen sentido ahí&lt;/li&gt;
&lt;li&gt;explicación de la estructura de directorios&lt;/li&gt;
&lt;li&gt;entradas a documentos clave del proyecto&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;cómo-decidir-qué-nivel-usar&#34;&gt;Cómo decidir qué nivel usar
&lt;/h3&gt;&lt;p&gt;La regla es simple:&lt;/p&gt;
&lt;p&gt;Si lo escrito seguiría siendo verdad en otro proyecto, ponlo en el &lt;code&gt;user level&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Si deja de ser verdad al cambiar de proyecto, ponlo en el &lt;code&gt;project level&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;cómo-escribir-la-primera-versión&#34;&gt;Cómo escribir la primera versión
&lt;/h3&gt;&lt;p&gt;Hay dos formas comunes de empezar:&lt;/p&gt;
&lt;h4 id=&#34;1-usar-init&#34;&gt;1. Usar &lt;code&gt;/init&lt;/code&gt;
&lt;/h4&gt;&lt;p&gt;Puedes ejecutar &lt;code&gt;/init&lt;/code&gt; directamente en la terminal y dejar que Claude escanee el proyecto para generar un &lt;code&gt;CLAUDE.md&lt;/code&gt; básico.&lt;/p&gt;
&lt;h4 id=&#34;2-dejar-que-claude-te-ayude-a-organizarlo&#34;&gt;2. Dejar que Claude te ayude a organizarlo
&lt;/h4&gt;&lt;p&gt;También puedes pedirle que busque cómo otras personas estructuran &lt;code&gt;CLAUDE.md&lt;/code&gt;, que te haga preguntas según tu situación y organice una versión que encaje contigo.&lt;/p&gt;
&lt;h3 id=&#34;un-hábito-práctico&#34;&gt;Un hábito práctico
&lt;/h3&gt;&lt;p&gt;Al colaborar con Claude, cuando notes algo que debe recordarse o que no debe fallar otra vez, puedes pedirle que lo escriba en &lt;code&gt;CLAUDE.md&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Antes de hacerlo, decide:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;¿es una regla global?&lt;/li&gt;
&lt;li&gt;¿o solo del proyecto actual?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No lo metas todo en un único archivo.&lt;/p&gt;
&lt;h2 id=&#34;capa-2-rules&#34;&gt;Capa 2: &lt;code&gt;Rules&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;La siguiente capa es &lt;code&gt;Rules&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;La diferencia principal con &lt;code&gt;CLAUDE.md&lt;/code&gt; no es el formato, sino cómo se carga.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; se lee sin importar qué haces.&lt;/p&gt;
&lt;p&gt;La ventaja de &lt;code&gt;Rules&lt;/code&gt; es que pueden cargarse &lt;strong&gt;condicionalmente&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Una regla puede cargarse solo para ciertas rutas, archivos, herramientas o escenarios.&lt;/p&gt;
&lt;h3 id=&#34;por-qué-importa-la-carga-condicional&#34;&gt;Por qué importa la carga condicional
&lt;/h3&gt;&lt;p&gt;Porque el espacio de contexto siempre es escaso.&lt;/p&gt;
&lt;p&gt;Si todas las reglas entran al contexto todo el tiempo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;el modelo carga más overhead&lt;/li&gt;
&lt;li&gt;las reglas realmente importantes se entierran&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El valor de cargar reglas bajo demanda es que el modelo ve la información correcta en el momento correcto.&lt;/p&gt;
&lt;h3 id=&#34;cuándo-mover-reglas-desde-claudemd-a-rules&#34;&gt;Cuándo mover reglas desde &lt;code&gt;CLAUDE.md&lt;/code&gt; a &lt;code&gt;Rules&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Suelen darse dos situaciones:&lt;/p&gt;
&lt;h4 id=&#34;1-claudemd-se-volvió-demasiado-largo&#34;&gt;1. &lt;code&gt;CLAUDE.md&lt;/code&gt; se volvió demasiado largo
&lt;/h4&gt;&lt;p&gt;Si empieza a pasar de &lt;code&gt;200&lt;/code&gt; líneas, sigue creciendo y lo importante se diluye, toca separar reglas.&lt;/p&gt;
&lt;h4 id=&#34;2-algunas-reglas-solo-aplican-a-rutas-concretas&#34;&gt;2. Algunas reglas solo aplican a rutas concretas
&lt;/h4&gt;&lt;p&gt;Si sabes que ciertas reglas solo tienen sentido para ciertos archivos, por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;reglas solo para scripts Python&lt;/li&gt;
&lt;li&gt;reglas solo para un directorio de hooks&lt;/li&gt;
&lt;li&gt;reglas solo para un subproyecto&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;entonces pertenecen más naturalmente a &lt;code&gt;Rules&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;dónde-encajan-mejor-rules&#34;&gt;Dónde encajan mejor &lt;code&gt;Rules&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;El caso típico es &amp;ldquo;situación específica, ruta específica, tipo de archivo específico&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;convenciones al manejar hooks&lt;/li&gt;
&lt;li&gt;reglas de código para cierto tipo de scripts&lt;/li&gt;
&lt;li&gt;formas de trabajo que solo aplican bajo un directorio&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mantener ese contenido en &lt;code&gt;CLAUDE.md&lt;/code&gt; suele no ser rentable.&lt;/p&gt;
&lt;h2 id=&#34;capa-3-memory&#34;&gt;Capa 3: &lt;code&gt;Memory&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;La tercera capa es &lt;code&gt;Memory&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Como &lt;code&gt;CLAUDE.md&lt;/code&gt; y &lt;code&gt;Rules&lt;/code&gt;, también entra al contexto del modelo, pero su diferencia central es:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; es algo que defines deliberadamente.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Memory&lt;/code&gt; se parece más a notas que Claude escribe para sí mismo durante la colaboración.&lt;/p&gt;
&lt;h3 id=&#34;qué-entra-en-memory&#34;&gt;Qué entra en &lt;code&gt;Memory&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Cuando Claude juzga que algo vale la pena recordar o conservar por un tiempo, escribe esa información en &lt;code&gt;Memory&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Ejemplos comunes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;una forma de trabajar que corregiste&lt;/li&gt;
&lt;li&gt;una preferencia nueva&lt;/li&gt;
&lt;li&gt;estado temporal del proyecto actual&lt;/li&gt;
&lt;li&gt;algo que no terminaste hoy y debes continuar mañana&lt;/li&gt;
&lt;li&gt;con quién colaboraste recientemente&lt;/li&gt;
&lt;li&gt;contexto personal aparecido hace poco&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Es conocimiento dinámico más que política de largo plazo.&lt;/p&gt;
&lt;h3 id=&#34;diferencia-con-las-dos-primeras-capas&#34;&gt;Diferencia con las dos primeras capas
&lt;/h3&gt;&lt;p&gt;Una distinción simple:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; / &lt;code&gt;Rules&lt;/code&gt;: reglas explícitas, de largo plazo y tipo política&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Memory&lt;/code&gt;: contexto temporal, dinámico y recién aprendido&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si algo solo importa unos días o cambia con frecuencia, suele pertenecer a &lt;code&gt;Memory&lt;/code&gt;, no a una regla permanente.&lt;/p&gt;
&lt;h3 id=&#34;memory-también-puede-escribirse-manualmente&#34;&gt;&lt;code&gt;Memory&lt;/code&gt; también puede escribirse manualmente
&lt;/h3&gt;&lt;p&gt;Aunque &lt;code&gt;Memory&lt;/code&gt; puede mantenerse automáticamente, también puedes decirle explícitamente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;recuerda lo que debo hacer mañana&lt;/li&gt;
&lt;li&gt;recuerda a quién debo hacer seguimiento&lt;/li&gt;
&lt;li&gt;recuerda el hito clave de este proyecto este mes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;También puedes usar &lt;code&gt;/memory&lt;/code&gt; para ver, editar o borrar memorias.&lt;/p&gt;
&lt;h2 id=&#34;capa-4-hooks&#34;&gt;Capa 4: &lt;code&gt;Hooks&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;La última y más avanzada capa es &lt;code&gt;Hooks&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Todo lo anterior, incluido &lt;code&gt;CLAUDE.md&lt;/code&gt;, &lt;code&gt;Rules&lt;/code&gt; y &lt;code&gt;Memory&lt;/code&gt;, sigue siendo guía en lenguaje natural.&lt;/p&gt;
&lt;p&gt;Escribes reglas y el modelo normalmente las sigue, pero primero debe interpretarlas.&lt;/p&gt;
&lt;p&gt;Mientras la regla viva en lenguaje natural, quedan problemas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;el modelo puede pasarla por alto&lt;/li&gt;
&lt;li&gt;demasiadas reglas diluyen atención&lt;/li&gt;
&lt;li&gt;puede decidir que no es suficientemente importante&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;qué-son-realmente-hooks&#34;&gt;Qué son realmente &lt;code&gt;Hooks&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;Hooks&lt;/code&gt; ya no son instrucciones en lenguaje natural. Son scripts.&lt;/p&gt;
&lt;p&gt;Son lógica de enforcement a nivel programa, disparada por eventos.&lt;/p&gt;
&lt;p&gt;Cuando ocurre cierto evento, esa lógica corre. No se salta porque el modelo la ignore.&lt;/p&gt;
&lt;p&gt;Ese es su valor:&lt;/p&gt;
&lt;p&gt;convierten &amp;ldquo;debería seguir esto&amp;rdquo; en &amp;ldquo;debe ejecutarse esto&amp;rdquo;.&lt;/p&gt;
&lt;h3 id=&#34;cuándo-subir-algo-a-hooks&#34;&gt;Cuándo subir algo a &lt;code&gt;Hooks&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Si una regla ya está escrita en &lt;code&gt;CLAUDE.md&lt;/code&gt; o &lt;code&gt;Rules&lt;/code&gt;, pero Claude todavía falla ocasionalmente, y el coste de fallar es real, probablemente debería ser un &lt;code&gt;Hook&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;En simple:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;comportamiento de bajo riesgo: reglas&lt;/li&gt;
&lt;li&gt;comportamiento de alto riesgo: &lt;code&gt;Hooks&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;escenarios-típicos&#34;&gt;Escenarios típicos
&lt;/h3&gt;&lt;p&gt;Ejemplos obvios:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;exigir confirmación antes de enviar un email&lt;/li&gt;
&lt;li&gt;exigir confirmación antes de enviar mensajes Slack, Outlook o Gmail&lt;/li&gt;
&lt;li&gt;interceptar borrados peligrosos de archivos&lt;/li&gt;
&lt;li&gt;bloquear fugas de contraseñas o API keys&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si solo están escritas como reglas, el modelo puede equivocarse algún día. Si son &lt;code&gt;Hooks&lt;/code&gt;, el evento se intercepta cada vez.&lt;/p&gt;
&lt;h3 id=&#34;puntos-de-disparo-comunes&#34;&gt;Puntos de disparo comunes
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;Hooks&lt;/code&gt; pueden engancharse en distintas etapas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;inyectar recordatorios al inicio de una conversación&lt;/li&gt;
&lt;li&gt;revisar condiciones antes de ejecutar una herramienta&lt;/li&gt;
&lt;li&gt;validar resultados después de ejecutar una herramienta&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No necesitas conocer toda la terminología formal. A menudo basta con describir claramente el requisito y preguntar a Claude si debería convertirse en hook.&lt;/p&gt;
&lt;p&gt;También puedes usar &lt;code&gt;/hook&lt;/code&gt; para inspeccionar hooks configurados.&lt;/p&gt;
&lt;h2 id=&#34;una-forma-práctica-de-empezar&#34;&gt;Una forma práctica de empezar
&lt;/h2&gt;&lt;p&gt;Recomiendo este orden:&lt;/p&gt;
&lt;h3 id=&#34;paso-1-usa-init-para-generar-un-claudemd-básico&#34;&gt;Paso 1: usa &lt;code&gt;/init&lt;/code&gt; para generar un &lt;code&gt;CLAUDE.md&lt;/code&gt; básico
&lt;/h3&gt;&lt;p&gt;No intentes escribir un enorme documento completo desde el inicio.&lt;/p&gt;
&lt;p&gt;Deja que Claude escanee el proyecto y genere un punto de partida, luego itera.&lt;/p&gt;
&lt;h3 id=&#34;paso-2-añade-cosas-mientras-trabajas&#34;&gt;Paso 2: añade cosas mientras trabajas
&lt;/h3&gt;&lt;p&gt;Cuando notes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;esto debe recordarse&lt;/li&gt;
&lt;li&gt;este error no debe repetirse&lt;/li&gt;
&lt;li&gt;esta preferencia aplicará siempre&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;pide a Claude que lo añada a &lt;code&gt;CLAUDE.md&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;paso-3-mueve-cosas-a-rules-cuando-claudemd-crezca&#34;&gt;Paso 3: mueve cosas a &lt;code&gt;Rules&lt;/code&gt; cuando &lt;code&gt;CLAUDE.md&lt;/code&gt; crezca
&lt;/h3&gt;&lt;p&gt;Cuando &lt;code&gt;CLAUDE.md&lt;/code&gt; se alarga y el modelo no sigue todo con fiabilidad:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;¿qué reglas son globales?&lt;/li&gt;
&lt;li&gt;¿cuáles solo aplican a ciertas rutas?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mueve las segundas a &lt;code&gt;Rules&lt;/code&gt; para carga condicional.&lt;/p&gt;
&lt;h3 id=&#34;paso-4-convierte-reglas-de-alto-riesgo-en-hooks&#34;&gt;Paso 4: convierte reglas de alto riesgo en &lt;code&gt;Hooks&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Si una regla sigue fallando y el coste de fallar es alto, no te quedes en lenguaje natural. Conviértela en &lt;code&gt;Hooks&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Ahí el &amp;ldquo;recordatorio&amp;rdquo; se vuelve &amp;ldquo;enforcement&amp;rdquo;.&lt;/p&gt;
&lt;h3 id=&#34;paso-5-deja-que-memory-maneje-estado-temporal&#34;&gt;Paso 5: deja que &lt;code&gt;Memory&lt;/code&gt; maneje estado temporal
&lt;/h3&gt;&lt;p&gt;Para cosas que expiran, cambian a menudo o no son política permanente, no lo metas todo en &lt;code&gt;CLAUDE.md&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Es más limpio dejar que &lt;code&gt;Memory&lt;/code&gt; guarde:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;progreso actual del proyecto&lt;/li&gt;
&lt;li&gt;colaboradores recientes&lt;/li&gt;
&lt;li&gt;preferencias recién añadidas&lt;/li&gt;
&lt;li&gt;planes y to-dos de corto plazo&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;qué-debería-guardar-cada-capa&#34;&gt;Qué debería guardar cada capa
&lt;/h2&gt;&lt;p&gt;Modelo mental rápido:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;: entendimiento compartido de largo plazo, instrucciones globales, contexto base del proyecto&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Rules&lt;/code&gt;: reglas especializadas cargadas por ruta o escenario&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Memory&lt;/code&gt;: conocimiento dinámico, estado temporal, cosas aprendidas recientemente&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Hooks&lt;/code&gt;: enforcement programático para acciones de alto riesgo&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;cierre&#34;&gt;Cierre
&lt;/h2&gt;&lt;p&gt;Mucha gente trata &lt;code&gt;Claude Code&lt;/code&gt; como &amp;ldquo;una interfaz de chat que escribe código&amp;rdquo;. Pero al usarlo a fondo, se siente más como una estación de trabajo inteligente de largo plazo.&lt;/p&gt;
&lt;p&gt;La clave no es solo cómo formulas cada instrucción. Es si le diste un entorno estable, claro y acumulativo.&lt;/p&gt;
&lt;p&gt;Cuando construyes estas cuatro capas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Rules&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Memory&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Hooks&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;la calidad de colaboración suele mejorar mucho.&lt;/p&gt;
&lt;p&gt;Porque ya no reexplicas desde cero quién eres, cómo trabajas y qué no debe pasar en cada sesión. Convertiste esas cosas en parte del entorno.&lt;/p&gt;
&lt;p&gt;Ese es el paso clave para convertir un modelo fuerte en una herramienta madura.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Ranking de rendimiento GPU en llama.cpp: cómo leer los scoreboards CUDA, ROCm y Vulkan con pp512 / tg128 / FA</title>
        <link>https://knightli.com/es/2026/04/23/llama-cpp-gpu-benchmark-cuda-rocm-vulkan-scoreboard/</link>
        <pubDate>Thu, 23 Apr 2026 10:22:04 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/23/llama-cpp-gpu-benchmark-cuda-rocm-vulkan-scoreboard/</guid>
        <description>&lt;p&gt;Los scoreboards de &lt;code&gt;llama.cpp&lt;/code&gt; son muy útiles, pero también son fáciles de malinterpretar si solo miras una cifra. En esas tablas suelen aparecer &lt;code&gt;CUDA&lt;/code&gt;, &lt;code&gt;ROCm&lt;/code&gt;, &lt;code&gt;Vulkan&lt;/code&gt;, &lt;code&gt;Q4_0&lt;/code&gt;, &lt;code&gt;pp512&lt;/code&gt;, &lt;code&gt;tg128&lt;/code&gt;, &lt;code&gt;FA&lt;/code&gt; y &lt;code&gt;t/s&lt;/code&gt;, y cada uno describe una dimensión diferente del benchmark.&lt;/p&gt;
&lt;p&gt;Este artículo resume cómo leer esas tablas y qué conclusiones prácticas conviene sacar antes de comparar GPUs.&lt;/p&gt;
&lt;h2 id=&#34;entender-primero-las-métricas&#34;&gt;Entender primero las métricas
&lt;/h2&gt;&lt;h3 id=&#34;qué-es-q4_0&#34;&gt;Qué es Q4_0
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;Q4_0&lt;/code&gt; es un formato de cuantización de 4 bits. No significa que el modelo sea más fuerte. Significa que el modelo es más pequeño, usa menos VRAM y cabe en más dispositivos.&lt;/p&gt;
&lt;p&gt;La mayoría de estos scoreboards estandarizan sobre &lt;code&gt;Llama 2 7B, Q4_0&lt;/code&gt; para que la comparación entre GPUs sea más sencilla.&lt;/p&gt;
&lt;h3 id=&#34;qué-es-pp512&#34;&gt;Qué es pp512
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;pp512&lt;/code&gt; suele significar &lt;code&gt;prompt processing 512 tokens&lt;/code&gt;, es decir, el throughput al procesar 512 tokens de entrada.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;pp&lt;/code&gt; = prompt processing&lt;/li&gt;
&lt;li&gt;&lt;code&gt;512&lt;/code&gt; = la entrada tiene 512 tokens&lt;/li&gt;
&lt;li&gt;&lt;code&gt;t/s&lt;/code&gt; = tokens por segundo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto se acerca más a la velocidad de ingestión del prompt, por eso suele ser mucho más alto que la velocidad de generación.&lt;/p&gt;
&lt;h3 id=&#34;qué-es-tg128&#34;&gt;Qué es tg128
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;tg128&lt;/code&gt; suele significar &lt;code&gt;text generation 128 tokens&lt;/code&gt;, es decir, la velocidad al generar 128 tokens de forma continua.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;tg&lt;/code&gt; = text generation&lt;/li&gt;
&lt;li&gt;&lt;code&gt;128&lt;/code&gt; = generar 128 tokens seguidos&lt;/li&gt;
&lt;li&gt;&lt;code&gt;t/s&lt;/code&gt; = tokens por segundo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esta métrica suele estar más cerca de la velocidad que el usuario percibe en uso interactivo.&lt;/p&gt;
&lt;h3 id=&#34;qué-es-fa&#34;&gt;Qué es FA
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;FA&lt;/code&gt; significa &lt;code&gt;Flash Attention&lt;/code&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;with FA&lt;/code&gt; significa que Flash Attention está activado&lt;/li&gt;
&lt;li&gt;&lt;code&gt;no FA&lt;/code&gt; significa que Flash Attention está desactivado&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En muchas GPUs, FA mejora &lt;code&gt;pp512&lt;/code&gt; con más claridad que &lt;code&gt;tg128&lt;/code&gt;, pero la ganancia no es idéntica entre backends, drivers y arquitecturas GPU.&lt;/p&gt;
&lt;h3 id=&#34;cómo-leer-ts&#34;&gt;Cómo leer t/s
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;t/s&lt;/code&gt; significa &lt;code&gt;tokens per second&lt;/code&gt;. La regla clave es comparar el mismo tipo de prueba con los mismos ajustes.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No compares &lt;code&gt;pp512&lt;/code&gt; y &lt;code&gt;tg128&lt;/code&gt; como si fueran lo mismo.&lt;/li&gt;
&lt;li&gt;No mezcles resultados &lt;code&gt;no FA&lt;/code&gt; con &lt;code&gt;with FA&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;No asumas que CUDA, ROCm y Vulkan son directamente intercambiables.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;conclusiones-rápidas&#34;&gt;Conclusiones rápidas
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;CUDA sigue siendo la ruta más fuerte en conjunto para benchmarks GPU de &lt;code&gt;llama.cpp&lt;/code&gt;, especialmente en GPUs Nvidia de gama alta.&lt;/li&gt;
&lt;li&gt;ROCm ya ofrece resultados fuertes en GPUs AMD de gama alta y aceleradores Instinct.&lt;/li&gt;
&lt;li&gt;Vulkan tiene la cobertura de hardware más amplia, incluyendo Nvidia, AMD, Intel, GPUs antiguas y algunos setups Apple / Asahi.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tg128&lt;/code&gt; se acerca más a la velocidad percibida en uso diario, mientras &lt;code&gt;pp512&lt;/code&gt; es mejor para juzgar throughput de prompt.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;cómo-usar-las-tablas&#34;&gt;Cómo usar las tablas
&lt;/h2&gt;&lt;h3 id=&#34;1-decide-si-te-importa-más-tg128-o-pp512&#34;&gt;1. Decide si te importa más tg128 o pp512
&lt;/h3&gt;&lt;p&gt;Para chat y uso interactivo, &lt;code&gt;tg128&lt;/code&gt; suele importar más. Para prompts largos, batch processing o workloads de ingestión, &lt;code&gt;pp512&lt;/code&gt; pesa más.&lt;/p&gt;
&lt;h3 id=&#34;2-compara-el-backend-que-realmente-usas&#34;&gt;2. Compara el backend que realmente usas
&lt;/h3&gt;&lt;p&gt;Usuarios Nvidia deberían priorizar CUDA. Usuarios AMD deberían comparar primero ROCm y Vulkan. Si necesitas compatibilidad amplia o hardware mixto, presta atención a Vulkan.&lt;/p&gt;
&lt;h3 id=&#34;3-mira-fa-al-final&#34;&gt;3. Mira FA al final
&lt;/h3&gt;&lt;p&gt;En muchas GPUs, activar FA mejora más &lt;code&gt;pp512&lt;/code&gt; que &lt;code&gt;tg128&lt;/code&gt;, así que una sola cifra destacada puede ser engañosa.&lt;/p&gt;
&lt;h3 id=&#34;4-no-compares-generaciones-solo-por-memoria&#34;&gt;4. No compares generaciones solo por memoria
&lt;/h3&gt;&lt;p&gt;Una GPU con más VRAM no siempre gana en &lt;code&gt;tg128&lt;/code&gt;. La generación token a token puede depender mucho de ancho de banda, caché, backend, kernel y optimizaciones del runtime.&lt;/p&gt;
&lt;h3 id=&#34;5-usa-las-tablas-como-orientación-no-como-garantía&#34;&gt;5. Usa las tablas como orientación, no como garantía
&lt;/h3&gt;&lt;p&gt;Los scoreboards son aportes comunitarios. Pueden variar por commit, driver, sistema operativo, flags de compilación, versión de &lt;code&gt;llama.cpp&lt;/code&gt;, temperatura y configuración de energía.&lt;/p&gt;
&lt;h2 id=&#34;qué-muestran-en-general-los-scoreboards&#34;&gt;Qué muestran en general los scoreboards
&lt;/h2&gt;&lt;p&gt;En las tablas CUDA, las GPUs Nvidia modernas de gama alta, como RTX 5090, RTX PRO 6000 Blackwell, H100, A100, RTX 4090 y RTX 5080, ocupan los rangos superiores. El patrón general confirma que CUDA sigue siendo la ruta más madura para Nvidia.&lt;/p&gt;
&lt;p&gt;En las tablas ROCm / HIP, aceleradores como MI300X y tarjetas AMD de gama alta como RX 7900 XTX muestran resultados fuertes. Esto confirma que ROCm ya es una ruta seria, aunque la experiencia puede depender mucho de soporte de driver y plataforma.&lt;/p&gt;
&lt;p&gt;En las tablas Vulkan, el valor principal es la amplitud. Aparecen Nvidia, AMD, Intel, Apple vía MoltenVK / Asahi, GPUs antiguas y GPUs integradas. Vulkan no siempre es la ruta más rápida, pero suele ser la más flexible para comparar hardware diverso.&lt;/p&gt;
&lt;h2 id=&#34;resumen-en-una-frase&#34;&gt;Resumen en una frase
&lt;/h2&gt;&lt;p&gt;En benchmarks de &lt;code&gt;llama.cpp&lt;/code&gt;, &lt;code&gt;pp512&lt;/code&gt;, &lt;code&gt;tg128&lt;/code&gt;, &lt;code&gt;Q4_0&lt;/code&gt;, &lt;code&gt;FA&lt;/code&gt; y &lt;code&gt;CUDA&lt;/code&gt; / &lt;code&gt;ROCm&lt;/code&gt; / &lt;code&gt;Vulkan&lt;/code&gt; describen dimensiones distintas. Cuando entiendes el contexto del benchmark, las tablas se vuelven mucho más fáciles de leer.&lt;/p&gt;
&lt;h2 id=&#34;fuentes&#34;&gt;Fuentes
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;CUDA discussion #15013: &lt;a class=&#34;link&#34; href=&#34;https://github.com/ggml-org/llama.cpp/discussions/15013&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/ggml-org/llama.cpp/discussions/15013&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Apple Silicon discussion #4167: &lt;a class=&#34;link&#34; href=&#34;https://github.com/ggml-org/llama.cpp/discussions/4167&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/ggml-org/llama.cpp/discussions/4167&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ROCm discussion #15021: &lt;a class=&#34;link&#34; href=&#34;https://github.com/ggml-org/llama.cpp/discussions/15021&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/ggml-org/llama.cpp/discussions/15021&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Vulkan discussion #10879: &lt;a class=&#34;link&#34; href=&#34;https://github.com/ggml-org/llama.cpp/discussions/10879&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/ggml-org/llama.cpp/discussions/10879&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Qué significan realmente las métricas comunes de benchmark GPU: FA, pp512, tg128 y Q4_0</title>
        <link>https://knightli.com/es/2026/04/23/how-to-read-llm-cuda-scoreboard-fa-pp512-tg128-q4-0/</link>
        <pubDate>Thu, 23 Apr 2026 00:15:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/23/how-to-read-llm-cuda-scoreboard-fa-pp512-tg128-q4-0/</guid>
        <description>&lt;p&gt;En cuanto empiezas a mirar benchmarks de LLM locales o inferencia GPU, aparece una pila de abreviaturas: &lt;code&gt;FA&lt;/code&gt;, &lt;code&gt;pp512&lt;/code&gt;, &lt;code&gt;tg128&lt;/code&gt; y &lt;code&gt;Q4_0&lt;/code&gt;. Todas parecen métricas de rendimiento, pero sin contexto pueden ser sorprendentemente difíciles de interpretar.&lt;/p&gt;
&lt;p&gt;Por ejemplo, puedes ver una línea como:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;CUDA Scoreboard for Llama 2 7B, Q4_0 (no FA)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Y justo debajo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pp512 t/s
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;tg128 t/s
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si no desarmas estos términos, cuesta entender qué mide realmente el benchmark o cómo comparar los resultados de dos GPUs distintas.&lt;/p&gt;
&lt;p&gt;Este artículo no trata sobre qué GPU conviene comprar. Trata específicamente de explicar las métricas más comunes que aparecen en benchmarks de inferencia GPU.&lt;/p&gt;
&lt;h2 id=&#34;primero-qué-dice-realmente-la-línea-del-título&#34;&gt;Primero, qué dice realmente la línea del título
&lt;/h2&gt;&lt;p&gt;Una línea como &lt;code&gt;CUDA Scoreboard for Llama 2 7B, Q4_0 (no FA)&lt;/code&gt; ya te cuenta casi todo el setup de prueba.&lt;/p&gt;
&lt;p&gt;Como mínimo, contiene cuatro capas de información:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CUDA&lt;/code&gt;: el benchmark corre por la ruta NVIDIA CUDA&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Llama 2 7B&lt;/code&gt;: el modelo probado es la versión 7B de &lt;code&gt;Llama 2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q4_0&lt;/code&gt;: el modelo usa un formato cuantizado de 4 bits&lt;/li&gt;
&lt;li&gt;&lt;code&gt;no FA&lt;/code&gt;: &lt;code&gt;Flash Attention&lt;/code&gt; estuvo desactivado en esta prueba&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En términos prácticos, este título suele significar:&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Un benchmark de un modelo grande cuantizado corriendo en una GPU NVIDIA, medido bajo una ruta de inferencia concreta.&amp;rdquo;&lt;/p&gt;
&lt;h2 id=&#34;qué-significa-fa-flash-attention&#34;&gt;Qué significa FA: Flash Attention
&lt;/h2&gt;&lt;p&gt;Aquí, &lt;code&gt;FA&lt;/code&gt; significa &lt;code&gt;Flash Attention&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Es una de las técnicas de aceleración más importantes en entrenamiento e inferencia de modelos grandes, principalmente porque optimiza cómo se calcula la atención. En modelos Transformer, la atención ya es una de las partes más caras y más intensivas en ancho de banda de memoria.&lt;/p&gt;
&lt;p&gt;Una implementación tradicional de atención suele sufrir:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;lecturas y escrituras frecuentes de memoria&lt;/li&gt;
&lt;li&gt;muchos resultados intermedios&lt;/li&gt;
&lt;li&gt;movimiento repetido entre VRAM y caché on-chip&lt;/li&gt;
&lt;li&gt;overhead que crece rápido al aumentar el contexto&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Lo que hace &lt;code&gt;Flash Attention&lt;/code&gt;, en términos simples, es:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;reorganizar el orden de cálculo&lt;/li&gt;
&lt;li&gt;reducir cuántas veces los resultados intermedios vuelven a VRAM&lt;/li&gt;
&lt;li&gt;mantener más trabajo dentro de caché rápida&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Eso le da tres ventajas típicas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;es más rápida&lt;/li&gt;
&lt;li&gt;ahorra memoria&lt;/li&gt;
&lt;li&gt;es matemáticamente equivalente a la atención estándar, no un atajo de menor precisión&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por eso muchos frameworks modernos de inferencia y entrenamiento la tratan como una optimización clave.&lt;/p&gt;
&lt;h2 id=&#34;qué-significa-no-fa&#34;&gt;Qué significa no FA
&lt;/h2&gt;&lt;p&gt;Si &lt;code&gt;FA&lt;/code&gt; significa &lt;code&gt;Flash Attention&lt;/code&gt;, &lt;code&gt;no FA&lt;/code&gt; simplemente significa que no se activó &lt;code&gt;Flash Attention&lt;/code&gt; para esa prueba.&lt;/p&gt;
&lt;p&gt;Es decir, el benchmark se midió usando una implementación de atención más tradicional.&lt;/p&gt;
&lt;p&gt;Las tablas suelen marcar explícitamente &lt;code&gt;no FA&lt;/code&gt; por varias razones:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;mantener una línea base de comparación&lt;/li&gt;
&lt;li&gt;soportar hardware o software donde &lt;code&gt;FA&lt;/code&gt; no está disponible&lt;/li&gt;
&lt;li&gt;evitar mezclar resultados de condiciones de optimización distintas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Así que cuando veas &lt;code&gt;no FA&lt;/code&gt;, no lo leas como &amp;ldquo;esta GPU es débil&amp;rdquo;. Una lectura más precisa es:&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Esta puntuación se midió sin Flash Attention activado.&amp;rdquo;&lt;/p&gt;
&lt;h2 id=&#34;qué-significa-q4_0-un-formato-de-cuantización&#34;&gt;Qué significa Q4_0: un formato de cuantización
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Q4_0&lt;/code&gt; se refiere a un formato de cuantización de 4 bits.&lt;/p&gt;
&lt;p&gt;Los pesos del modelo original normalmente no se guardan con tan baja precisión. La cuantización comprime pesos de mayor precisión en una representación de menos bits para que el modelo sea más fácil de ejecutar en GPUs de consumo.&lt;/p&gt;
&lt;p&gt;Una forma aproximada de pensarlo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Q&lt;/code&gt;: Quantization&lt;/li&gt;
&lt;li&gt;&lt;code&gt;4&lt;/code&gt;: 4-bit&lt;/li&gt;
&lt;li&gt;&lt;code&gt;_0&lt;/code&gt;: identificador de un esquema concreto de cuantización&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Su importancia práctica es directa:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;menor tamaño de modelo&lt;/li&gt;
&lt;li&gt;menos requisitos de VRAM&lt;/li&gt;
&lt;li&gt;más probabilidad de caber en hardware de consumo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Así que &lt;code&gt;Llama 2 7B, Q4_0&lt;/code&gt; no significa solo &amp;ldquo;un modelo 7B normal&amp;rdquo;. Significa &amp;ldquo;un modelo 7B ya comprimido con un formato de cuantización de 4 bits.&amp;rdquo;&lt;/p&gt;
&lt;h2 id=&#34;qué-significa-pp512-ts&#34;&gt;Qué significa pp512 t/s
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;pp512&lt;/code&gt; suele significar:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Prompt Processing 512 tokens&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Mide qué tan rápido el modelo procesa el prompt de entrada, normalmente en &lt;code&gt;t/s&lt;/code&gt;, es decir, &lt;code&gt;tokens per second&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Aquí, &lt;code&gt;512&lt;/code&gt; significa que la longitud de prompt usada en la prueba fue de &lt;code&gt;512 tokens&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Esta métrica no mide velocidad de salida. Mide qué tan rápido el modelo codifica y calcula sobre la entrada antes de empezar a responder. Puedes pensarla como la velocidad de la etapa &amp;ldquo;leer primero el prompt&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Una propiedad importante de esta etapa es que normalmente es mucho más paralelizable.&lt;/p&gt;
&lt;p&gt;Como la secuencia de entrada puede procesarse en batches, la GPU puede mantener sus unidades de cómputo muy ocupadas. Por eso los números de &lt;code&gt;pp512&lt;/code&gt; pueden verse extremadamente altos.&lt;/p&gt;
&lt;p&gt;Si ves algo como:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pp512 ~= 14000 t/s
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;no hay razón para preocuparse. Mide throughput de procesamiento de prompt, no velocidad de generación token por token.&lt;/p&gt;
&lt;h2 id=&#34;qué-significa-tg128-ts&#34;&gt;Qué significa tg128 t/s
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;tg128&lt;/code&gt; suele significar:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Text Generation 128 tokens&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Mide la velocidad media de generar &lt;code&gt;128 tokens&lt;/code&gt;, también en &lt;code&gt;t/s&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Esta métrica está mucho más cerca de lo que la gente quiere decir intuitivamente cuando pregunta si un modelo se siente rápido, porque mide directamente la etapa de salida.&lt;/p&gt;
&lt;p&gt;La diferencia principal frente a &lt;code&gt;pp512&lt;/code&gt; es que la generación de texto suele ser autoregresiva.&lt;/p&gt;
&lt;p&gt;Eso significa:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;el modelo debe generar el primer token&lt;/li&gt;
&lt;li&gt;luego usarlo para generar el segundo&lt;/li&gt;
&lt;li&gt;y seguir así&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esta etapa no puede paralelizarse como el procesamiento de prompt, así que naturalmente es mucho más lenta.&lt;/p&gt;
&lt;p&gt;Por eso es normal ver:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;pp512&lt;/code&gt; en decenas de miles de &lt;code&gt;t/s&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tg128&lt;/code&gt; solo en cientos de &lt;code&gt;t/s&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No es un error de benchmark. Son workloads fundamentalmente distintos.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-pp512-y-tg128-difieren-tanto&#34;&gt;Por qué pp512 y tg128 difieren tanto
&lt;/h2&gt;&lt;p&gt;Esta suele ser la primera confusión al leer un scoreboard.&lt;/p&gt;
&lt;p&gt;La explicación corta:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;pp512&lt;/code&gt; mide algo más cercano al throughput paralelo, mientras &lt;code&gt;tg128&lt;/code&gt; mide capacidad de generación token por token.&lt;/p&gt;
&lt;p&gt;Más detalladamente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;la etapa de entrada es más fácil de paralelizar&lt;/li&gt;
&lt;li&gt;la etapa de salida depende de generación secuencial&lt;/li&gt;
&lt;li&gt;la generación suele ser más sensible a ancho de banda y caché&lt;/li&gt;
&lt;li&gt;por eso la generación es mucho más lenta que el procesamiento de prompt&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto también explica un patrón interesante:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;una GPU puede ser más fuerte en &lt;code&gt;pp512&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;otra puede terminar ligeramente más rápida en &lt;code&gt;tg128&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No es contradictorio. Una métrica se inclina más hacia throughput de cómputo pico; la otra refleja comportamiento de memoria y latencia en la ruta de generación.&lt;/p&gt;
&lt;h2 id=&#34;cómo-pensar-sobre-ts&#34;&gt;Cómo pensar sobre t/s
&lt;/h2&gt;&lt;p&gt;Aquí, &lt;code&gt;t/s&lt;/code&gt; significa &lt;code&gt;tokens per second&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Indica cuántos tokens el modelo puede procesar o generar por segundo.&lt;/p&gt;
&lt;p&gt;Pero hay una salvedad importante: un &lt;code&gt;token&lt;/code&gt; no equivale exactamente a un carácter o una palabra. Es la unidad producida por el tokenizer del modelo, y su longitud real puede variar mucho entre modelos e idiomas.&lt;/p&gt;
&lt;p&gt;En la práctica, &lt;code&gt;t/s&lt;/code&gt; sirve sobre todo para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;comparar GPUs con el mismo modelo&lt;/li&gt;
&lt;li&gt;comparar ajustes distintos en el mismo entorno&lt;/li&gt;
&lt;li&gt;comparar un framework antes y después de activar una optimización concreta&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Es mucho menos fiable como métrica absoluta universal entre modelos, frameworks y tokenizers distintos.&lt;/p&gt;
&lt;h2 id=&#34;en-qué-fijarse-primero-al-leer-un-scoreboard&#34;&gt;En qué fijarse primero al leer un scoreboard
&lt;/h2&gt;&lt;p&gt;Si no quieres enterrarte bajo abreviaturas, empieza por estas preguntas.&lt;/p&gt;
&lt;h3 id=&#34;1-qué-modelo-se-está-probando&#34;&gt;1. Qué modelo se está probando
&lt;/h3&gt;&lt;p&gt;¿Es &lt;code&gt;Llama 2 7B&lt;/code&gt;? ¿Es la misma variante cuantizada, como &lt;code&gt;Q4_0&lt;/code&gt;? Si cambia el modelo o el formato de cuantización, comparar directamente pierde sentido.&lt;/p&gt;
&lt;h3 id=&#34;2-si-las-optimizaciones-clave-están-activadas&#34;&gt;2. Si las optimizaciones clave están activadas
&lt;/h3&gt;&lt;p&gt;El ejemplo más común es &lt;code&gt;FA&lt;/code&gt;. Si un benchmark usa &lt;code&gt;Flash Attention&lt;/code&gt; y otro no, las puntuaciones no son directamente comparables.&lt;/p&gt;
&lt;h3 id=&#34;3-si-la-métrica-mide-entrada-o-salida&#34;&gt;3. Si la métrica mide entrada o salida
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;pp512&lt;/code&gt; y &lt;code&gt;tg128&lt;/code&gt; miden etapas distintas. Una se acerca a velocidad de lectura de prompt; la otra a velocidad de generación de respuesta.&lt;/p&gt;
&lt;h3 id=&#34;4-si-te-importa-throughput-o-sensación-de-uso&#34;&gt;4. Si te importa throughput o sensación de uso
&lt;/h3&gt;&lt;p&gt;Si te importa procesar rápido un prompt largo, &lt;code&gt;pp512&lt;/code&gt; pesa más. Si te importa qué tan rápido se siente el modelo al responder, &lt;code&gt;tg128&lt;/code&gt; suele estar más cerca de la experiencia real.&lt;/p&gt;
&lt;h2 id=&#34;una-forma-práctica-de-recordarlo&#34;&gt;Una forma práctica de recordarlo
&lt;/h2&gt;&lt;p&gt;Puedes resumirlo así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Q4_0&lt;/code&gt;: el modelo está comprimido en una versión cuantizada de 4 bits&lt;/li&gt;
&lt;li&gt;&lt;code&gt;FA&lt;/code&gt;: si Flash Attention está activado&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pp512&lt;/code&gt;: velocidad para procesar una entrada de 512 tokens&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tg128&lt;/code&gt;: velocidad para generar una salida de 128 tokens&lt;/li&gt;
&lt;li&gt;&lt;code&gt;t/s&lt;/code&gt;: unidad de velocidad, tokens por segundo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Con esos cinco puntos claros, es mucho más fácil juzgar qué mide realmente un CUDA Scoreboard.&lt;/p&gt;
&lt;h2 id=&#34;cierre&#34;&gt;Cierre
&lt;/h2&gt;&lt;p&gt;Las tablas de benchmark GPU a menudo parecen más complicadas de lo que son, no porque las métricas sean misteriosas, sino porque identidad del modelo, cuantización, flags de optimización y etapas distintas de throughput se comprimen en abreviaturas cortas.&lt;/p&gt;
&lt;p&gt;Cuando desarmas términos como &lt;code&gt;FA&lt;/code&gt;, &lt;code&gt;Q4_0&lt;/code&gt;, &lt;code&gt;pp512&lt;/code&gt; y &lt;code&gt;tg128&lt;/code&gt;, estas tablas se vuelven mucho más legibles.&lt;/p&gt;
&lt;p&gt;Lo importante no es recordar solo una puntuación, sino saber:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;de qué configuración de modelo viene&lt;/li&gt;
&lt;li&gt;si las optimizaciones clave estaban activadas&lt;/li&gt;
&lt;li&gt;si midió entrada o salida&lt;/li&gt;
&lt;li&gt;si refleja throughput de cómputo o algo más cercano a la sensación real de generación&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Eso facilita juzgar qué significan realmente los resultados.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Guía práctica de formatos tensoriales comunes en LLMs: FP32, FP16, BF16, TF32 y FP8</title>
        <link>https://knightli.com/es/2026/04/22/common-tensor-formats-fp32-fp16-bf16-tf32-fp8/</link>
        <pubDate>Wed, 22 Apr 2026 22:40:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/22/common-tensor-formats-fp32-fp16-bf16-tf32-fp8/</guid>
        <description>&lt;p&gt;En cuanto empiezas a trabajar con entrenamiento, inferencia o despliegue de modelos grandes, aparece un conjunto familiar de abreviaturas: &lt;code&gt;FP32&lt;/code&gt;, &lt;code&gt;FP16&lt;/code&gt;, &lt;code&gt;BF16&lt;/code&gt;, &lt;code&gt;TF32&lt;/code&gt; y &lt;code&gt;FP8&lt;/code&gt;. Parecen pequeñas etiquetas en una página de modelo, pero su impacto es mucho mayor que una diferencia de nombre.&lt;/p&gt;
&lt;p&gt;Estos formatos determinan cómo se almacenan los números en memoria y cómo se representan durante el cálculo. Afectan directamente la estabilidad del entrenamiento, la velocidad de inferencia e incluso qué tamaño de modelo puede manejar realmente una GPU.&lt;/p&gt;
&lt;p&gt;Así que si quieres entender los tradeoffs de precisión en modelos grandes, uno de los mejores puntos de partida no es una tabla de benchmarks de un modelo concreto, sino una imagen clara de qué son estos formatos tensoriales y por qué se diseñaron así.&lt;/p&gt;
&lt;h2 id=&#34;qué-determinan-realmente-los-formatos-tensoriales&#34;&gt;Qué determinan realmente los formatos tensoriales
&lt;/h2&gt;&lt;p&gt;En esencia, un modelo grande es un conjunto masivo de operaciones matriciales sobre enormes cantidades de parámetros, y el formato tensorial es cómo esos números se almacenan en memoria y se representan durante el cálculo.&lt;/p&gt;
&lt;p&gt;El tradeoff suele girar alrededor de tres dimensiones:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;precisión&lt;/li&gt;
&lt;li&gt;uso de VRAM&lt;/li&gt;
&lt;li&gt;velocidad de cómputo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Se parece bastante a los formatos de imagen. Los formatos sin pérdida preservan más detalle, pero ocupan más espacio y cargan más lento. Los formatos comprimidos descartan información menos perceptible a cambio de menor tamaño y manejo más rápido. Los modelos grandes aceptan tradeoffs similares porque, en conjuntos enormes de parámetros, muchos cambios numéricos diminutos no afectan significativamente la salida final.&lt;/p&gt;
&lt;p&gt;Por eso el mundo de modelos desarrolló toda una familia de formatos de precisión.&lt;/p&gt;
&lt;h2 id=&#34;cómo-se-representa-un-número&#34;&gt;Cómo se representa un número
&lt;/h2&gt;&lt;p&gt;Antes de entrar en formatos, conviene recordar una estructura básica. Un número de punto flotante suele tener tres partes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;bit de signo: determina positivo o negativo&lt;/li&gt;
&lt;li&gt;bits de exponente: determinan rango numérico&lt;/li&gt;
&lt;li&gt;bits de mantisa: determinan detalle numérico&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En modelos grandes, la precisión de mantisa importa, pero muchos modelos son incluso más sensibles a un rango numérico insuficiente, es decir, muy pocos bits de exponente y mayor riesgo de overflow o entrenamiento inestable. Mucho del diseño de formatos tensoriales consiste en redistribuir un número limitado de bits entre rango y detalle.&lt;/p&gt;
&lt;p&gt;El diagrama siguiente da una vista general:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/04/22/common-tensor-formats-fp32-fp16-bf16-tf32-fp8/tensor-format-overview.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Overview of the bit layouts of FP32, FP16, BF16, TF32, and FP8&#34;
	
	
&gt;&lt;/p&gt;
&lt;h2 id=&#34;fp32-el-más-estable-pero-caro&#34;&gt;FP32: el más estable, pero caro
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;FP32&lt;/code&gt; es el formato tradicional de punto flotante de precisión simple. Usa 32 bits en total, o 4 bytes.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/04/22/common-tensor-formats-fp32-fp16-bf16-tf32-fp8/fp32-layout.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;FP32 bit layout diagram&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Sus fortalezas son claras:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;rango numérico amplio&lt;/li&gt;
&lt;li&gt;alta precisión&lt;/li&gt;
&lt;li&gt;comportamiento de entrenamiento más estable&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La desventaja es igual de clara: consume mucha VRAM.&lt;/p&gt;
&lt;p&gt;Una estimación muy aproximada:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;VRAM usage ~= parameter count * bytes per parameter
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si un modelo 27B guarda pesos enteramente en &lt;code&gt;FP32&lt;/code&gt;, solo los pesos ocupan aproximadamente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;27B * 4 bytes ~= 108GB
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Y eso no incluye activaciones, KV cache, estado del optimizador u otros overheads. Por eso, en entrenamiento e inferencia modernos, &lt;code&gt;FP32&lt;/code&gt; ya no es tanto el formato predeterminado como la línea base más estable.&lt;/p&gt;
&lt;h2 id=&#34;fp16-mitad-de-tamaño-pero-menos-estable&#34;&gt;FP16: mitad de tamaño, pero menos estable
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;FP16&lt;/code&gt; comprime cada parámetro a 2 bytes, reduciendo memoria aproximadamente a la mitad frente a &lt;code&gt;FP32&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/04/22/common-tensor-formats-fp32-fp16-bf16-tf32-fp8/fp16-layout.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;FP16 bit layout diagram&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Para el mismo modelo 27B, mirando solo tamaño de pesos:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;27B * 2 bytes ~= 54GB
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Eso ya explica por qué muchas guías colocan un modelo 27B alrededor de 50GB de VRAM.&lt;/p&gt;
&lt;p&gt;Ventajas de &lt;code&gt;FP16&lt;/code&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;mucha menos presión de VRAM&lt;/li&gt;
&lt;li&gt;mayor throughput&lt;/li&gt;
&lt;li&gt;uso amplio en entrenamiento mixed-precision temprano&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Su debilidad es el rango de exponente relativamente pequeño. En entrenamiento de modelos grandes, eso hace más probable el overflow y suele requerir técnicas extra como loss scaling, añadiendo complejidad de ingeniería.&lt;/p&gt;
&lt;p&gt;Así que &lt;code&gt;FP16&lt;/code&gt; sigue siendo común, pero en muchos escenarios ya no es la opción más cómoda.&lt;/p&gt;
&lt;h2 id=&#34;bf16-una-half-precision-más-práctica-para-la-era-de-modelos-grandes&#34;&gt;BF16: una half precision más práctica para la era de modelos grandes
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;BF16&lt;/code&gt; también usa 2 bytes, pero hace un tradeoff distinto a &lt;code&gt;FP16&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/04/22/common-tensor-formats-fp32-fp16-bf16-tf32-fp8/bf16-layout.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;BF16 bit layout diagram&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Mantiene un rango de exponente mucho mayor, acercando su rango dinámico a &lt;code&gt;FP32&lt;/code&gt;, mientras sacrifica algo de precisión de mantisa. Ese tradeoff funciona especialmente bien en modelos grandes, porque suelen ser más sensibles al rango que a perder unos pocos bits de mantisa.&lt;/p&gt;
&lt;p&gt;Por eso muchos frameworks de entrenamiento, papers de modelos grandes y setups reales prefieren &lt;code&gt;BF16&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Una forma simple de pensarlo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;coste de VRAM cercano a &lt;code&gt;FP16&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;estabilidad más cercana a &lt;code&gt;FP32&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si una guía de despliegue 27B pide alrededor de 50GB de VRAM y otra optimizada se acerca a 30GB, la primera suele vivir aún en la capa &lt;code&gt;FP16/BF16&lt;/code&gt;, mientras la segunda normalmente avanzó hacia menor precisión o cuantización.&lt;/p&gt;
&lt;h2 id=&#34;tf32-no-ahorra-vram-acelera-flujos-fp32&#34;&gt;TF32: no ahorra VRAM, acelera flujos FP32
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;TF32&lt;/code&gt; es fácil de confundir con otro formato de ahorro de memoria, pero su rol es distinto.&lt;/p&gt;
&lt;p&gt;En términos comunes, puedes pensarlo como un formato de cómputo que mantiene un rango de exponente grande y acorta la precisión de mantisa.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/04/22/common-tensor-formats-fp32-fp16-bf16-tf32-fp8/tf32-layout.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;TF32 computation format diagram&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Pero es importante notar que &lt;code&gt;TF32&lt;/code&gt; se parece más a un formato interno de cálculo usado en la ruta Tensor Core, no algo usado principalmente para almacenar pesos como &lt;code&gt;FP16&lt;/code&gt; o &lt;code&gt;BF16&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Es sobre todo un modo de cómputo que NVIDIA ofrece en GPUs nuevas. El objetivo no es reducir VRAM, sino hacer que flujos originalmente basados en &lt;code&gt;FP32&lt;/code&gt; corran más rápido sin grandes cambios de código.&lt;/p&gt;
&lt;p&gt;Su rol se resume así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;externamente sigue pareciendo un flujo &lt;code&gt;FP32&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;internamente ejecuta math matricial aproximada más rápida&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Así que &lt;code&gt;TF32&lt;/code&gt; resuelve principalmente que &lt;code&gt;FP32&lt;/code&gt; es demasiado lento, no que use demasiada memoria. Si tu pregunta es por qué el mismo modelo puede tener requisitos de VRAM muy distintos, &lt;code&gt;TF32&lt;/code&gt; no es la respuesta principal.&lt;/p&gt;
&lt;h2 id=&#34;fp8-más-compresión-pero-exige-mucha-más-ingeniería&#34;&gt;FP8: más compresión, pero exige mucha más ingeniería
&lt;/h2&gt;&lt;p&gt;Un paso más lleva a &lt;code&gt;FP8&lt;/code&gt;. Comprime cada valor en aún menos bits, reduciendo más el ancho de banda de memoria y el coste de almacenamiento.&lt;/p&gt;
&lt;p&gt;Normalmente no aparece como un único formato, sino como dos variantes comunes: &lt;code&gt;E4M3&lt;/code&gt; y &lt;code&gt;E5M2&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/04/22/common-tensor-formats-fp32-fp16-bf16-tf32-fp8/fp8-layout.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;FP8 variant diagram&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Pero &lt;code&gt;FP8&lt;/code&gt; tiene un coste obvio: con tan pocos bits, es muy difícil preservar rango y precisión al mismo tiempo. En la práctica, distintas variantes se usan en distintas etapas para equilibrar forward pass, backward pass y gradientes.&lt;/p&gt;
&lt;p&gt;Esta familia representa una estrategia más agresiva:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;renunciar a más precisión&lt;/li&gt;
&lt;li&gt;ganar menor coste de almacenamiento y mayor throughput&lt;/li&gt;
&lt;li&gt;depender de hardware y frameworks más maduros&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tiene mucho potencial, pero para la mayoría de usuarios las divisiones prácticas principales siguen siendo &lt;code&gt;FP32&lt;/code&gt;, &lt;code&gt;FP16&lt;/code&gt; y &lt;code&gt;BF16&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-importa-entender-estos-formatos&#34;&gt;Por qué importa entender estos formatos
&lt;/h2&gt;&lt;p&gt;Mucha gente primero trata estas abreviaturas como detalles de implementación en una página de descarga. Pero en la práctica cambian cómo piensas sobre entrenamiento y despliegue.&lt;/p&gt;
&lt;p&gt;Por ejemplo, ayudan a explicar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;por qué algunos setups de entrenamiento se preocupan tanto por la estabilidad numérica&lt;/li&gt;
&lt;li&gt;por qué algunas stacks de inferencia priorizan cuantización y baja precisión&lt;/li&gt;
&lt;li&gt;por qué modelos con conteos de parámetros similares pueden tener requisitos de despliegue muy distintos&lt;/li&gt;
&lt;li&gt;por qué algunos formatos son mejores para almacenar pesos y otros tienen más sentido como rutas de cómputo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si sigues desarmando esas preguntas, vuelves al mismo punto: cómo eliges intercambiar precisión, rango, memoria y velocidad.&lt;/p&gt;
&lt;p&gt;Por eso entender &lt;code&gt;FP32&lt;/code&gt;, &lt;code&gt;FP16&lt;/code&gt;, &lt;code&gt;BF16&lt;/code&gt;, &lt;code&gt;TF32&lt;/code&gt; y &lt;code&gt;FP8&lt;/code&gt; no es solo decodificar un glosario. Es entender qué se está intercambiando realmente al leer una config de entrenamiento, elegir un motor de inferencia o comparar opciones de despliegue.&lt;/p&gt;
&lt;h2 id=&#34;un-modelo-mental-práctico&#34;&gt;Un modelo mental práctico
&lt;/h2&gt;&lt;p&gt;Si no quieres memorizar todos los detalles de inmediato, ayuda recordarlos así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;FP32&lt;/code&gt;: más estable, más caro&lt;/li&gt;
&lt;li&gt;&lt;code&gt;FP16&lt;/code&gt;: menos uso de VRAM, pero menor rango&lt;/li&gt;
&lt;li&gt;&lt;code&gt;BF16&lt;/code&gt;: coste de VRAM similar a &lt;code&gt;FP16&lt;/code&gt;, pero estabilidad más adecuada para modelos grandes&lt;/li&gt;
&lt;li&gt;&lt;code&gt;TF32&lt;/code&gt;: resuelve principalmente lentitud de &lt;code&gt;FP32&lt;/code&gt;, no uso de VRAM&lt;/li&gt;
&lt;li&gt;&lt;code&gt;FP8&lt;/code&gt;: ruta más agresiva de compresión y aceleración&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/04/22/common-tensor-formats-fp32-fp16-bf16-tf32-fp8/tensor-format-summary.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Summary chart of common tensor formats&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Después, cuando veas &lt;code&gt;fp16&lt;/code&gt;, &lt;code&gt;bf16&lt;/code&gt; o &lt;code&gt;fp8&lt;/code&gt; en una página de modelo, o cuando distintas guías den umbrales de VRAM muy diferentes, ya no parecerá una diferencia de palabras. Esas etiquetas reflejan presupuestos de precisión y elecciones de ingeniería muy distintos.&lt;/p&gt;
&lt;h2 id=&#34;cierre&#34;&gt;Cierre
&lt;/h2&gt;&lt;p&gt;Los formatos tensoriales en modelos grandes parecen una discusión sobre anchos de bits, pero debajo son una discusión sobre tradeoffs de ingeniería.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;FP32&lt;/code&gt;, &lt;code&gt;FP16&lt;/code&gt;, &lt;code&gt;BF16&lt;/code&gt;, &lt;code&gt;TF32&lt;/code&gt; y &lt;code&gt;FP8&lt;/code&gt; no son simplemente mejores o peores entre sí. Cada uno se ubica en un punto diferente de la curva entre estabilidad, rango, precisión, memoria y velocidad.&lt;/p&gt;
&lt;p&gt;Cuando entiendes claramente esa capa, resulta mucho más fácil leer papers de entrenamiento, ajustar inferencia y comparar estrategias de despliegue con el modelo mental correcto.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Una GPU de 16GB aún puede ejecutar modelos 35B: estrategias de compresión VRAM para modelos MoE en LM Studio</title>
        <link>https://knightli.com/es/2026/04/22/16gb-gpu-run-35b-moe-models-in-lm-studio/</link>
        <pubDate>Wed, 22 Apr 2026 21:47:34 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/22/16gb-gpu-run-35b-moe-models-in-lm-studio/</guid>
        <description>&lt;p&gt;Mucha gente piensa que 16GB de VRAM es el punto donde el despliegue local de LLMs se queda más o menos en modelos 12B a 14B, y que cualquier cosa más grande se vuelve demasiado dolorosa incluso con cuantización. Esa visión es comprensible, pero no es el techo real de una GPU de 16GB.&lt;/p&gt;
&lt;p&gt;Si eliges bien el modelo y configuras bien los parámetros, una GPU de 16GB no tiene por qué limitarse a modelos pequeños. Un enfoque representativo es usar modelos &lt;code&gt;MoE&lt;/code&gt; dentro de &lt;code&gt;LM Studio&lt;/code&gt; con una estrategia sensata de descarga, de modo que modelos de clase 35B sigan funcionando a una velocidad realmente usable.&lt;/p&gt;
&lt;h2 id=&#34;01-por-qué-una-gpu-de-16gb-no-necesariamente-se-limita-a-12b-14b&#34;&gt;01 Por qué una GPU de 16GB no necesariamente se limita a 12B-14B
&lt;/h2&gt;&lt;p&gt;La idea central es simple: el tamaño de VRAM importa, pero la arquitectura del modelo importa igual.&lt;/p&gt;
&lt;p&gt;Si intentas meter un modelo dense estándar en una GPU de 16GB, chocarás con el límite rápidamente. Estos modelos suelen involucrar todos los parámetros durante inferencia, así que la presión de VRAM y ancho de banda sube de inmediato.&lt;/p&gt;
&lt;p&gt;Pero los modelos &lt;code&gt;MoE&lt;/code&gt; son distintos. Su número total de parámetros puede ser grande, mientras solo una parte de los parámetros expertos se activa en cada paso de inferencia. Tomando como ejemplo un modelo de clase 35B: aunque el total de parámetros es alto, el número real que participa en cada paso es mucho menor, así que su requisito real de VRAM no es tan extremo como muchos asumen.&lt;/p&gt;
&lt;p&gt;Por eso una GPU de 16GB todavía deja cierto margen de trabajo.&lt;/p&gt;
&lt;h2 id=&#34;02-conclusión-práctica-clave-los-modelos-moe-35b-pueden-correr-sorprendentemente-rápido&#34;&gt;02 Conclusión práctica clave: los modelos MoE 35B pueden correr sorprendentemente rápido
&lt;/h2&gt;&lt;p&gt;Un caso representativo es un modelo &lt;code&gt;MoE&lt;/code&gt; cuantizado como &lt;code&gt;Qwen 3.5 35B A3B&lt;/code&gt;. Con una GPU de 16GB y los ajustes correctos en &lt;code&gt;LM Studio&lt;/code&gt;, la cuantización &lt;code&gt;Q6&lt;/code&gt; puede superar los 30 &lt;code&gt;tokens/s&lt;/code&gt;, y &lt;code&gt;Q4&lt;/code&gt; a veces prueba incluso más alto.&lt;/p&gt;
&lt;p&gt;Ese resultado importa no solo porque el modelo &amp;ldquo;corre&amp;rdquo;, sino porque la velocidad ya está en un rango claramente usable.&lt;/p&gt;
&lt;p&gt;En comparación, modelos grandes de escala similar que no son &lt;code&gt;MoE&lt;/code&gt; suelen sufrir overflow de VRAM y caídas bruscas de velocidad en una GPU de 16GB. En otras palabras, el resultado no se determina solo por el número de parámetros. Importa cómo se usan esos parámetros durante inferencia.&lt;/p&gt;
&lt;h2 id=&#34;03-en-lm-studio-la-clave-no-es-un-solo-parámetro&#34;&gt;03 En LM Studio, la clave no es un solo parámetro
&lt;/h2&gt;&lt;p&gt;Si quieres que este tipo de modelo corra con fluidez en una GPU de 16GB, el truco real no es suerte. Es ajustar correctamente dos parámetros:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GPU Offload&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;el ajuste que fuerza parte de las capas expertas a memoria CPU&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El primero es fácil de entender. &lt;code&gt;GPU Offload&lt;/code&gt; básicamente se empuja lo más alto posible para que el modelo priorice cálculo en GPU.&lt;/p&gt;
&lt;p&gt;El segundo es la clave. No es el enfoque tradicional de &amp;ldquo;tomar prestada memoria del sistema cuando se desborda la VRAM&amp;rdquo;. En su lugar, coloca proactivamente parte de las capas expertas en memoria CPU para reducir uso de VRAM desde el inicio. Como los modelos &lt;code&gt;MoE&lt;/code&gt; no activan todos los expertos en cada paso, mover algunos expertos a memoria no perjudica la velocidad global tanto como muchos esperarían.&lt;/p&gt;
&lt;p&gt;Una forma más segura de ajustarlo es empezar en un rango y luego afinar gradualmente según tu máquina:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;empezar con valores relacionados entre &lt;code&gt;20&lt;/code&gt; y &lt;code&gt;35&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;luego ajustar según uso de VRAM y presión de memoria&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En el fondo, este método usa memoria del sistema para recuperar margen de VRAM.&lt;/p&gt;
&lt;h2 id=&#34;04-puede-seguir-funcionando-a-128k-de-contexto-y-contextos-menores-reducen-más-la-vram&#34;&gt;04 Puede seguir funcionando a 128K de contexto, y contextos menores reducen más la VRAM
&lt;/h2&gt;&lt;p&gt;Otro punto interesante es que incluso con longitud de contexto en &lt;code&gt;128K&lt;/code&gt;, un modelo &lt;code&gt;MoE&lt;/code&gt; de clase 35B puede mantener una velocidad relativamente alta.&lt;/p&gt;
&lt;p&gt;Eso dice algo importante: el cuello de botella de una GPU de 16GB no es tan rígido como muchos imaginan. Especialmente en una herramienta local como &lt;code&gt;LM Studio&lt;/code&gt;, la pregunta real no suele ser simplemente si corre o no, sino:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;si aceptas intercambiar más memoria del sistema por menos uso de VRAM&lt;/li&gt;
&lt;li&gt;si aceptas acortar la longitud de contexto&lt;/li&gt;
&lt;li&gt;si aceptas distintos compromisos de capacidad entre niveles de cuantización&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si reduces el contexto de &lt;code&gt;128K&lt;/code&gt; a &lt;code&gt;64K&lt;/code&gt; o &lt;code&gt;32K&lt;/code&gt;, la presión de VRAM baja aún más. Eso significa que algunos modelos &lt;code&gt;MoE&lt;/code&gt; de clase 35B podrían incluso correr, con dificultad, en GPUs con menos VRAM, aunque velocidad y presión de memoria tendrán que reequilibrarse.&lt;/p&gt;
&lt;h2 id=&#34;05-el-coste-mucha-más-demanda-de-ram-y-memoria-virtual&#34;&gt;05 El coste: mucha más demanda de RAM y memoria virtual
&lt;/h2&gt;&lt;p&gt;Este setup no es rendimiento gratis.&lt;/p&gt;
&lt;p&gt;Lo que debes vigilar es que, al comprimir más la presión de VRAM, el uso de RAM del sistema sube notablemente, y también la presión de memoria virtual. En otras palabras, no eliminas el coste: lo desplazas desde la GPU hacia RAM y swap en disco.&lt;/p&gt;
&lt;p&gt;Si quieres probarlo, revisa primero:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;si tu RAM del sistema es suficiente&lt;/li&gt;
&lt;li&gt;si tu asignación de memoria virtual es suficiente&lt;/li&gt;
&lt;li&gt;si demasiadas apps de fondo ya consumen recursos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si esas condiciones no están, quizá no obtengas &amp;ldquo;35B corriendo rápido&amp;rdquo;, sino una máquina lenta en todo.&lt;/p&gt;
&lt;h2 id=&#34;06-una-cuantización-más-agresiva-no-siempre-es-mejor&#34;&gt;06 Una cuantización más agresiva no siempre es mejor
&lt;/h2&gt;&lt;p&gt;Hay otro compromiso práctico. La cuantización de menos bits suele ahorrar más VRAM, pero eso no la convierte automáticamente en la mejor opción.&lt;/p&gt;
&lt;p&gt;La conclusión práctica es que algunos modelos corren más rápido en &lt;code&gt;Q4&lt;/code&gt;, pero su capacidad original también puede degradarse más. En comparación, &lt;code&gt;Q6&lt;/code&gt; tiende a equilibrar mejor velocidad y retención de capacidad. Así que la elección correcta depende de qué te importe más:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;máxima velocidad y encajar en VRAM&lt;/li&gt;
&lt;li&gt;o preservar más capacidad original del modelo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esas dos prioridades no siempre llevan a la misma cuantización.&lt;/p&gt;
&lt;h2 id=&#34;07-qué-modelos-vale-la-pena-probar&#34;&gt;07 Qué modelos vale la pena probar
&lt;/h2&gt;&lt;p&gt;Desde este ángulo, lo mejor no es perseguir ciegamente más parámetros, sino buscar primero modelos que encajen con esta estrategia:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;modelos construidos sobre arquitectura &lt;code&gt;MoE&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;modelos bien soportados en &lt;code&gt;LM Studio&lt;/code&gt; y con variantes cuantizadas completas&lt;/li&gt;
&lt;li&gt;modelos con ventajas claras en contexto largo o seguimiento de instrucciones&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La idea no se detiene en un único modelo &lt;code&gt;MoE&lt;/code&gt; 35B. También se extiende a modelos experimentales con memoria de contexto largo más fuerte, mejor seguimiento de instrucciones o variantes cuantizadas más ligeras con gran velocidad.&lt;/p&gt;
&lt;p&gt;La lógica es consistente: primero encuentra modelos cuya arquitectura encaje con la estrategia de intercambiar memoria por VRAM, y luego habla de tuning. No empieces solo por número de parámetros.&lt;/p&gt;
&lt;h2 id=&#34;08-conclusión-breve&#34;&gt;08 Conclusión breve
&lt;/h2&gt;&lt;p&gt;Si tienes una GPU de 16GB y asumes que los LLMs locales se detienen en 12B-14B, vale la pena actualizar esa suposición.&lt;/p&gt;
&lt;p&gt;Una forma más precisa de decirlo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;una GPU de 16GB no queda automáticamente descartada para modelos más grandes&lt;/li&gt;
&lt;li&gt;modelos dense y modelos &lt;code&gt;MoE&lt;/code&gt; deben considerarse por separado&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GPU Offload&lt;/code&gt; y transferencia de capas expertas a memoria CPU en &lt;code&gt;LM Studio&lt;/code&gt; pueden cambiar significativamente el uso de VRAM&lt;/li&gt;
&lt;li&gt;en la práctica, intercambias mayor presión de memoria por más escala de modelo y mejor velocidad usable&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Este enfoque no encaja con todas las máquinas, pero muestra algo importante: en despliegue local de LLMs, la VRAM no es el único límite. La arquitectura del modelo y la configuración de inferencia importan igual.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Colaboración multi-agente en Claude Code: cómo elegir entre Subagents y Agent Teams</title>
        <link>https://knightli.com/es/2026/04/22/claude-code-subagents-vs-agent-teams/</link>
        <pubDate>Wed, 22 Apr 2026 21:35:52 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/22/claude-code-subagents-vs-agent-teams/</guid>
        <description>&lt;p&gt;Cuando se habla de colaboración multi-agente en Claude Code, los dos conceptos más fáciles de mezclar son &lt;code&gt;Subagents&lt;/code&gt; y &lt;code&gt;Agent Teams&lt;/code&gt;. Ambos suenan como &amp;ldquo;levantar varios agentes para trabajar juntos&amp;rdquo;, pero están pensados para tipos de trabajo distintos. En corto: los primeros son mejores para separar tareas independientes, mientras los segundos encajan mejor cuando varios agentes necesitan colaborar alrededor del mismo problema y revisar sus conclusiones con el tiempo.&lt;/p&gt;
&lt;p&gt;Si ya has usado Skills, este marco también ayuda:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Una Skill define el flujo y las reglas&lt;/li&gt;
&lt;li&gt;Un Subagent o compañero de Agent Team ejecuta el trabajo real&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Así que la pregunta real no es cuál es más avanzado, sino qué problema de colaboración estás resolviendo.&lt;/p&gt;
&lt;h2 id=&#34;subagents-separar-tareas-laterales&#34;&gt;Subagents: separar tareas laterales
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Subagents&lt;/code&gt; se parecen más a copias temporales de trabajador lanzadas desde la sesión actual. Cada uno tiene su propia ventana de contexto y, al terminar, devuelve solo un resumen del resultado. La conversación principal se mantiene más limpia porque no absorbe todos los logs y salidas intermedias.&lt;/p&gt;
&lt;p&gt;Eso da a Subagents varias fortalezas prácticas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El hilo principal se mantiene limpio en lugar de llenarse de logs de tests, resultados de búsqueda o salida larga&lt;/li&gt;
&lt;li&gt;Tareas independientes de investigación o ejecución pueden correr en paralelo&lt;/li&gt;
&lt;li&gt;Funcionan bien cuando basta con &amp;ldquo;tráeme el resultado&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El artículo original señala que Claude Code trae tres tipos integrados de Subagents:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Explore&lt;/code&gt;: solo lectura, útil para buscar rápidamente en una codebase&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Plan&lt;/code&gt;: solo lectura, útil para reunir información en segundo plano durante plan mode&lt;/li&gt;
&lt;li&gt;&lt;code&gt;General-purpose&lt;/code&gt;: puede leer y escribir, adecuado para tareas que mezclan exploración y edición&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;subagents-personalizados&#34;&gt;Subagents personalizados
&lt;/h3&gt;&lt;p&gt;Si las opciones integradas no bastan, puedes definir tu propio Subagent. El mecanismo es simple: escribir un archivo Markdown en una de estas ubicaciones:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;.claude/agents/&lt;/code&gt;: activo solo en el proyecto actual&lt;/li&gt;
&lt;li&gt;&lt;code&gt;~/.claude/agents/&lt;/code&gt;: activo en todos tus proyectos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El formato se ve así:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;name: code-reviewer
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;description: Expert code review specialist. Proactively reviews code for quality, security, and maintainability. Use immediately after writing or modifying code.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;tools: Read, Grep, Glob, Bash
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;model: inherit
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;You are a senior code reviewer ensuring high standards of code quality and security.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;When invoked:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;1.&lt;/span&gt; Run git diff to see recent changes
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;2.&lt;/span&gt; Focus on modified files
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;3.&lt;/span&gt; Begin review immediately
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Review checklist:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Code is clear and readable
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Functions and variables are well-named
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; No duplicated code
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Proper error handling
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; No exposed secrets or API keys
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Input validation implemented
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Good test coverage
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Performance considerations addressed
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Provide feedback organized by priority:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Critical issues (must fix)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Warnings (should fix)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Suggestions (consider improving)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Include specific examples of how to fix issues.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El campo clave es &lt;code&gt;description&lt;/code&gt;. Claude lo usa para decidir cuándo debe llamarse ese Subagent, así que cuanto más precisa sea la descripción, más fiable suele ser el disparo.&lt;/p&gt;
&lt;p&gt;También conviene conocer algunos campos comunes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;tools&lt;/code&gt;: limita qué herramientas puede usar el Subagent&lt;/li&gt;
&lt;li&gt;&lt;code&gt;model&lt;/code&gt;: elige entre &lt;code&gt;sonnet&lt;/code&gt;, &lt;code&gt;opus&lt;/code&gt;, &lt;code&gt;haiku&lt;/code&gt; o &lt;code&gt;inherit&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;permissionMode&lt;/code&gt;: controla permisos de edición y prompts de autorización&lt;/li&gt;
&lt;li&gt;&lt;code&gt;memory&lt;/code&gt;: da al Subagent un directorio de memoria entre conversaciones&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si solo necesitas un Subagent temporal, también puedes definirlo mediante CLI:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude --agents &lt;span class=&#34;s1&#34;&gt;&amp;#39;{
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s1&#34;&gt;  &amp;#34;code-reviewer&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s1&#34;&gt;    &amp;#34;description&amp;#34;: &amp;#34;Expert code reviewer. Use proactively after code changes.&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s1&#34;&gt;    &amp;#34;prompt&amp;#34;: &amp;#34;You are a senior code reviewer. Focus on code quality, security, and best practices.&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s1&#34;&gt;    &amp;#34;tools&amp;#34;: [&amp;#34;Read&amp;#34;, &amp;#34;Grep&amp;#34;, &amp;#34;Glob&amp;#34;, &amp;#34;Bash&amp;#34;],
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s1&#34;&gt;    &amp;#34;model&amp;#34;: &amp;#34;sonnet&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s1&#34;&gt;  }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s1&#34;&gt;}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;cuándo-encajan-mejor-los-subagents&#34;&gt;Cuándo encajan mejor los Subagents
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;Subagents&lt;/code&gt; suelen encajar mejor en tareas como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ejecutar tests y devolver solo el resumen de fallos en lugar de llenar el hilo principal con miles de líneas de logs&lt;/li&gt;
&lt;li&gt;Investigar varios módulos no relacionados en paralelo&lt;/li&gt;
&lt;li&gt;Dividir &amp;ldquo;encontrar el problema&amp;rdquo; y &amp;ldquo;corregir el problema&amp;rdquo; en una pipeline simple&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Research the authentication, database, and API modules in parallel using separate subagents
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Use the code-reviewer subagent to find performance issues, then use the optimizer subagent to fix them
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Pero si una tarea necesita ajustes constantes de ida y vuelta, comparte mucho contexto entre etapas o concentra cambios en uno o dos archivos, manejarla directamente en la conversación principal suele ser más simple que levantar un Subagent.&lt;/p&gt;
&lt;h2 id=&#34;agent-teams-múltiples-sesiones-independientes-trabajando-juntas&#34;&gt;Agent Teams: múltiples sesiones independientes trabajando juntas
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Agent Teams&lt;/code&gt; operan en otro nivel. En vez de lanzar copias de trabajadores dentro de una sesión, inician varias instancias independientes de Claude Code que colaboran alrededor de una lista de tareas compartida y también pueden enviarse mensajes directamente.&lt;/p&gt;
&lt;p&gt;Eso hace que un Agent Team se sienta más como un pequeño equipo real que como un simple sistema de tareas laterales.&lt;/p&gt;
&lt;p&gt;El artículo señala que actualmente es una función experimental y debe activarse primero:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;env&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;1&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Una vez añadido a &lt;code&gt;settings.json&lt;/code&gt;, puedes pedir a Claude que organice un equipo alrededor de un objetivo. Por ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;I&amp;#39;m designing a CLI tool that helps developers track TODO comments across
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;their codebase. Create an agent team to explore this from different angles: one
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;teammate on UX, one on technical architecture, one playing devil&amp;#39;s advocate.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;de-qué-se-compone-un-agent-team&#34;&gt;De qué se compone un Agent Team
&lt;/h3&gt;&lt;p&gt;Un Agent Team incluye principalmente tres partes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Team lead: la sesión principal que usas, responsable de organizar, asignar y resumir&lt;/li&gt;
&lt;li&gt;Teammates: varias instancias independientes de Claude Code&lt;/li&gt;
&lt;li&gt;Task list y Mailbox: lista compartida de tareas y canal de comunicación&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La mayor diferencia con &lt;code&gt;Subagents&lt;/code&gt; es que los teammates pueden comunicarse directamente entre sí en lugar de pasar todo por el lead. Las tareas suelen moverse por estados como &lt;code&gt;pending&lt;/code&gt;, &lt;code&gt;in progress&lt;/code&gt; y &lt;code&gt;completed&lt;/code&gt;; cuando un teammate termina una tarea, puede tomar la siguiente.&lt;/p&gt;
&lt;h3 id=&#34;cuándo-encajan-mejor-los-agent-teams&#34;&gt;Cuándo encajan mejor los Agent Teams
&lt;/h3&gt;&lt;p&gt;Cuando una tarea necesita varias perspectivas, discusión activa, hipótesis en conflicto o trabajo paralelo en módulos, &lt;code&gt;Agent Teams&lt;/code&gt; encajan mejor.&lt;/p&gt;
&lt;p&gt;El artículo da varios ejemplos representativos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Varios revisores inspeccionan el mismo PR en paralelo, cada uno centrado en una dimensión&lt;/li&gt;
&lt;li&gt;Varios agentes investigan el mismo bug con explicaciones competidoras y desafían las conclusiones de los otros&lt;/li&gt;
&lt;li&gt;Frontend, backend y testing avanzan en paralelo en distintas partes del proyecto&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por ejemplo, revisión de código en paralelo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create an agent team to review PR &lt;span class=&#34;ni&#34;&gt;#142&lt;/span&gt;. Spawn three reviewers:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; One focused on security implications
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; One checking performance impact
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; One validating test coverage
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Have them each review and report findings.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Y depuración estilo debate:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Users report the app exits after one message instead of staying connected.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Spawn 5 agent teammates to investigate different hypotheses. Have them talk to
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;each other to try to disprove each other&amp;#39;s theories, like a scientific
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;debate. Update the findings doc with whatever consensus emerges.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El patrón común es que no quieres una sola respuesta. Quieres varios agentes intercambiando juicios, desafiando supuestos y convergiendo gradualmente en una conclusión más sólida.&lt;/p&gt;
&lt;h2 id=&#34;cómo-elegir-entre-ellos&#34;&gt;Cómo elegir entre ellos
&lt;/h2&gt;&lt;p&gt;Si quieres una regla rápida:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si solo necesitas el resultado, usa &lt;code&gt;Subagents&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Si el trabajo requiere discusión y validación cruzada, usa &lt;code&gt;Agent Teams&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ampliando un poco:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Estilo de comunicación: &lt;code&gt;Subagents&lt;/code&gt; principalmente reportan resultados a la sesión principal; miembros de &lt;code&gt;Agent Teams&lt;/code&gt; pueden hablar directamente entre sí&lt;/li&gt;
&lt;li&gt;Modelo de coordinación: &lt;code&gt;Subagents&lt;/code&gt; dependen más de la conversación principal para orquestación; &lt;code&gt;Agent Teams&lt;/code&gt; trabajan desde una lista de tareas compartida que los miembros pueden reclamar&lt;/li&gt;
&lt;li&gt;Coste de tokens: &lt;code&gt;Subagents&lt;/code&gt; son más baratos; &lt;code&gt;Agent Teams&lt;/code&gt; cuestan más porque cada teammate es una instancia independiente&lt;/li&gt;
&lt;li&gt;Mejor ajuste: &lt;code&gt;Subagents&lt;/code&gt; para trabajo independiente y orientado a resultados; &lt;code&gt;Agent Teams&lt;/code&gt; para trabajo con mucha discusión y revisión cruzada&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;precauciones-prácticas&#34;&gt;Precauciones prácticas
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Agent Teams&lt;/code&gt; son más potentes, pero eso no significa que cada tarea merezca un equipo completo. El artículo destaca varias preocupaciones prácticas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;el uso de tokens sube de forma notable&lt;/li&gt;
&lt;li&gt;si varios teammates editan el mismo archivo a la vez, los conflictos de sobrescritura son muy probables&lt;/li&gt;
&lt;li&gt;añadir demasiados teammates aumenta el coste de coordinación sin garantizar mejores resultados&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un valor predeterminado más seguro suele ser:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;empezar con 3 a 5 teammates&lt;/li&gt;
&lt;li&gt;dividir tareas por módulo o archivo para evitar conflictos de edición&lt;/li&gt;
&lt;li&gt;si el lead empieza a hacer el trabajo de los teammates demasiado pronto, pedirle explícitamente que espere primero a los demás&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La versión experimental actual también tiene limitaciones:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;sin soporte de &lt;code&gt;/resume&lt;/code&gt; y &lt;code&gt;/rewind&lt;/code&gt; para teammates en proceso&lt;/li&gt;
&lt;li&gt;el estado de tareas puede retrasarse y a veces necesita corrección manual&lt;/li&gt;
&lt;li&gt;un lead solo puede gestionar un equipo a la vez&lt;/li&gt;
&lt;li&gt;los teammates no pueden crear child teams propios&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;conclusión-breve&#34;&gt;Conclusión breve
&lt;/h2&gt;&lt;p&gt;Estas dos funciones no se sustituyen entre sí. Resuelven dos problemas de colaboración distintos.&lt;/p&gt;
&lt;p&gt;Si tu objetivo es paralelizar tareas laterales y mantener limpio el contexto principal, empieza con &lt;code&gt;Subagents&lt;/code&gt;. Si tu objetivo es dejar que varios agentes trabajen como un pequeño equipo, discutan y se revisen entre sí, &lt;code&gt;Agent Teams&lt;/code&gt; son la mejor herramienta.&lt;/p&gt;
&lt;p&gt;Probar ambas en una tarea real suele aclarar la diferencia rápidamente: una está optimizada para aislamiento de contexto y recolección de resultados; la otra para colaboración multiperspectiva e interacción continua.&lt;/p&gt;
&lt;h2 id=&#34;enlaces-relacionados&#34;&gt;Enlaces relacionados
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Artículo original: &lt;a class=&#34;link&#34; href=&#34;https://cloud.tencent.com/developer/article/2652960&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://cloud.tencent.com/developer/article/2652960&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>GPT Image 2 se lanza oficialmente: de generar imágenes al uso comercial</title>
        <link>https://knightli.com/es/2026/04/22/gpt-image-2-from-generation-to-commercial-use/</link>
        <pubDate>Wed, 22 Apr 2026 20:08:22 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/22/gpt-image-2-from-generation-to-commercial-use/</guid>
        <description>&lt;p&gt;El modelo de imagen de nueva generación de OpenAI, &lt;code&gt;GPT Image 2&lt;/code&gt;, ya llegó oficialmente a usuarios de ChatGPT. Según el feedback comunitario de la fase de pruebas filtrada y los ejemplos públicos disponibles, este lanzamiento se siente menos como una actualización rutinaria y más como un paso significativo de la generación de imágenes AI desde &amp;ldquo;parece usable&amp;rdquo; hacia &amp;ldquo;es usable&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Si los modelos anteriores servían sobre todo para moodboards, concept art y experimentación lúdica, lo más notable de &lt;code&gt;GPT Image 2&lt;/code&gt; es que empieza a sentirse más cerca de una herramienta de producción. Ya sea texto legible, screenshots UI, pósters de marketing o imágenes más realistas estilo fotografía comercial, está mucho más cerca de algo que puedes usar directamente.&lt;/p&gt;
&lt;h2 id=&#34;1-mejoras-centrales-cinco-cosas-que-vale-la-pena-observar&#34;&gt;1. Mejoras centrales: cinco cosas que vale la pena observar
&lt;/h2&gt;&lt;h3 id=&#34;1-el-renderizado-de-texto-por-fin-entra-en-un-rango-usable&#34;&gt;1. El renderizado de texto por fin entra en un rango usable
&lt;/h3&gt;&lt;p&gt;Para generación de imágenes AI, el texto siempre ha sido uno de los problemas más difíciles. Caracteres deformados, errores ortográficos, pasajes largos rotos y tipografía distorsionada han sido comunes en casi todos los modelos.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT Image 2&lt;/code&gt; muestra una mejora muy visible. Puede manejar texto inglés y chino más claro, pero también layouts más complejos, párrafos largos y cierta composición multilingüe. Eso significa que muchos escenarios que antes requerían retoque manual pueden completarse directamente durante la generación.&lt;/p&gt;
&lt;p&gt;Casos típicos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;pósters&lt;/li&gt;
&lt;li&gt;portadas para redes sociales&lt;/li&gt;
&lt;li&gt;páginas promocionales con titulares y texto explicativo&lt;/li&gt;
&lt;li&gt;visuales para PPT&lt;/li&gt;
&lt;li&gt;screenshots de apps con copy real y elementos de interfaz&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para flujos reales, esto es un gran paso. Cuando el texto se vuelve legible de forma estable, la generación de imágenes deja de ser solo &amp;ldquo;hazme una imagen de fondo&amp;rdquo; y empieza a poder manejar assets de marketing y visuales de producto.&lt;/p&gt;
&lt;h3 id=&#34;2-el-fotorrealismo-mejora-claramente&#34;&gt;2. El fotorrealismo mejora claramente
&lt;/h3&gt;&lt;p&gt;En comparaciones comunitarias lado a lado, &lt;code&gt;GPT Image 2&lt;/code&gt; parece más nítido en general, con texturas de material más finas e iluminación más consistente. Rostros, manos y detalles de borde, que antes exponían artefactos AI con facilidad, ahora se ven mucho más estables.&lt;/p&gt;
&lt;p&gt;Esto no significa que los defectos hayan desaparecido. Significa que el &amp;ldquo;look AI&amp;rdquo; obvio ha bajado mucho. Muchas imágenes ahora resultan convincentes a primera vista y pueden confundirse con fotos reales, muestras de fotografía comercial o screenshots de juegos.&lt;/p&gt;
&lt;p&gt;Por eso la primera reacción de mucha gente ya no es &amp;ldquo;está bien dibujado&amp;rdquo;, sino &amp;ldquo;esto ya parece real&amp;rdquo;.&lt;/p&gt;
&lt;h3 id=&#34;3-integración-más-fuerte-de-conocimiento-del-mundo&#34;&gt;3. Integración más fuerte de conocimiento del mundo
&lt;/h3&gt;&lt;p&gt;Esta mejora llama menos la atención, pero es muy práctica.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GPT Image 2&lt;/code&gt; se siente menos como un sistema que simplemente junta fragmentos visuales y estilos, y más como uno que entiende lo que representa. Algunos ejemplos del artículo fuente son representativos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;las esferas de reloj muestran horas más lógicamente consistentes&lt;/li&gt;
&lt;li&gt;detalles de marca y rasgos de personajes se reproducen con más precisión&lt;/li&gt;
&lt;li&gt;screenshots estilo Minecraft o interfaces software siguen una lógica estructural más creíble&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Eso significa que, al manejar objetos reales, interfaces digitales o escenas de juego que dependen de sentido común y coherencia estructural, la tasa de éxito es mayor. Para usuarios, este tipo de mejora suele valer más que un simple aumento de resolución.&lt;/p&gt;
&lt;h3 id=&#34;4-la-generación-de-ui-y-screenshots-es-muy-fuerte&#34;&gt;4. La generación de UI y screenshots es muy fuerte
&lt;/h3&gt;&lt;p&gt;Desde el periodo de filtraciones hasta el lanzamiento oficial, una de las direcciones más comentadas de &lt;code&gt;GPT Image 2&lt;/code&gt; ha sido generar interfaces software, screenshots web y mockups de apps.&lt;/p&gt;
&lt;p&gt;Estas tareas antes eran difíciles porque requieren todo esto a la vez:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;texto claro&lt;/li&gt;
&lt;li&gt;layout ordenado&lt;/li&gt;
&lt;li&gt;alineación entre botones, cards, barras de navegación y elementos similares&lt;/li&gt;
&lt;li&gt;color y jerarquía que se sientan como un producto real&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esta vez, el rendimiento del modelo en esas áreas ya parece bastante maduro. Para product managers, desarrolladores indie y diseñadores, eso significa crear más rápido mockups de alta fidelidad para propuestas, demos e incluso pruebas de usuario.&lt;/p&gt;
&lt;h3 id=&#34;5-la-edición-local-se-acerca-a-un-flujo-real&#34;&gt;5. La edición local se acerca a un flujo real
&lt;/h3&gt;&lt;p&gt;Según el artículo fuente, &lt;code&gt;GPT Image 2&lt;/code&gt; soporta edición localizada más precisa, lo que significa que puede modificar una zona específica de una imagen sin forzar un redibujado completo cada vez.&lt;/p&gt;
&lt;p&gt;Eso importa mucho en flujos creativos. En trabajo de diseño real, la tarea no suele ser &amp;ldquo;rehaz toda la imagen&amp;rdquo;, sino:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;cambiar un botón&lt;/li&gt;
&lt;li&gt;reemplazar un bloque de texto&lt;/li&gt;
&lt;li&gt;mover un objeto&lt;/li&gt;
&lt;li&gt;corregir parte del fondo&lt;/li&gt;
&lt;li&gt;sustituir un elemento local&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si la edición localizada se vuelve suficientemente estable, el valor de la generación de imágenes AI ya no queda limitado al primer borrador. Puede empezar a participar en trabajo iterativo real.&lt;/p&gt;
&lt;h2 id=&#34;2-cómo-usar-gpt-image-2&#34;&gt;2. Cómo usar GPT Image 2
&lt;/h2&gt;&lt;h3 id=&#34;usarlo-en-chatgpt&#34;&gt;Usarlo en ChatGPT
&lt;/h3&gt;&lt;p&gt;Por ahora, &lt;code&gt;GPT Image 2&lt;/code&gt; ya está integrado en ChatGPT, así que usuarios normales pueden acceder directamente desde la función de generación de imágenes.&lt;/p&gt;
&lt;p&gt;Un flujo típico:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Abre ChatGPT en web o app&lt;/li&gt;
&lt;li&gt;Haz clic en &lt;code&gt;+&lt;/code&gt; en la caja de entrada&lt;/li&gt;
&lt;li&gt;Elige &amp;ldquo;Create image&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Escribe tu prompt y envíalo&lt;/li&gt;
&lt;li&gt;El sistema llama a &lt;code&gt;GPT Image 2&lt;/code&gt; y devuelve el resultado&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;El artículo fuente también señala que distintos niveles de suscripción tienen cuotas diferentes, así que usuarios free y &lt;code&gt;Plus&lt;/code&gt; / &lt;code&gt;Pro&lt;/code&gt; pueden tener distintos límites de generación. Las reglas exactas conviene revisarlas en lo que muestre ChatGPT dentro del producto en ese momento, porque pueden cambiar.&lt;/p&gt;
&lt;h3 id=&#34;usarlo-mediante-api&#34;&gt;Usarlo mediante API
&lt;/h3&gt;&lt;p&gt;Para desarrolladores, el modelo de imagen también puede accederse mediante la API de OpenAI. El artículo fuente menciona el nombre de modelo &lt;code&gt;gpt-image-2&lt;/code&gt;, pero en integraciones reales sigue siendo mejor seguir la documentación oficial más reciente para nombre de modelo y parámetros actuales.&lt;/p&gt;
&lt;p&gt;El artículo lista varias resoluciones comunes:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Resolution&lt;/th&gt;
          &lt;th&gt;Typical use case&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;1024x1024&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Imágenes cuadradas generales, avatares, gráficos para redes sociales&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;1536x1024&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Portadas horizontales, slides, wallpapers widescreen&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;1024x1536&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Pósters verticales, wallpapers de teléfono, ilustraciones tipo story&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;2048x2048&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Impresión de alta resolución, displays grandes, ilustración detallada&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;3-varios-casos-representativos&#34;&gt;3. Varios casos representativos
&lt;/h2&gt;&lt;h3 id=&#34;1-screenshots-de-interfaces-de-apps&#34;&gt;1. Screenshots de interfaces de apps
&lt;/h3&gt;&lt;p&gt;Este tipo de prompt es especialmente útil para prototipos de producto, demos de diseño y discusión de requisitos.&lt;/p&gt;
&lt;p&gt;Características típicas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;especificar estilo de plataforma, como iOS&lt;/li&gt;
&lt;li&gt;describir claramente la estructura de página&lt;/li&gt;
&lt;li&gt;listar las cards de datos principales&lt;/li&gt;
&lt;li&gt;definir la navegación inferior&lt;/li&gt;
&lt;li&gt;explicar esquema de color y tipografía&lt;/li&gt;
&lt;li&gt;enfatizar que el texto debe ser claro y los elementos deben alinearse&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El objetivo de escribir prompts así no es solo hacer la imagen atractiva. Es reducir el margen de improvisación del modelo y hacer que el resultado parezca una interfaz real.&lt;/p&gt;
&lt;h3 id=&#34;2-imágenes-de-producto-e-commerce&#34;&gt;2. Imágenes de producto e-commerce
&lt;/h3&gt;&lt;p&gt;Productos como perfumes, auriculares, relojes y cosméticos encajan muy bien con &lt;code&gt;GPT Image 2&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Ahora es más estable al manejar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;sensación material de vidrio, metal y líquidos&lt;/li&gt;
&lt;li&gt;sombras y reflejos suaves&lt;/li&gt;
&lt;li&gt;lógica de iluminación común en fotografía comercial&lt;/li&gt;
&lt;li&gt;presentación premium sobre fondo limpio&lt;/li&gt;
&lt;li&gt;pequeñas cantidades de texto de marca&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si la salida es estable, muchas imágenes de detalle e-commerce, hero images de páginas de marketing y visuales de producto para redes sociales pueden producirse con mucho menor coste de prueba y error.&lt;/p&gt;
&lt;h3 id=&#34;3-pósters-con-mucho-texto&#34;&gt;3. Pósters con mucho texto
&lt;/h3&gt;&lt;p&gt;Los pósters son uno de los escenarios más claros para mostrar las capacidades textuales de esta generación.&lt;/p&gt;
&lt;p&gt;El artículo fuente da una dirección típica: colocar un titular principal claro, hora y lugar, y lista de artistas sobre un fondo de silueta urbana al atardecer, exigiendo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;texto nítido y legible&lt;/li&gt;
&lt;li&gt;sin errores ortográficos&lt;/li&gt;
&lt;li&gt;layout mixto chino-inglés estable&lt;/li&gt;
&lt;li&gt;estilo unificado&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Antes estas tareas requerían generar primero el fondo y luego añadir texto manualmente. Si el modelo puede completar gran parte de eso en una sola pasada, su valor práctico aumenta mucho.&lt;/p&gt;
&lt;h3 id=&#34;4-concept-art-de-juegos-y-screenshots-falsos&#34;&gt;4. Concept art de juegos y &amp;ldquo;screenshots falsos&amp;rdquo;
&lt;/h3&gt;&lt;p&gt;Este es uno de los tipos de contenido con más probabilidad de difundirse en redes sociales cuando se crea con &lt;code&gt;GPT Image 2&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Por ejemplo, screenshots de juego en tercera persona, calles con neón, reflejos en lluvia, profundidad de campo, grano de película y look de gameplay PS5 pueden combinarse en prompts que produzcan imágenes que a primera vista parezcan filtraciones de juegos.&lt;/p&gt;
&lt;p&gt;Desde una perspectiva de distribución, estas imágenes atraen mucho la atención. Desde una perspectiva de riesgo, también muestran que el umbral para imágenes falsas convincentes ha bajado claramente, así que hay que ser más cauteloso al juzgar si una imagen es real.&lt;/p&gt;
&lt;h3 id=&#34;5-retratos-realistas-y-personajes-creativos&#34;&gt;5. Retratos realistas y personajes creativos
&lt;/h3&gt;&lt;p&gt;Los retratos siempre han sido una prueba directa de la capacidad de imagen AI.&lt;/p&gt;
&lt;p&gt;Los ejemplos del artículo fuente combinan luz natural, cafeterías, rim lighting, prendas de punto y fondos cálidos desenfocados. El punto real es:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;textura natural de piel&lt;/li&gt;
&lt;li&gt;detalle completo del cabello&lt;/li&gt;
&lt;li&gt;manos que no colapsan estructuralmente&lt;/li&gt;
&lt;li&gt;lógica de iluminación creíble&lt;/li&gt;
&lt;li&gt;atmósfera general sin artefactos AI obvios&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Solo cuando estos puntos se manejan de forma consistente la generación de retratos entra realmente en una etapa usable.&lt;/p&gt;
&lt;h3 id=&#34;6-fotografía-gastronómica&#34;&gt;6. Fotografía gastronómica
&lt;/h3&gt;&lt;p&gt;El artículo fuente también incluye un prompt largo en inglés para generar una foto de ramen tonkotsu con estilo de restaurante de alta gama. Ese ejemplo muestra una tendencia práctica: cuando un modelo es suficientemente fuerte, los prompts pueden empezar a leerse como guiones de fotografía.&lt;/p&gt;
&lt;p&gt;Este estilo de prompt puede especificar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;composición del plato&lt;/li&gt;
&lt;li&gt;material de vajilla&lt;/li&gt;
&lt;li&gt;brillo del caldo&lt;/li&gt;
&lt;li&gt;capas de grasa y bordes tostados del chashu&lt;/li&gt;
&lt;li&gt;estado del huevo pasado por agua&lt;/li&gt;
&lt;li&gt;profundidad de campo y bokeh de fondo&lt;/li&gt;
&lt;li&gt;dirección de luz&lt;/li&gt;
&lt;li&gt;tipo de lente y apertura&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para marcas de restaurantes, diseño de menús, hero images de plataformas de delivery y contenido social, esta generación ya se acerca mucho a sustituir fotografía gastronómica comercial.&lt;/p&gt;
&lt;h3 id=&#34;7-ilustraciones-educativas&#34;&gt;7. Ilustraciones educativas
&lt;/h3&gt;&lt;p&gt;Otra dirección representativa son diagramas científicos y educativos con etiquetas.&lt;/p&gt;
&lt;p&gt;El artículo fuente usa como ejemplo una sección transversal de célula vegetal y pide al modelo manejar todo esto a la vez:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;estructura correcta&lt;/li&gt;
&lt;li&gt;colocación precisa de etiquetas&lt;/li&gt;
&lt;li&gt;líneas guía claras&lt;/li&gt;
&lt;li&gt;tipografía consistente&lt;/li&gt;
&lt;li&gt;uso de color por capas&lt;/li&gt;
&lt;li&gt;estilo general apto para libros de texto o slides docentes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto muestra que el valor de &lt;code&gt;GPT Image 2&lt;/code&gt; no está solo en producir imágenes bonitas, sino también visuales informativos.&lt;/p&gt;
&lt;h2 id=&#34;4-qué-significa-en-la-práctica-para-usuarios-normales&#34;&gt;4. Qué significa en la práctica para usuarios normales
&lt;/h2&gt;&lt;p&gt;Lo que hace que &lt;code&gt;GPT Image 2&lt;/code&gt; merezca atención no es solo que empuje otra vez la calidad de imagen. Más importante aún, aleja la generación de imágenes AI del entretenimiento y la experimentación y la acerca a una herramienta que puede usarse comercialmente y entregarse como trabajo real.&lt;/p&gt;
&lt;p&gt;Se ve en varias formas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;el texto por fin empieza a ser confiable&lt;/li&gt;
&lt;li&gt;interfaces y pósters se parecen más a materiales reales&lt;/li&gt;
&lt;li&gt;imágenes estilo fotografía comercial son más utilizables&lt;/li&gt;
&lt;li&gt;gráficos educativos e informativos también son posibles&lt;/li&gt;
&lt;li&gt;la edición localizada vuelve más realista la iteración&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por supuesto, eso no significa que reemplace por completo a diseñadores, fotógrafos o ilustradores. Los proyectos comerciales reales siguen requiriendo juicio estético, control de marca, conciencia de copyright y revisión humana.&lt;/p&gt;
&lt;p&gt;Pero como mínimo, esta actualización deja algo claro: la competencia en generación de imágenes AI ya no consiste solo en si un modelo puede producir una imagen. Consiste en si ese modelo puede entrar de forma más fiable en flujos de trabajo reales.&lt;/p&gt;
&lt;h2 id=&#34;enlaces-relacionados&#34;&gt;Enlaces relacionados
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Enlace de referencia mencionado en el artículo fuente: &lt;a class=&#34;link&#34; href=&#34;https://getgpt.pro/blog/gpt-image-2-release&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://getgpt.pro/blog/gpt-image-2-release&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Sitio demo mencionado en el artículo fuente: &lt;a class=&#34;link&#34; href=&#34;https://getgpt.pro&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://getgpt.pro&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Enlace de invitación mencionado en el artículo fuente: &lt;a class=&#34;link&#34; href=&#34;https://getgpt.pro/i/ig2&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://getgpt.pro/i/ig2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>nuwa-skill: convertir &#34;destilar a una persona&#34; de idea en workflow ejecutable</title>
        <link>https://knightli.com/es/2026/04/22/nuwa-skill-distill-how-someone-thinks/</link>
        <pubDate>Wed, 22 Apr 2026 16:20:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/22/nuwa-skill-distill-how-someone-thinks/</guid>
        <description>&lt;p&gt;&lt;code&gt;[alchaincyf/nuwa-skill](https://github.com/alchaincyf/nuwa-skill)&lt;/code&gt; puede hacer pensar primero en una cosa: usar AI para responder con la voz de una persona famosa. Pero lo realmente interesante no es si suena convincente. La clave es que intenta convertir &amp;ldquo;destilar cómo piensa una persona&amp;rdquo; en un workflow repetible.&lt;/p&gt;
&lt;p&gt;Si eso funciona, el valor va mucho más allá de unos prompts entretenidos de personaje. Significa tomar el marco de juicio de alguien, sus prioridades, heurísticas comunes y hábitos de comunicación, y convertirlos en una skill que puede invocarse una y otra vez. Lo que quieres no es una frase que suene como algo que esa persona diría, sino algo más cercano a una interfaz operativa para &amp;ldquo;si esta persona analizara el problema, qué miraría primero, cómo haría tradeoffs y qué cuestionaría&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;resuelve-modelado-no-imitación&#34;&gt;Resuelve modelado, no imitación
&lt;/h2&gt;&lt;p&gt;Muchos llamados persona prompts son básicamente capas de estilo.&lt;/p&gt;
&lt;p&gt;Suelen pedir al modelo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;hablar en el tono de alguien&lt;/li&gt;
&lt;li&gt;citar más sus frases características&lt;/li&gt;
&lt;li&gt;imitar la formulación que usa en público&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Eso luce bien en demos, pero suele caerse en trabajo real. La razón es simple: el tono es superficie, mientras la estructura de juicio es el núcleo. Una persona es memorable no porque le gusten ciertas palabras, sino porque aborda problemas de formas reconocibles y consistentes.&lt;/p&gt;
&lt;p&gt;La dirección de &lt;code&gt;nuwa-skill&lt;/code&gt; se acerca más a extraer esos métodos estables. Le importa menos &amp;ldquo;cómo sonar como ellos&amp;rdquo; y más &amp;ldquo;cómo pensar como ellos&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;un-workflow-más-completo&#34;&gt;Un workflow más completo
&lt;/h2&gt;&lt;p&gt;Según la descripción del repositorio, &lt;code&gt;nuwa-skill&lt;/code&gt; busca construir un flujo end-to-end: introducir el nombre de una persona, hacer automáticamente la investigación, extracción y validación, y finalmente organizar el resultado como una skill usable dentro de Claude Code.&lt;/p&gt;
&lt;p&gt;Detrás de esa idea hay varios cambios importantes.&lt;/p&gt;
&lt;p&gt;Primero, asume que la persona destilada no tiene que ser tu compañero de trabajo. Mucha gente encuentra esta idea como &amp;ldquo;capturar cómo trabaja un compañero fuerte&amp;rdquo;. Eso es valioso, pero limitado: el pool de muestras es pequeño y normalmente cubre solo experiencia interna del equipo. &lt;code&gt;nuwa-skill&lt;/code&gt; amplía el objetivo a un rango mucho mayor de personas, como fundadores, inversores, científicos, product managers y escritores.&lt;/p&gt;
&lt;p&gt;Segundo, enfatiza automatización en lugar de pedir al usuario que fabrique prompts a mano. Lo que vuelve práctica esta capacidad no es una redacción bonita, sino poder hacer de forma consistente recolección de fuentes, síntesis de puntos de vista, extracción de patrones y validación de resultados. En cuanto un paso depende totalmente del trabajo manual, el coste de reutilización sube rápido.&lt;/p&gt;
&lt;p&gt;Tercero, intenta que la salida sea una skill y no una conversación única. La primera puede reutilizarse, combinarse e iterarse. La segunda normalmente solo funciona en el contexto actual y se deshace después de unos turnos.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-importa-esta-dirección&#34;&gt;Por qué importa esta dirección
&lt;/h2&gt;&lt;p&gt;Si tratas la AI como máquina de preguntas y respuestas, el caso natural es &amp;ldquo;dame una respuesta&amp;rdquo;. Pero si la tratas como un banco de trabajo, la pregunta pasa a ser &amp;ldquo;dame una forma de mirar este problema&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Ahí se inclina el valor de &lt;code&gt;nuwa-skill&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Por ejemplo, ante una decisión de producto quizá no quieras una respuesta estándar. Quizá quieras varios marcos analíticos muy distintos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;una persona empieza por compounding a largo plazo&lt;/li&gt;
&lt;li&gt;otra por restricciones de recursos&lt;/li&gt;
&lt;li&gt;otra por consistencia de experiencia de usuario&lt;/li&gt;
&lt;li&gt;otra por timing de entrada al mercado&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si esos marcos pueden empaquetarse de forma fiable, la AI deja de ser &amp;ldquo;algo que escribe un párrafo&amp;rdquo; y se vuelve &amp;ldquo;algo que ayuda a cambiar de perspectiva rápido&amp;rdquo;. Eso es mucho más útil que imitar citas famosas, porque afecta directamente la calidad de decisión.&lt;/p&gt;
&lt;h2 id=&#34;lo-más-convincente-convertir-conocimiento-tácito-en-activos-invocables&#34;&gt;Lo más convincente: convertir conocimiento tácito en activos invocables
&lt;/h2&gt;&lt;p&gt;Muchas capacidades de alto valor son difíciles de escribir como SOP.&lt;/p&gt;
&lt;p&gt;Que alguien juzgue consistentemente mejor que otros no suele deberse a que conozca más reglas explícitas, sino a que ha construido un sistema tácito de filtrado durante años:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;qué señales merecen atención primero&lt;/li&gt;
&lt;li&gt;qué ruido debe ignorarse de inmediato&lt;/li&gt;
&lt;li&gt;qué preguntas deben descomponerse&lt;/li&gt;
&lt;li&gt;qué preguntas deben invertirse&lt;/li&gt;
&lt;li&gt;qué conclusiones deben esperar más evidencia&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esta capacidad es difícil de preservar porque las personas no siempre pueden explicarla claramente. Justo por eso la extracción estructurada es valiosa. Lo atractivo de &lt;code&gt;nuwa-skill&lt;/code&gt; es que no intenta mover conocimiento superficial, sino reorganizar hábitos cognitivos.&lt;/p&gt;
&lt;h2 id=&#34;dónde-encaja-mejor&#34;&gt;Dónde encaja mejor
&lt;/h2&gt;&lt;p&gt;Creo que este tipo de skill es especialmente útil en varios escenarios.&lt;/p&gt;
&lt;h3 id=&#34;1-revisión-multiperspectiva-antes-de-una-decisión&#34;&gt;1. Revisión multiperspectiva antes de una decisión
&lt;/h3&gt;&lt;p&gt;Si ya tienes un plan pero temes estar pensando solo por el camino que conoces, cambiar a distintas &amp;ldquo;perspectivas persona&amp;rdquo; para revisar el mismo asunto es más valioso que pedir al modelo que siga expandiendo tu redacción original.&lt;/p&gt;
&lt;h3 id=&#34;2-aprender-el-marco-de-juicio-de-cierto-tipo-de-experto&#34;&gt;2. Aprender el marco de juicio de cierto tipo de experto
&lt;/h3&gt;&lt;p&gt;Mucha gente aprende de expertos coleccionando citas, viendo entrevistas y copiando resúmenes. Al final, a menudo solo recuerda algunas frases bonitas. Cuando un patrón de pensamiento se vuelve una skill, aprender se parece más a &amp;ldquo;invocarlo repetidamente con preguntas reales&amp;rdquo; que a &amp;ldquo;apilar notas estáticas&amp;rdquo;.&lt;/p&gt;
&lt;h3 id=&#34;3-compartir-un-estilo-analítico-en-un-equipo&#34;&gt;3. Compartir un estilo analítico en un equipo
&lt;/h3&gt;&lt;p&gt;Lo que muchos equipos carecen no es solo documentación, sino una respuesta compartida a &amp;ldquo;cómo solemos pensar cuando encontramos un problema&amp;rdquo;. Si este workflow madura más, también podría usarse a la inversa para preservar métodos de operadores internos fuertes. Está claro que el proyecto no quiere limitar la idea a casos internos.&lt;/p&gt;
&lt;h2 id=&#34;la-parte-difícil-de-proyectos-así&#34;&gt;La parte difícil de proyectos así
&lt;/h2&gt;&lt;p&gt;Por supuesto, una dirección atractiva no significa que los problemas difíciles ya estén resueltos.&lt;/p&gt;
&lt;p&gt;El desafío real no es instalar una skill. Es:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;si las fuentes son suficientemente fiables&lt;/li&gt;
&lt;li&gt;si los patrones extraídos son estables y no ilusiones de textos dispersos&lt;/li&gt;
&lt;li&gt;si el modelo realmente usa el marco de una persona o solo repite impresiones comunes&lt;/li&gt;
&lt;li&gt;si las fronteras entre distintas personas se difuminan dentro del modelo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La pregunta clave no es &amp;ldquo;¿puede generar algo plausible?&amp;rdquo;, sino &amp;ldquo;¿puede el marco cognitivo producido por esta skill sobrevivir reutilización en muchas tareas?&amp;rdquo; Si el proyecto profundiza en validación, su credibilidad mejorará mucho.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-va-más-allá-de-una-librería-de-templates-de-prompt&#34;&gt;Por qué va más allá de una librería de templates de prompt
&lt;/h2&gt;&lt;p&gt;En el pasado, muchos proyectos manejaban esta capacidad como una librería de prompts: una persona, un prompt, y el usuario lo copia al chat. El problema es que una librería de templates sigue siendo un activo estático. Se actualiza despacio, la validación es débil y cuesta convertirla en un workflow de producción.&lt;/p&gt;
&lt;p&gt;Lo que &lt;code&gt;nuwa-skill&lt;/code&gt; empuja más lejos es convertir &amp;ldquo;destilación de persona&amp;rdquo; de un problema de template en un problema de workflow.&lt;/p&gt;
&lt;p&gt;Cuando el centro de gravedad cambia de &amp;ldquo;escribir un prompt&amp;rdquo; a &amp;ldquo;generar, validar e iterar sistemáticamente una skill persona&amp;rdquo;, todo empieza a parecer más ingeniería que inspiración. Para cualquiera que quiera usarlo a largo plazo, ese es el cambio más importante.&lt;/p&gt;
&lt;h2 id=&#34;cierre&#34;&gt;Cierre
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;nuwa-skill&lt;/code&gt; es interesante no porque convierta la AI en un show de imitación de celebridades, sino porque acerca &amp;ldquo;cómo aprender cómo piensa alguien&amp;rdquo; a algo ejecutable, reutilizable e iterable.&lt;/p&gt;
&lt;p&gt;Si muchos persona prompts resuelven &amp;ldquo;cómo hablar como alguien&amp;rdquo;, este proyecto quiere resolver &amp;ldquo;cómo mirar problemas como alguien&amp;rdquo;. Lo primero es genial para demos. Lo segundo está mucho más cerca de una herramienta real de productividad.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Repositorio GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/alchaincyf/nuwa-skill&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/alchaincyf/nuwa-skill&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;README del proyecto: &lt;a class=&#34;link&#34; href=&#34;https://github.com/alchaincyf/nuwa-skill/blob/main/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/alchaincyf/nuwa-skill/blob/main/README.md&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Definición de Skill: &lt;a class=&#34;link&#34; href=&#34;https://github.com/alchaincyf/nuwa-skill/blob/main/SKILL.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/alchaincyf/nuwa-skill/blob/main/SKILL.md&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>OpenAI presenta ChatGPT Images 2.0: la generación de imágenes comienza a avanzar hacia resultados entregables</title>
        <link>https://knightli.com/es/2026/04/22/openai-chatgpt-images-2-0-deliverable-image-generation/</link>
        <pubDate>Wed, 22 Apr 2026 14:21:45 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/22/openai-chatgpt-images-2-0-deliverable-image-generation/</guid>
        <description>&lt;p&gt;OpenAI publicó &lt;a class=&#34;link&#34; href=&#34;https://openai.com/index/introtaining-chatgpt-images-2-0/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Presentación de ChatGPT Images 2.0&lt;/a&gt; el 21 de abril de 2026. A juzgar por la página del anuncio, el punto principal no es simplemente que las imágenes se vean mejor. El mensaje más importante es que la generación de imágenes está avanzando hacia algo más controlable, más consciente del diseño y más directamente utilizable.&lt;/p&gt;
&lt;p&gt;Si nos fijamos únicamente en esta página de lanzamiento, se parece más a una muestra densa de capacidades que a un anuncio técnico tradicional. Hay muy poco sobre la arquitectura del modelo, los detalles de capacitación o los puntos de referencia. En cambio, OpenAI utiliza un gran conjunto de ejemplos para responder una pregunta más práctica: ¿puede ahora ChatGPT manejar más trabajo que antes requería correcciones manuales repetidas para el texto, el diseño y el pulido final?&lt;/p&gt;
&lt;h2 id=&#34;01-las-señales-más-claras-en-este-lanzamiento&#34;&gt;01 Las señales más claras en este lanzamiento
&lt;/h2&gt;&lt;p&gt;Las frases más destacadas de la página ya resumen el enfoque:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Mayor precisión y control&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Más fuerte en todos los idiomas&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Sofisticación estilística y realismo&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En conjunto, esas tres ideas dicen mucho.&lt;/p&gt;
&lt;p&gt;En primer lugar, el énfasis se está alejando de la mera imaginación y acercándose al control. La página incluye muchos ejemplos, como carteles, folletos de revistas, páginas promocionales, infografías, hojas de personajes, páginas de cómics y diseños de marcadores listos para imprimir. Lo que comparten estos ejemplos no es sólo el atractivo visual. Requieren manejo de texto, jerarquía, espacios en blanco, composición, coherencia estilística y control de formato al mismo tiempo. Eso sugiere que OpenAI está impulsando intencionalmente el producto desde &amp;ldquo;generar una imagen&amp;rdquo; hacia &amp;ldquo;generar un activo visual que la gente realmente pueda usar&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;En segundo lugar, la representación de texto multilingüe se considera una característica de los titulares. La página incluye carteles multilingües, portadas de libros, una campaña de hospitalidad coreana, manga japonés y varios ejemplos centrados en la tipografía. Esto es importante porque uno de los puntos débiles más persistentes de los modelos de imágenes ha sido el texto largo, los diseños complejos y las escrituras no inglesas. Que OpenAI ponga esto al frente y al centro es en sí mismo una señal: la representación de texto y el diseño en varios idiomas son ahora capacidades que cree que vale la pena mostrar directamente.&lt;/p&gt;
&lt;p&gt;En tercer lugar, la gama estilística es muy amplia. Los ejemplos abarcan imágenes fotorrealistas, carteles de collage retro, gráficos inspirados en la Bauhaus, editoriales de moda, estilos documentales en blanco y negro, ilustraciones de libros infantiles, manga, infografías educativas, cuadrículas de productos y hojas de referencia de personajes. El mensaje no es sólo que el modelo puede imitar muchos estilos visuales. Es que el sistema está intentando adaptarse a un conjunto más amplio de tareas visuales reales.&lt;/p&gt;
&lt;h2 id=&#34;02-por-qué-esto-parece-un-paso-hacia-resultados-entregables&#34;&gt;02 Por qué esto parece un paso hacia resultados entregables
&lt;/h2&gt;&lt;p&gt;Desde el anuncio en sí, ChatGPT Images 2.0 se parece menos a un modelo de conversión de texto a imagen más sólido y más a una herramienta de producción visual mejorada.&lt;/p&gt;
&lt;p&gt;Los modelos anteriores podían producir imágenes impresionantes, pero la experiencia a menudo fallaba cuando la tarea cambiaba a cosas como estas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;crear un póster con un título completo, un subtítulo y un texto de respaldo&lt;/li&gt;
&lt;li&gt;crear una revista o una página promocional con información densa&lt;/li&gt;
&lt;li&gt;generar una página de cómic con continuidad entre personajes y paneles&lt;/li&gt;
&lt;li&gt;producir activos de marketing con relaciones de aspecto fijas, restricciones de diseño claras y tono de marca&lt;/li&gt;
&lt;li&gt;crear contenido visual pulido que incluya texto multilingüe
Esta versión parece diseñada para responder directamente a esas limitaciones anteriores.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La página incluye infografías educativas, carteles de tendencias de diseño, diseños de marcadores listos para imprimir, un cartel de lanzamiento de una cafetería, material de promoción turística, maquetas de productos comerciales y un cartel académico rediseñado. Estas no son sólo imágenes que se ven bonitas de un vistazo. Están mucho más cerca de resultados semiacabados o incluso terminados de flujos de trabajo creativos reales.&lt;/p&gt;
&lt;p&gt;En ese sentido, el cambio más importante aquí puede que no sea un simple aumento en la calidad de la imagen. Puede ser que el modelo esté empezando a parecerse más a un sistema para la producción de contenidos, materiales de marca, educación y trabajos de diseño ligero.&lt;/p&gt;
&lt;h2 id=&#34;03-qué-significa-esto-para-la-dirección-de-productos-de-chatgpt&#34;&gt;03 Qué significa esto para la dirección de productos de ChatGPT
&lt;/h2&gt;&lt;p&gt;La estructura del anuncio también sugiere un cambio de producto más amplio.&lt;/p&gt;
&lt;p&gt;OpenAI no presenta ChatGPT Images 2.0 como una herramienta de nicho solo para artistas o creadores visuales. En cambio, enmarca repetidamente la característica a través de la investigación, el razonamiento, la transformación de fuentes, la organización del diseño, la comunicación de conocimientos y los resultados de marketing. La página incluso incluye ejemplos elaborados en torno a pruebas matemáticas, tendencias de diseño, notas históricas y artículos académicos.&lt;/p&gt;
&lt;p&gt;Eso sugiere que la generación de imágenes dentro de ChatGPT ya no se trata solo de agregar una imagen a un chat o generar una sola ilustración. Se está acercando a ser una capa de expresión de uso general. El objetivo parece ser este: una vez que un usuario ya ha investigado, pensado, organizado y escrito algo en ChatGPT, el sistema también debería poder manejar el resultado visual final.&lt;/p&gt;
&lt;p&gt;Si esa dirección continúa, la competencia en la generación de imágenes se basará menos en la pura estética o el realismo y más en capacidades como estas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;si el sistema puede manejar de forma fiable texto complejo&lt;/li&gt;
&lt;li&gt;si puede preservar la coherencia entre páginas o paneles&lt;/li&gt;
&lt;li&gt;si puede producir diseños más cercanos a los materiales de trabajo reales&lt;/li&gt;
&lt;li&gt;si puede conectarse de forma natural con los flujos de trabajo de investigación, redacción, marketing y enseñanza&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;04-lo-que-no-dice-el-anuncio&#34;&gt;04 Lo que no dice el anuncio
&lt;/h2&gt;&lt;p&gt;Al mismo tiempo, el formato de la página también deja claros sus límites.&lt;/p&gt;
&lt;p&gt;A partir de la página oficial publicada el 21 de abril de 2026, el anuncio se centra mucho más en los resultados que en los métodos. No entra en detalles sobre:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;mejoras cuantificadas con respecto a la generación anterior&lt;/li&gt;
&lt;li&gt;métricas explícitas para la precisión del texto o la representación multilingüe&lt;/li&gt;
&lt;li&gt;límites de falla para tareas de diseño complejas&lt;/li&gt;
&lt;li&gt;Detalles de API, precios, modos de acceso o detalles de integración empresarial&lt;/li&gt;
&lt;li&gt;cambios concretos en las políticas de seguridad o límites de generación&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por lo tanto, es mejor leer la página como una señal de producto que como una especificación técnica completa.&lt;/p&gt;
&lt;h2 id=&#34;05-breve-conclusión&#34;&gt;05 Breve conclusión
&lt;/h2&gt;&lt;p&gt;Si tuviera que resumir ChatGPT Images 2.0 en una frase, la actualización clave no es que &amp;ldquo;dibuja mejor&amp;rdquo;, sino que está mejorando en la producción de trabajos terminados.&lt;/p&gt;
&lt;p&gt;OpenAI claramente quiere que la generación de imágenes evolucione de una herramienta de inspiración a una herramienta de producción que sea más ejecutable, más consciente del diseño, más comunicativa y más directamente utilizable. El control de texto, la producción multilingüe, la estructura del diseño, la gama estilística y la organización visual de formato largo solían ser lugares donde los modelos de imágenes a menudo mostraban sus debilidades. En esta versión, esas mismas áreas se presentan como puntos de venta.
Eso no significa que la generación de imágenes haya resuelto todos los problemas de diseño. Pero este anuncio sí sugiere un cambio en lo que importa. La próxima ventaja competitiva quizá no provenga de quién pueda generar la imagen más llamativa. Puede provenir de quién puede generar de manera más confiable contenido visual que esté realmente listo para usar.&lt;/p&gt;
&lt;h2 id=&#34;enlaces-relacionados&#34;&gt;Enlaces relacionados
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://openai.com/index/introtaining-chatgpt-images-2-0/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Presentación de ChatGPT Images 2.0 - OpenAI&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>CLAUDE.md de 65 líneas de Karpathy: ayudando a la codificación de IA a evitar tres errores comunes</title>
        <link>https://knightli.com/es/2026/04/19/karpathy-claude-md-ai-coding-rules/</link>
        <pubDate>Sun, 19 Apr 2026 18:27:23 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/19/karpathy-claude-md-ai-coding-rules/</guid>
        <description>&lt;p&gt;Un proyecto de GitHub sobre codificación de IA ha recibido mucha atención recientemente. Su núcleo no es una base de código compleja, sino un archivo &lt;code&gt;CLAUDE.md&lt;/code&gt; de aproximadamente 65 líneas. La razón por la que atrajo tantas estrellas no es la complejidad técnica. Es que captura los problemas con los que muchas personas se encuentran repetidamente cuando usan IA para escribir código.&lt;/p&gt;
&lt;p&gt;Los antecedentes comienzan con las observaciones de Andrej Karpathy sobre la codificación de IA. Karpathy es un influyente educador e ingeniero en IA: doctor de Stanford, uno de los primeros contribuyentes de OpenAI y exlíder de IA de Tesla responsable del sistema de visión de Autopilot. Continuó compartiendo sus puntos de vista sobre modelos grandes, educación y herramientas de inteligencia artificial, por lo que sus comentarios sobre los cambios en los flujos de trabajo de programación tienden a llamar mucho la atención de los desarrolladores.&lt;/p&gt;
&lt;p&gt;Una vez dijo que después de usar Claude Code durante algunas semanas, su estilo de programación cambió notablemente. Anteriormente, era aproximadamente un 80% de código escrito a mano y un 20% de asistencia de IA. Ahora está más cerca del 80% del código escrito por IA y del 20% editado por él mismo. Lo describió como &amp;ldquo;programación en inglés&amp;rdquo;, diciéndole a un LLM qué escribir en lenguaje natural.&lt;/p&gt;
&lt;p&gt;Pero también señaló varios problemas recurrentes en la codificación de IA.&lt;/p&gt;
&lt;h2 id=&#34;01-suposiciones-erróneas&#34;&gt;01 Suposiciones erróneas
&lt;/h2&gt;&lt;p&gt;El primer problema es que los modelos hacen suposiciones fácilmente en nombre del usuario y luego siguen escribiendo en ese camino. No siempre manejan su propia confusión y no siempre se detienen a hacer preguntas cuando el requisito es ambiguo.&lt;/p&gt;
&lt;p&gt;Por ejemplo, si el usuario solo dice &amp;ldquo;agregar una función de exportación de usuario&amp;rdquo;, el modelo podría asumir que debe exportar todos los usuarios, generar JSON, escribir en un archivo local y omitir cualquier confirmación sobre permisos o campos. Sólo después de terminar el código el usuario descubre que la comprensión del modelo no coincide con el escenario real.&lt;/p&gt;
&lt;p&gt;Un mejor enfoque es enumerar primero las incertidumbres: ¿debería exportar todos los usuarios o los resultados filtrados? ¿Debería activar una descarga del navegador o ejecutarse como trabajo en segundo plano? ¿Qué campos son necesarios? ¿Qué tamaño tiene el conjunto de datos? ¿Existen restricciones de permisos? Si estas preguntas no se aclaran, escribir más rápido sólo significa ir más lejos.&lt;/p&gt;
&lt;h2 id=&#34;02-sobrecomplejidad&#34;&gt;02 Sobrecomplejidad
&lt;/h2&gt;&lt;p&gt;El segundo problema es que los modelos a menudo convierten problemas simples en complejos. Una tarea que podría manejarse con una función podría recibir clases abstractas, patrones de estrategia, patrones de fábrica, capas de configuración y un montón de puntos de extensión que tal vez nunca sean necesarios.&lt;/p&gt;
&lt;p&gt;Este tipo de código puede parecer diseñado, pero en la práctica aumenta el costo de mantenimiento. La IA es especialmente buena para generar rápidamente estructuras grandes, pero no siempre juzga si esas estructuras son necesarias. El resultado es que una tarea que se puede resolver en 100 líneas se infla en 1000 líneas.&lt;/p&gt;
&lt;p&gt;La prueba es sencilla: ¿un ingeniero senior observaría el cambio y pensaría que está sobrediseñado? Si la respuesta es sí, elimine las capas adicionales y resuelva el problema actual con la menor cantidad de código necesario.&lt;/p&gt;
&lt;h2 id=&#34;03-daños-colaterales&#34;&gt;03 Daños colaterales
&lt;/h2&gt;&lt;p&gt;El tercer problema es que los modelos a veces modifican o eliminan código que no comprenden completamente. Mientras solucionan un pequeño error, pueden cambiar comentarios casualmente, reformatear el código cercano, limpiar importaciones que parecen no utilizadas o incluso tocar lógica no relacionada con la tarea actual.
Estas &amp;ldquo;mejoras inmediatas&amp;rdquo; son riesgosas porque amplían el alcance del cambio y dificultan la revisión. Es posible que el usuario solo desee solucionar un fallo del validador causado por un correo electrónico vacío, pero el modelo también puede mejorar la validación del correo electrónico, agregar validación de nombre de usuario y reescribir cadenas de documentos. Al final, resulta difícil saber qué línea cambió el comportamiento.&lt;/p&gt;
&lt;p&gt;Una regla más segura es: cambiar sólo lo que se debe cambiar y sólo solucionar los problemas causados ​​por su propio cambio. El código muerto existente, los problemas de formato o el bagaje histórico no deben tocarse a menos que la tarea lo solicite explícitamente. Como máximo, menciónalo.&lt;/p&gt;
&lt;h2 id=&#34;04-transformando-las-quejas-en-claudemd&#34;&gt;04 Transformando las quejas en CLAUDE.md
&lt;/h2&gt;&lt;p&gt;Después de que los comentarios de Karpathy se difundieran ampliamente, el desarrollador Forrest Cheung hizo algo inteligente: organizó estas quejas en reglas de comportamiento ejecutables y las puso en un archivo &lt;code&gt;CLAUDE.md&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;El proyecto no contiene código complicado. Su idea clave es convertir las partes más propensas a fallas de la codificación de IA en reglas de trabajo claras. Se pueden resumir en cuatro principios.&lt;/p&gt;
&lt;p&gt;La primera es pensar antes de escribir. No asumas en silencio. No ocultes la confusión. Si un requisito tiene múltiples interpretaciones, enumérelas. Si hay un enfoque más sencillo, dígalo. Pregunte cuando sea necesaria una aclaración y responda cuando sea necesario.&lt;/p&gt;
&lt;p&gt;El segundo es mantener las cosas simples. No agregue funciones que no fueron solicitadas. No abstraiga el código único. No agregue configuraciones innecesarias. No escriba grandes cantidades de código defensivo para escenarios extremadamente improbables. Si 50 líneas pueden resolverlo, no escribas 200.&lt;/p&gt;
&lt;p&gt;El tercero es hacer cambios precisos. Cada línea modificada debe rastrearse directamente hasta la solicitud del usuario. No mejore el código cercano como misión secundaria. No refactorices algo que no esté roto. Haga coincidir el estilo del proyecto existente tanto como sea posible.&lt;/p&gt;
&lt;p&gt;El cuarto es la ejecución impulsada por objetivos. No le des al modelo sólo una instrucción vaga. Dale un criterio de éxito verificable. Por ejemplo, &amp;ldquo;corregir el error&amp;rdquo; puede convertirse en &amp;ldquo;escribir una prueba que reproduzca el error y luego hacer que pase&amp;rdquo;; &amp;ldquo;agregar validación&amp;rdquo; puede convertirse en &amp;ldquo;escribir pruebas de entradas no válidas y hacerlas pasar&amp;rdquo;. Cuanto más claro sea el criterio de éxito, más fácil será para el modelo avanzar hacia su finalización.&lt;/p&gt;
&lt;h2 id=&#34;05-por-qué-despegó&#34;&gt;05 Por qué despegó
&lt;/h2&gt;&lt;p&gt;Este proyecto se hizo popular no porque el contenido sea misterioso, sino porque se acerca al trabajo de desarrollo real.&lt;/p&gt;
&lt;p&gt;Muchas personas que utilizan IA para codificar han visto escenas similares: el modelo malinterpreta con confianza el requisito, el código se vuelve más complejo a medida que avanza o toca lugares que no debería tocar. El valor de &lt;code&gt;CLAUDE.md&lt;/code&gt; es que convierte esas experiencias en reglas de colaboración que se pueden colocar dentro de un proyecto.&lt;/p&gt;
&lt;p&gt;El coste de entrada también es bajo: un archivo puede empezar a marcar la diferencia, sin una integración complicada. Combinado con la influencia de Karpathy y los ejemplos prácticos de comparación del proyecto, se extendió naturalmente a través de la base de usuarios de Claude Code y la comunidad de codificación de IA en general.&lt;/p&gt;
&lt;p&gt;Más importante aún, estas reglas no son solo para el Código Claude. No importa qué herramienta de codificación de IA utilice, los problemas subyacentes son similares: el modelo necesita saber cuándo preguntar, cuándo simplificar, cuándo detenerse y cómo decidir que la tarea está completa.&lt;/p&gt;
&lt;h2 id=&#34;06-lo-que-los-desarrolladores-pueden-llevarse&#34;&gt;06 Lo que los desarrolladores pueden llevarse
&lt;/h2&gt;&lt;p&gt;La lección para los desarrolladores comunes es simple: la codificación con IA no se trata de lanzar una oración a un modelo y esperar un milagro. El enfoque eficaz es darle límites al modelo.&lt;/p&gt;
&lt;p&gt;Cuando el requisito no esté claro, pídale que exponga sus supuestos primero. Cuando la implementación comience a complicarse, pídale que vuelva a la solución viable más pequeña. Al cambiar el código, manténgalo enfocado en el objetivo de la tarea. Al finalizar el trabajo, utilice pruebas, comandos o puntos de control explícitos para verificar el resultado.&lt;/p&gt;
&lt;p&gt;La IA ya es muy capaz de escribir código, pero aún necesita buenas limitaciones de colaboración. El hecho de que un breve &lt;code&gt;CLAUDE.md&lt;/code&gt; pueda atraer tanta atención demuestra que los desarrolladores no sólo necesitan modelos más inteligentes. También necesitan formas de trabajo más fiables.&lt;/p&gt;
&lt;p&gt;En resumen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pensar antes de escribir para reducir suposiciones erróneas.&lt;/li&gt;
&lt;li&gt;Mantenga las cosas simples para evitar el diseño excesivo.&lt;/li&gt;
&lt;li&gt;Realizar cambios precisos para controlar el alcance del cambio.&lt;/li&gt;
&lt;li&gt;Trabajar hacia metas con criterios de éxito verificables.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas cuatro reglas no son complicadas, pero son prácticas. El requisito previo para que la codificación de IA realmente mejore la eficiencia es no hacer que el modelo escriba más. Está haciendo que escriba con mayor precisión, con menos código y bajo un mejor control.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Uso más eficiente de la cuota de código de Claude: modelos, contexto, almacenamiento en caché y /compact</title>
        <link>https://knightli.com/es/2026/04/19/claude-code-usage-context-compact-notes/</link>
        <pubDate>Sun, 19 Apr 2026 15:29:06 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/19/claude-code-usage-context-compact-notes/</guid>
        <description>&lt;p&gt;Muchos usuarios de Claude Code o Claude Max se encuentran con el mismo problema: incluso después de pagar por Pro, Max 5x o Max 20x, la advertencia de uso aparece rápidamente o tienen que esperar al siguiente reinicio. Esto resulta especialmente obvio cuando Claude Code lee muchos archivos, corrige errores complicados o ejecuta tareas largas en un proyecto grande.&lt;/p&gt;
&lt;p&gt;El punto clave es este: el uso no se deduce linealmente por &amp;ldquo;minutos&amp;rdquo;. Depende del modelo, la longitud del contexto, los archivos adjuntos, el tamaño del código base, el historial de conversaciones, las llamadas a herramientas y la capacidad actual. En el mismo período de 5 horas, una persona puede trabajar durante mucho tiempo mientras que otra alcanza el límite en minutos. Por lo general, la cuenta no está rota; cada solicitud es simplemente demasiado pesada.&lt;/p&gt;
&lt;p&gt;Esta nota recoge un conjunto de hábitos prácticos para utilizar la cuota de forma más eficiente.&lt;/p&gt;
&lt;h2 id=&#34;01-primero-comprenda-la-ventana-de-uso-de-claude&#34;&gt;01 Primero comprenda la ventana de uso de Claude
&lt;/h2&gt;&lt;p&gt;Tanto Claude Pro como Max tienen límites de uso. El uso de Claude Code se comparte con Claude en la web, el escritorio y el dispositivo móvil bajo la misma cuota de suscripción. El centro de ayuda de Anthropic explica que el recuento de mensajes depende de la longitud del mensaje, el tamaño del archivo adjunto, la duración de la conversación actual, el modelo o característica utilizada, y que el uso de Claude Code también se ve afectado por la complejidad del proyecto, el tamaño de la base del código y la configuración de aceptación automática.&lt;/p&gt;
&lt;p&gt;Una forma sencilla de pensarlo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pro: adecuado para uso ligero y proyectos pequeños.&lt;/li&gt;
&lt;li&gt;Max 5x: adecuado para un uso más frecuente y bases de código más grandes.&lt;/li&gt;
&lt;li&gt;Máx. 20x: adecuado para colaboraciones diarias más intensas.&lt;/li&gt;
&lt;li&gt;Las ventanas de uso se restablecen en sesiones de 5 horas.&lt;/li&gt;
&lt;li&gt;Los mensajes largos, las conversaciones largas, los archivos grandes y las tareas complejas consumen el uso más rápidamente.&lt;/li&gt;
&lt;li&gt;Los modelos más fuertes, como Opus, alcanzan los límites más rápido que Sonnet.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Así que &amp;ldquo;sólo lo usé durante 20 minutos&amp;rdquo; no explica mucho por sí solo. Lo que importa es cuánto contexto leyó Claude durante esos 20 minutos, qué modelo se utilizó, si los archivos grandes se procesaron repetidamente y si la misma larga conversación siguió acumulando más tareas.&lt;/p&gt;
&lt;h2 id=&#34;02-primer-hábito-no-optar-por-el-modelo-más-caro&#34;&gt;02 Primer hábito: no optar por el modelo más caro
&lt;/h2&gt;&lt;p&gt;La familia de modelos Claude suele posicionarse así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Opus&lt;/code&gt;: capacidad más potente, adecuada para razonamientos complejos, decisiones de arquitectura y errores difíciles.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Sonnet&lt;/code&gt;: capacidad y coste equilibrados, adecuado para la mayoría de las tareas de codificación cotidianas.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Haiku&lt;/code&gt;: más ligero, adecuado para clasificación, resumen y conversión de formato sencillos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para scripts diarios, pequeñas correcciones de errores, limpieza de documentación y explicación de código, Sonnet suele ser suficiente. Guarde Opus para casos como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Diseño de arquitectura compleja.&lt;/li&gt;
&lt;li&gt;Refactorizaciones profundas de múltiples archivos.&lt;/li&gt;
&lt;li&gt;Errores difíciles de reproducir.&lt;/li&gt;
&lt;li&gt;Solución de problemas de cadena larga.&lt;/li&gt;
&lt;li&gt;Tareas donde el modelo normal está claramente estancado.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En Claude Code, use &lt;code&gt;/model&lt;/code&gt; para cambiar de modelo o establezca el valor predeterminado en &lt;code&gt;/config&lt;/code&gt;. Un hábito más constante es utilizar Sonnet de forma predeterminada y cambiar a Opus sólo en puntos clave, en lugar de ejecutar toda la tarea en Opus.&lt;/p&gt;
&lt;h2 id=&#34;03-segundo-hábito-controlar-el-contexto-no-arrastrar-tareas-antiguas&#34;&gt;03 Segundo hábito: controlar el contexto, no arrastrar tareas antiguas
&lt;/h2&gt;&lt;p&gt;Cuanto más largo sea el contexto, más necesitará procesar Claude en cada turno y más rápido se consumirá el uso. Los documentos del Código Claude recomiendan explícitamente la gestión proactiva del contexto:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Utilice &lt;code&gt;/clear&lt;/code&gt; cuando cambie a una tarea no relacionada.&lt;/li&gt;
&lt;li&gt;Utilice &lt;code&gt;/compact&lt;/code&gt; cuando finalice una fase pero debe permanecer un contexto importante.&lt;/li&gt;
&lt;li&gt;Utilice &lt;code&gt;/context&lt;/code&gt; para ver qué está ocupando espacio.&lt;/li&gt;
&lt;li&gt;Configure una línea de estado si desea visibilidad continua del estado.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un ritmo útil:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Small phase done: /compact
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Large task done: /clear
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Switching to unrelated work: /clear
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Context usage getting high: /compact early
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;/compact&lt;/code&gt; resume el historial de conversaciones anteriores y al mismo tiempo conserva el estado de las tareas clave, las conclusiones, las rutas de los archivos y el trabajo restante. Reduce la cantidad de historial que se incluye en solicitudes posteriores. También puede agregar una breve instrucción:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/compact Preserve changed files, test results, remaining TODOs, and key design decisions
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;No espere a que se compacte automáticamente. Los documentos señalan que Claude Code se autocompacta cuando el contexto se acerca al límite, pero la compactación manual en los límites de fase suele ser más fácil de controlar.&lt;/p&gt;
&lt;h2 id=&#34;04-tercer-hábito-las-conversaciones-largas-y-los-archivos-grandes-hacen-que-cada-solicitud-sea-más-pesada&#34;&gt;04 Tercer hábito: las conversaciones largas y los archivos grandes hacen que cada solicitud sea más pesada
&lt;/h2&gt;&lt;p&gt;Mucha gente supone que &amp;ldquo;Sólo hice una pregunta más&amp;rdquo; debería ser barato. Pero en una conversación larga, esa pregunta puede tener detrás una gran cantidad de historia, resúmenes de archivos, definiciones de herramientas y reglas del sistema.&lt;/p&gt;
&lt;p&gt;Las cosas que fácilmente inflan el contexto incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Conversaciones largas que nunca se aclaran.&lt;/li&gt;
&lt;li&gt;Pedirle a Claude que lea archivos grandes completos.&lt;/li&gt;
&lt;li&gt;Pegar registros largos, resultados de compilación o resultados de prueba.&lt;/li&gt;
&lt;li&gt;Agregar muchas capturas de pantalla o imágenes a la vez.&lt;/li&gt;
&lt;li&gt;Pidiéndole que escanee repetidamente todo el repositorio.&lt;/li&gt;
&lt;li&gt;Un &lt;code&gt;CLAUDE.md&lt;/code&gt; demasiado largo.&lt;/li&gt;
&lt;li&gt;Demasiados servidores MCP habilitados.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un enfoque más eficiente: pegue solo los errores clave de los registros, incluya solo las partes fallidas del resultado de la prueba y deje que Claude use &lt;code&gt;rg&lt;/code&gt;, &lt;code&gt;head&lt;/code&gt;, &lt;code&gt;tail&lt;/code&gt; y la búsqueda de símbolos antes de leer solo las partes necesarias. Si el filtrado de la línea de comandos puede reducir el contenido, no pegue todo en contexto.&lt;/p&gt;
&lt;h2 id=&#34;05-cuarto-hábito-comprender-el-almacenamiento-en-caché-pero-no-adorarlo&#34;&gt;05 Cuarto hábito: comprender el almacenamiento en caché, pero no adorarlo
&lt;/h2&gt;&lt;p&gt;El almacenamiento en caché de avisos de Anthropic puede almacenar en caché prefijos de avisos repetidos. La vida útil predeterminada de la caché es de 5 minutos y también se admite una caché de 1 hora. Cuando se alcanza el caché, no es necesario reprocesar completamente el contexto repetido de gran tamaño, lo que ayuda a reducir los costos y mejorar la utilización del límite de velocidad.&lt;/p&gt;
&lt;p&gt;Pero el almacenamiento en caché tiene limitaciones:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El contenido debe coincidir exactamente, incluidos texto e imágenes.&lt;/li&gt;
&lt;li&gt;La caché predeterminada es de corta duración.&lt;/li&gt;
&lt;li&gt;Cambiar modelos, herramientas, indicaciones del sistema o estructura de contexto puede reducir los accesos al caché.&lt;/li&gt;
&lt;li&gt;Los tokens de salida no desaparecen debido al almacenamiento en caché; aún es necesario generar la respuesta.&lt;/li&gt;
&lt;li&gt;La forma en que Claude Code utiliza el almacenamiento en caché es un detalle de implementación a nivel de producto, por lo que no lo trate como &amp;ldquo;memoria libre&amp;rdquo; permanente.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En la práctica, lo importante no es estudiar cada detalle del almacenamiento en caché. Mantiene la sesión estable:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Evite cambios frecuentes de modelo dentro de la misma fase.&lt;/li&gt;
&lt;li&gt;No reescriba repetidamente grandes bloques de reglas a mitad de la tarea.&lt;/li&gt;
&lt;li&gt;No sigas agregando nuevas imágenes dentro de la misma tarea.&lt;/li&gt;
&lt;li&gt;No dejes una tarea larga inactiva durante demasiado tiempo y luego regreses con otra gran solicitud.&lt;/li&gt;
&lt;li&gt;Utilice &lt;code&gt;/compact&lt;/code&gt; en los límites de fase.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto hace que el contexto repetido sea más fácil de reutilizar y reduce el peso de las solicitudes posteriores.&lt;/p&gt;
&lt;h2 id=&#34;06-sobre-las-horas-pico-evítalas-cuando-puedas-pero-no-las-trates-como-una-fórmula&#34;&gt;06 Sobre las horas pico: evítalas cuando puedas, pero no las trates como una fórmula
&lt;/h2&gt;&lt;p&gt;La gente suele decir que ciertas horas se sienten más apretadas. El centro de ayuda de Anthropic es más cuidadoso: el recuento de mensajes puede verse afectado por la capacidad actual de Claude, la duración de la conversación, los archivos adjuntos, el modelo y las características. En otras palabras, la capacidad máxima puede afectar la experiencia, pero no trate una ventana horaria local específica como una regla permanente.&lt;/p&gt;
&lt;p&gt;Sugerencias prácticas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Realice grandes refactorizaciones y análisis exhaustivos en períodos en los que tanto su red como el servicio sean estables.&lt;/li&gt;
&lt;li&gt;No comiences una tarea enorme justo antes de que planees alejarte.&lt;/li&gt;
&lt;li&gt;Si espera salir por un largo tiempo, ejecute &lt;code&gt;/compact&lt;/code&gt; o &lt;code&gt;/clear&lt;/code&gt; primero.&lt;/li&gt;
&lt;li&gt;Para ediciones pequeñas, no utilices Opus con un contexto largo a menos que realmente lo necesites.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto es más confiable que memorizar una regla fija de &amp;ldquo;no usarlo de X a Y&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;07-slim-down-claudemd-reglas-mcp-y-habilidades&#34;&gt;07 Slim Down CLAUDE.md, reglas, MCP y habilidades
&lt;/h2&gt;&lt;p&gt;Claude Code carga reglas del proyecto, información de herramientas y algo de contexto ambiental en la sesión. Los documentos oficiales también recomiendan separar las reglas generales de las reglas especializadas para que cada sesión no comience con una gran cantidad de texto no relacionado.&lt;/p&gt;
&lt;p&gt;Una división útil:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;: sólo reglas globales que siempre se aplican.&lt;/li&gt;
&lt;li&gt;reglas: reglas específicas de ruta o de tipo de archivo.&lt;/li&gt;
&lt;li&gt;habilidades: flujos de trabajo específicos, como publicación de publicaciones, implementación, generación de imágenes o confirmación de código.&lt;/li&gt;
&lt;li&gt;MCP: solo habilita los servidores que la tarea actual realmente necesita.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si &lt;code&gt;CLAUDE.md&lt;/code&gt; tiene cientos o miles de líneas, cada sesión conlleva ese costo. Un mejor patrón es trasladar flujos de trabajo ocasionales a habilidades y cargarlos solo cuando sea necesario.&lt;/p&gt;
&lt;p&gt;MCP es similar. Más herramientas no significan automáticamente más eficiencia. Los documentos de Claude Code mencionan el uso de &lt;code&gt;/mcp&lt;/code&gt; para ver y deshabilitar servidores innecesarios, y &lt;code&gt;/context&lt;/code&gt; para ver qué está consumiendo espacio de contexto.&lt;/p&gt;
&lt;h2 id=&#34;08-lista-de-comandos-prácticos&#34;&gt;08 Lista de comandos prácticos
&lt;/h2&gt;&lt;p&gt;Estos son los comandos diarios más útiles:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/model
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Cambiar de modelo. Sonnet es un buen valor predeterminado; Utilice Opus para razonamientos complejos.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/clear
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Borrar el contexto actual. Úselo cuando cambie a un trabajo no relacionado.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/compact
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Comprimir el historial de conversaciones. Úselo cuando finalice una fase pero continúe la misma tarea.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/context
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Inspeccione el uso del contexto y encuentre qué está ocupando espacio.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/status
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Verifique la suscripción o el estado relacionado con el uso. El centro de ayuda de Anthropic también recomienda monitorear la asignación restante.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/mcp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Vea y administre servidores MCP y desactive las herramientas que no sean necesarias para la tarea actual.&lt;/p&gt;
&lt;p&gt;Si utiliza la facturación API, &lt;code&gt;/cost&lt;/code&gt; puede resultar útil. Pero para las suscripciones Pro/Max, los documentos de Claude Code explican que la estimación en dólares de &amp;ldquo;/cost&amp;rdquo; no es la referencia de facturación correcta; los suscriptores deberían confiar más en la información de uso como &lt;code&gt;/stats&lt;/code&gt; y &lt;code&gt;/status&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;09-un-flujo-de-trabajo-para-ahorrar-cuotas&#34;&gt;09 Un flujo de trabajo para ahorrar cuotas
&lt;/h2&gt;&lt;p&gt;Un flujo de trabajo práctico se ve así:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Ejecute &lt;code&gt;/clear&lt;/code&gt; antes de comenzar una nueva tarea.&lt;/li&gt;
&lt;li&gt;Utilice Sonnet de forma predeterminada.&lt;/li&gt;
&lt;li&gt;Deje que Claude inspeccione primero la estructura del proyecto y los archivos clave, no todo el repositorio.&lt;/li&gt;
&lt;li&gt;Ejecute &lt;code&gt;/compact&lt;/code&gt; después de cada pequeña fase.&lt;/li&gt;
&lt;li&gt;Cambie a Opus solo para bloqueadores duros.&lt;/li&gt;
&lt;li&gt;Filtre registros, errores y pruebe los resultados antes de pegarlos.&lt;/li&gt;
&lt;li&gt;Ejecute &lt;code&gt;/clear&lt;/code&gt; una vez finalizada la tarea; No comience un nuevo trabajo con un contexto obsoleto.&lt;/li&gt;
&lt;li&gt;Revise periódicamente &lt;code&gt;CLAUDE.md&lt;/code&gt;, MCP y las habilidades para reducir el contexto siempre activo.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;La idea central es simple: dejar que Claude vea sólo lo que realmente necesita para la tarea actual.&lt;/p&gt;
&lt;h2 id=&#34;10-resumen&#34;&gt;10 Resumen
&lt;/h2&gt;&lt;p&gt;El uso de Claude Code que se agota rápidamente no suele deberse a una sola cosa. A menudo es una combinación de modelos de alto costo, largas conversaciones sin borrar, demasiados archivos y registros, contexto de reglas y MCP pesado, reutilización de caché más débil y fluctuaciones máximas de capacidad.&lt;/p&gt;
&lt;p&gt;Las soluciones prácticas también son sencillas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Utilice Sonnet para el trabajo diario.&lt;/li&gt;
&lt;li&gt;Guarde Opus para problemas verdaderamente complejos.&lt;/li&gt;
&lt;li&gt;Utilice &lt;code&gt;/compact&lt;/code&gt; cuando finalice una fase.&lt;/li&gt;
&lt;li&gt;Utilice &lt;code&gt;/clear&lt;/code&gt; al cambiar de tarea.&lt;/li&gt;
&lt;li&gt;Utilice &lt;code&gt;/context&lt;/code&gt; para encontrar el contexto hinchado.&lt;/li&gt;
&lt;li&gt;Adelgazar &lt;code&gt;CLAUDE.md&lt;/code&gt;, reglas, MCP y habilidades.&lt;/li&gt;
&lt;li&gt;No volcar todo el repositorio, registros completos o lotes de imágenes grandes en contexto.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La cantidad de trabajo que puede soportar el mismo plan Pro o Max depende en gran medida de cómo gestiona el contexto. Si reduce el contexto y aclara los límites de las tareas, Claude Code se sentirá mucho más estable.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Centro de ayuda de Claude: uso de Claude Code con su plan Pro o Max: &lt;a class=&#34;link&#34; href=&#34;https://support.claude.com/en/articles/11145838-using-claude-code-with-your-pro-or-max-plan&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://support.claude.com/en/articles/11145838-using-claude-code-with-your-pro-or-max-plan&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Centro de ayuda de Claude: Acerca del uso del plan Max de Claude: &lt;a class=&#34;link&#34; href=&#34;https://support.anthropic.com/en/articles/11014257-about-claude-s-max-plan-usage/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://support.anthropic.com/en/articles/11014257-about-claude-s-max-plan-usage/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Claude Code Docs: Gestione los costes de forma eficaz: &lt;a class=&#34;link&#34; href=&#34;https://code.claude.com/docs/en/costs&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://code.claude.com/docs/en/costs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Anthropic Docs: almacenamiento en caché rápido: &lt;a class=&#34;link&#34; href=&#34;https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Notas del proyecto rembg: una herramienta de eliminación de fondo local</title>
        <link>https://knightli.com/es/2026/04/19/rembg-background-removal-notes/</link>
        <pubDate>Sun, 19 Apr 2026 08:56:01 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/19/rembg-background-removal-notes/</guid>
        <description>&lt;p&gt;&lt;code&gt;rembg&lt;/code&gt; es una herramienta de eliminación de fondo de imágenes. Se puede utilizar como herramienta de línea de comandos, biblioteca de Python, servidor HTTP o contenedor Docker. Su propósito es sencillo: tomar una imagen como entrada y generar el primer plano con un canal alfa. Funciona bien para imágenes de productos, retratos, procesamiento de materiales y flujos de trabajo de imágenes automatizados.&lt;/p&gt;
&lt;p&gt;La mejor parte es que puede ejecutarse localmente. Si no desea cargar imágenes de origen a un servicio de recorte en línea, necesita procesamiento por lotes o desea conectar la eliminación de fondo a scripts y sistemas comerciales, &lt;code&gt;rembg&lt;/code&gt; es más fácil de automatizar que una herramienta web.&lt;/p&gt;
&lt;h2 id=&#34;01-instalación&#34;&gt;01 Instalación
&lt;/h2&gt;&lt;p&gt;La versión actual requiere Python &lt;code&gt;&amp;gt;=3.11,&amp;lt;3.14&lt;/code&gt;. Elija el backend según su hardware:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install &lt;span class=&#34;s2&#34;&gt;&amp;#34;rembg[cpu]&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si necesita la CLI, agregue &lt;code&gt;cli&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install &lt;span class=&#34;s2&#34;&gt;&amp;#34;rembg[cpu,cli]&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Para entornos NVIDIA CUDA, instale la versión GPU:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install &lt;span class=&#34;s2&#34;&gt;&amp;#34;rembg[gpu,cli]&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Para entornos AMD ROCm, primero instale &lt;code&gt;onnxruntime-rocm&lt;/code&gt; siguiendo las instrucciones oficiales de ROCm, luego instale:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install &lt;span class=&#34;s2&#34;&gt;&amp;#34;rembg[rocm,cli]&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;La mayoría de los problemas con la versión de GPU no están en &lt;code&gt;rembg&lt;/code&gt; en sí, sino en si coinciden &lt;code&gt;onnxruntime-gpu&lt;/code&gt;, CUDA, cuDNN y las versiones del controlador. Si la instalación falla, primero confirme el flujo de trabajo con la versión de la CPU y luego ocúpese del entorno de la GPU.&lt;/p&gt;
&lt;h2 id=&#34;02-subcomandos-cli&#34;&gt;02 Subcomandos CLI
&lt;/h2&gt;&lt;p&gt;Después de instalar la CLI, puede usar &lt;code&gt;rembg&lt;/code&gt; directamente en la terminal. Proporciona principalmente 4 subcomandos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;i&lt;/code&gt;: procesa un solo archivo.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;p&lt;/code&gt;: procesa una carpeta completa.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;s&lt;/code&gt;: inicia un servidor HTTP.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;b&lt;/code&gt;: procesa un flujo binario RGB de 24 píxeles, utilizado a menudo con FFmpeg.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mostrar ayuda:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rembg --help
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rembg i --help
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Procese una única imagen local:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rembg i input.png output.png
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Tubería en una imagen remota:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -s http://input.png &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; rembg i &amp;gt; output.png
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Especifique un modelo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rembg i -m u2netp input.png output.png
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Devuelve sólo la máscara:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rembg i -om input.png mask.png
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Habilitar estera alfa:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rembg i -a input.png output.png
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;-a&lt;/code&gt; a veces puede producir cabello más natural, bordes borrosos y límites semitransparentes, pero es más lento y no mejora notablemente todas las imágenes.&lt;/p&gt;
&lt;h2 id=&#34;03-carpetas-de-procesamiento-por-lotes&#34;&gt;03 Carpetas de procesamiento por lotes
&lt;/h2&gt;&lt;p&gt;El procesamiento por lotes es una de las partes más útiles de &amp;ldquo;rembg&amp;rdquo;. Coloque las imágenes de origen en un directorio y envíe los resultados a otro:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rembg p path/to/input path/to/output
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Esté atento a los cambios de directorio y procese automáticamente imágenes nuevas o modificadas:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rembg p -w path/to/input path/to/output
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Este modo funciona bien con scripts de descarga, limpieza de imágenes de productos y carpetas de materiales. Por ejemplo, suelte imágenes en &amp;ldquo;entrada&amp;rdquo; y deje que &amp;ldquo;rembg&amp;rdquo; genere archivos PNG transparentes en &amp;ldquo;salida&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;04-utilizándolo-como-biblioteca-de-python&#34;&gt;04 Utilizándolo como biblioteca de Python
&lt;/h2&gt;&lt;p&gt;Si desea integrarlo en su propio script, la forma más sencilla es &amp;ldquo;eliminar&amp;rdquo;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;rembg&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;remove&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;with&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;open&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;input.png&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;rb&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;with&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;open&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;output.png&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;wb&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;o&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;input_data&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;read&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;output_data&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;remove&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;input_data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;o&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;write&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;output_data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;También puedes procesar imágenes PIL directamente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;rembg&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;remove&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;PIL&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;input_image&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;open&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;input.png&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;output_image&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;remove&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;input_image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;output_image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;save&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;output.png&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Para el procesamiento por lotes, reutilice una sesión para que el modelo no se inicialice nuevamente para cada imagen:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;pathlib&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;rembg&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;remove&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;new_session&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;session&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;new_session&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;input&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;glob&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;*.png&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;output&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;parent&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt; &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stem&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;.out.png&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;with&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;open&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;rb&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;with&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;open&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;output&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;wb&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;o&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;o&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;write&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;remove&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;read&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(),&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;session&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;session&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si está creando un servicio de procesamiento de imágenes de larga duración, la reutilización de sesiones suele ser una mejor opción que llamar repetidamente a la CLI.&lt;/p&gt;
&lt;h2 id=&#34;05-iniciando-un-servidor-http&#34;&gt;05 Iniciando un servidor HTTP
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;rembg&lt;/code&gt; también puede iniciar un servidor HTTP directamente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rembg s --host 0.0.0.0 --port &lt;span class=&#34;m&#34;&gt;7000&lt;/span&gt; --log_level info
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Después del inicio, visite:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://localhost:7000/api
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Eliminar el fondo de una URL:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -s &lt;span class=&#34;s2&#34;&gt;&amp;#34;http://localhost:7000/api/remove?url=http://input.png&amp;#34;&lt;/span&gt; -o output.png
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Sube una imagen local:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -s -F &lt;span class=&#34;nv&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;@input.jpg &lt;span class=&#34;s2&#34;&gt;&amp;#34;http://localhost:7000/api/remove&amp;#34;&lt;/span&gt; -o output.png
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si solo necesita la API y no necesita la interfaz de usuario de Gradio, desactive la interfaz de usuario para reducir el uso inactivo de la CPU:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rembg s --no-ui
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El modo servidor es adecuado para herramientas internas, flujos de automatización u otras aplicaciones. Pero no es un sistema completo de gestión de activos de imágenes. La autenticación, la limitación de velocidad, las colas y la limpieza de archivos aún deben gestionarse fuera de él.&lt;/p&gt;
&lt;h2 id=&#34;06-uso-de-docker&#34;&gt;06 Uso de Docker
&lt;/h2&gt;&lt;p&gt;La versión de CPU puede usar la imagen oficial directamente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -v .:/data danielgatis/rembg i /data/input.png /data/output.png
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;La aceleración CUDA requiere NVIDIA Container Toolkit en el host y, por lo general, requiere crear una imagen a partir del &lt;code&gt;Dockerfile_nvidia_cuda_cudnn_gpu&lt;/code&gt; del proyecto:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker build -t rembg-nvidia-cuda-cudnn-gpu -f Dockerfile_nvidia_cuda_cudnn_gpu .
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Ejecutar ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run --rm -it --gpus all &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -v /dev/dri:/dev/dri &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -v &lt;span class=&#34;nv&#34;&gt;$PWD&lt;/span&gt;:/data &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  rembg-nvidia-cuda-cudnn-gpu &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  i -m birefnet-general /data/input.png /data/output.png
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El archivo README oficial señala que la imagen de la GPU es mucho más grande que la imagen de la CPU y los archivos del modelo no están incluidos en la imagen. Para evitar descargar modelos repetidamente, monte el directorio del modelo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -v /path/to/models:/root/.u2net ...
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;07-opciones-de-modelo&#34;&gt;07 Opciones de modelo
&lt;/h2&gt;&lt;p&gt;Cuando &lt;code&gt;rembg&lt;/code&gt; usa un modelo por primera vez, lo descarga automáticamente a &lt;code&gt;~/.u2net/&lt;/code&gt;. Los modelos comunes incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;u2net&lt;/code&gt;: un modelo de propósito general para casos comunes.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;u2netp&lt;/code&gt;: una versión ligera con velocidad y tamaño más amigables.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;u2net_human_seg&lt;/code&gt;: enfocado a la segmentación humana.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;u2net_cloth_seg&lt;/code&gt;: enfocado al análisis de ropa.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;silueta&lt;/code&gt;: similar a &lt;code&gt;u2net&lt;/code&gt;, pero más pequeña.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;isnet-general-use&lt;/code&gt;: un modelo más nuevo de propósito general.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;isnet-anime&lt;/code&gt;: enfocado a la segmentación de personajes de anime.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;birefnet-general&lt;/code&gt;: un modelo de imagen general utilizado en el ejemplo README.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sam&lt;/code&gt;: puede trabajar con parámetros adicionales como puntos de aviso.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En la práctica, no elijas sólo por el nombre del modelo. Las imágenes de productos, los retratos, las imágenes de anime, los fondos complejos y los objetos transparentes tienen requisitos diferentes. Un enfoque más seguro es elegir un conjunto de imágenes representativo, ejecutar varios modelos, comparar bordes, áreas omitidas, eliminaciones falsas y velocidad, y luego decidir el modelo predeterminado.&lt;/p&gt;
&lt;p&gt;Si desea utilizar un modelo &lt;code&gt;.onnx&lt;/code&gt; personalizado, colóquelo en el directorio del modelo predeterminado &lt;code&gt;~/.u2net/&lt;/code&gt; y configúrelo cuando sea necesario:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;MODEL_CHECKSUM_DISABLED&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Esto puede evitar que &lt;code&gt;rembg&lt;/code&gt; sobrescriba su archivo de modelo debido a la lógica de suma de comprobación.&lt;/p&gt;
&lt;h2 id=&#34;08-casos-de-uso-adecuados&#34;&gt;08 Casos de uso adecuados
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;rembg&lt;/code&gt; se adapta bien a estas tareas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Generar por lotes imágenes de productos con fondo transparente.&lt;/li&gt;
&lt;li&gt;Extraiga primeros planos de retratos, fotografías de identificación e imágenes de materiales.&lt;/li&gt;
&lt;li&gt;Integre la eliminación de fondo en scripts de Python o servicios backend.&lt;/li&gt;
&lt;li&gt;Implementar una API de eliminación de fondo simple en una red interna.&lt;/li&gt;
&lt;li&gt;Utilice tuberías FFmpeg para procesar fotogramas de vídeo o secuencias de imágenes.&lt;/li&gt;
&lt;li&gt;Mantenga los materiales sensibles a la privacidad o protegidos por derechos de autor lejos de los servicios en línea de terceros.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Es menos adecuado para estos casos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Necesita bordes retocados a mano y materiales transparentes complejos.&lt;/li&gt;
&lt;li&gt;Cada imagen debe alcanzar una calidad de fotografía comercial estable.&lt;/li&gt;
&lt;li&gt;Quieres una herramienta de diseño en línea completa en lugar de solo eliminar el fondo.&lt;/li&gt;
&lt;li&gt;No desea mantener un entorno Python o Docker.&lt;/li&gt;
&lt;li&gt;Su entorno de controlador de GPU, CUDA o ROCm ya está desordenado y el proyecto debe iniciarse rápidamente.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;09-consejos-de-uso&#34;&gt;09 Consejos de uso
&lt;/h2&gt;&lt;p&gt;Si solo procesa imágenes ocasionalmente, la versión de la CPU es suficiente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install &lt;span class=&#34;s2&#34;&gt;&amp;#34;rembg[cpu,cli]&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Para procesar por lotes miles de imágenes, considere:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Reutilizar una sesión de Python.&lt;/li&gt;
&lt;li&gt;Arreglando el directorio del modelo para evitar descargas repetidas.&lt;/li&gt;
&lt;li&gt;Uso de un SSD para entradas, salidas y archivos de modelo.&lt;/li&gt;
&lt;li&gt;Probar primero la calidad del modelo en un lote pequeño.&lt;/li&gt;
&lt;li&gt;Decidir si la aceleración de la GPU vale la pena después.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El valor de la GPU es principalmente el rendimiento por lotes. Para el procesamiento ocasional de una sola imagen, el costo de configuración puede ser mayor que el tiempo ahorrado. Especialmente en Windows, cuando las versiones CUDA, cuDNN y &lt;code&gt;onnxruntime-gpu&lt;/code&gt; no coinciden, la versión de CPU puede ser la opción más práctica.&lt;/p&gt;
&lt;h2 id=&#34;10-toma-rápida&#34;&gt;10 toma rápida
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;rembg&lt;/code&gt; es simple, de código abierto y flexible: puede ejecutarse como una CLI, llamarse desde Python, exponer puntos finales HTTP o empaquetarse con Docker. Es un buen componente base para la eliminación automática del fondo local.&lt;/p&gt;
&lt;p&gt;Pero no es un borrador mágico. Los fondos complejos, los bordes finos del sujeto, los materiales transparentes, la preservación de las sombras y los retoques de calidad comercial aún pueden requerir trabajo manual o un flujo de trabajo más especializado. Al implementar la automatización por lotes, es mejor realizar una revisión humana o un paso de recuperación de muestras fallidas.&lt;/p&gt;
&lt;p&gt;Si el objetivo es eliminar fondos de un lote de imágenes rápidamente manteniendo el proceso local, vale la pena mantener &amp;ldquo;rembg&amp;rdquo; en la caja de herramientas.&lt;/p&gt;
&lt;h2 id=&#34;enlaces-relacionados&#34;&gt;Enlaces relacionados
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Proyecto GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/danielgatis/rembg&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/danielgatis/rembg&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;LÉAME: &lt;a class=&#34;link&#34; href=&#34;https://github.com/danielgatis/rembg/blob/main/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/danielgatis/rembg/blob/main/README.md&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Lanzamientos: &lt;a class=&#34;link&#34; href=&#34;https://github.com/danielgatis/rembg/releases&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/danielgatis/rembg/releases&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Matriz de instalación de ONNX Runtime: &lt;a class=&#34;link&#34; href=&#34;https://onnxruntime.ai/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://onnxruntime.ai/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Notas de Ollama Multi-GPU: agrupación de VRAM, selección de GPU y malentendidos comunes</title>
        <link>https://knightli.com/es/2026/04/19/ollama-multiple-gpu-notes/</link>
        <pubDate>Sun, 19 Apr 2026 00:18:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/19/ollama-multiple-gpu-notes/</guid>
        <description>&lt;p&gt;Al ejecutar la inferencia local con Ollama, surgen rápidamente algunas preguntas: si ya tengo una GPU y mi placa base todavía tiene ranuras PCIe vacías, ¿ayuda agregar más GPU? ¿Es necesario que las GPU sean idénticas? ¿Se puede combinar VRAM? ¿Acelerará la inferencia como un marco de entrenamiento de múltiples GPU?&lt;/p&gt;
&lt;p&gt;Esta nota resume cómo se comporta Ollama con múltiples GPU. La versión corta:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ollama admite múltiples GPU.&lt;/li&gt;
&lt;li&gt;El valor principal de varias GPU generalmente es adaptar modelos más grandes a la VRAM disponible, sin obtener un escalado lineal de tokens.&lt;/li&gt;
&lt;li&gt;De forma predeterminada, si un modelo cabe completamente en una GPU, Ollama tiende a cargarlo en una sola GPU.&lt;/li&gt;
&lt;li&gt;Si un modelo no cabe en una GPU, Ollama puede distribuirlo entre las GPU disponibles.&lt;/li&gt;
&lt;li&gt;Ollama puede ver modelos de GPU mixtos, pero el rendimiento y la ubicación pueden no ser los ideales.&lt;/li&gt;
&lt;li&gt;SLI/NVLink no es necesario para el uso de múltiples GPU.&lt;/li&gt;
&lt;li&gt;Para limitar qué GPU puede usar Ollama, use &lt;code&gt;CUDA_VISIBLE_DEVICES&lt;/code&gt;, &lt;code&gt;ROCR_VISIBLE_DEVICES&lt;/code&gt; o &lt;code&gt;GGML_VK_VISIBLE_DEVICES&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;comportamiento-oficial-gpu-única-primero-gpu-múltiple-cuando-sea-necesario&#34;&gt;Comportamiento oficial: GPU única primero, GPU múltiple cuando sea necesario
&lt;/h2&gt;&lt;p&gt;Las preguntas frecuentes de Ollama describen directamente la lógica de carga de múltiples GPU: al cargar un nuevo modelo, Ollama estima la VRAM requerida y la compara con la memoria de GPU disponible actualmente. Si el modelo cabe completamente en una GPU, carga el modelo en esa GPU. Si no cabe en una sola GPU, el modelo se distribuye entre todas las GPU disponibles.&lt;/p&gt;
&lt;p&gt;La razón es el rendimiento. Mantener un modelo en una GPU generalmente reduce las transferencias de datos a través del bus PCIe durante la inferencia, por lo que suele ser más rápido.&lt;/p&gt;
&lt;p&gt;Así que no pienses en Ollama multi-GPU como si &amp;ldquo;más tarjetas significan automáticamente varias veces más rápido&amp;rdquo;. Un modelo más preciso es:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El modelo pequeño cabe en una GPU: normalmente funciona con una GPU.&lt;/li&gt;
&lt;li&gt;El modelo grande no cabe en una GPU: se divide en varias GPU.&lt;/li&gt;
&lt;li&gt;Todavía no hay suficiente VRAM: parte del modelo vuelve a la memoria del sistema y la velocidad cae notablemente.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Utilice este comando para ver dónde está cargado el modelo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama ps
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;La columna &amp;ldquo;PROCESADOR&amp;rdquo; puede mostrar algo como:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;100% GPU
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;48%/52% CPU/GPU
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;100% CPU
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si ve &amp;ldquo;48%/52% CPU/GPU&amp;rdquo;, parte del modelo ya está en la memoria del sistema. En ese caso, agregar más memoria GPU o usar una GPU con VRAM más grande suele ser más útil que seguir dependiendo de la CPU/RAM.&lt;/p&gt;
&lt;h2 id=&#34;multi-gpu-no-es-un-simple-apilamiento-informático&#34;&gt;Multi-GPU no es un simple apilamiento informático
&lt;/h2&gt;&lt;p&gt;La inferencia LLM local no es lo mismo que SLI en los juegos. Con Ollama en múltiples GPU, el patrón común es que se colocan diferentes capas o tensores en diferentes dispositivos. Esto puede hacer que un modelo más grande encaje en la VRAM disponible combinada, pero es posible que aún sea necesario que los datos se muevan entre dispositivos durante la inferencia.&lt;/p&gt;
&lt;p&gt;Por lo tanto, los beneficios de múltiples GPU generalmente se dividen en dos categorías:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Beneficio de VRAM: los modelos más grandes encajan más fácilmente, o menos parte del modelo recurre a CPU/RAM.&lt;/li&gt;
&lt;li&gt;Beneficio de rendimiento: generalmente es más obvio cuando un modelo no cabría en una GPU o se extendería en gran medida a la CPU.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si un modelo 8B o 14B ya cabe por completo en un solo RTX 3090, forzarlo en dos GPU puede no ser más rápido. Incluso puede ralentizarse debido a la sobrecarga de transferencia entre GPU. La estrategia predeterminada de Ollama de &amp;ldquo;usar una GPU cuando sea necesario&amp;rdquo; evita ese costo innecesario de PCIe.&lt;/p&gt;
&lt;h2 id=&#34;no-se-requiere-sli-o-nvlink&#34;&gt;No se requiere SLI o NVLink
&lt;/h2&gt;&lt;p&gt;Ollama multi-GPU no depende de SLI. Se pueden programar varias GPU PCIe normales siempre que el controlador y Ollama puedan detectarlas.
NVLink o un ancho de banda PCIe superior puede ayudar en algunos escenarios entre GPU, pero no es un requisito. Muchos servidores y estaciones de trabajo GPU usados ​​pueden ejecutar varias GPU a través de PCIe normal.&lt;/p&gt;
&lt;p&gt;A lo que debes prestar atención es al ancho de banda PCIe. La diferencia entre &lt;code&gt;x1&lt;/code&gt;, &lt;code&gt;x4&lt;/code&gt;, &lt;code&gt;x8&lt;/code&gt; y &lt;code&gt;x16&lt;/code&gt; afecta la rapidez con la que se carga un modelo en VRAM. Si cambia con frecuencia de modelo grande, el ancho de banda PCIe se vuelve más importante. Después de cargar un modelo, PCIe generalmente importa menos durante la generación, pero la división entre GPU aún puede agregar gastos generales.&lt;/p&gt;
&lt;p&gt;Reglas más seguras:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Prefiere las bandas x16/x8 a las bandas x1 estilo minería.&lt;/li&gt;
&lt;li&gt;El ancho de banda PCIe es más importante cuando se cambian modelos grandes con frecuencia.&lt;/li&gt;
&lt;li&gt;Si un modelo permanece residente en VRAM durante mucho tiempo, el ancho de banda PCIe es menos visible.&lt;/li&gt;
&lt;li&gt;Para máquinas con múltiples GPU, verifique la topología PCIe de la placa base y los carriles conectados a la CPU.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;limite-las-gpu-nvidia-que-utiliza-ollama&#34;&gt;Limite las GPU NVIDIA que utiliza Ollama
&lt;/h2&gt;&lt;p&gt;En sistemas NVIDIA con múltiples GPU, use &lt;code&gt;CUDA_VISIBLE_DEVICES&lt;/code&gt; para controlar qué GPU puede ver Ollama.&lt;/p&gt;
&lt;p&gt;Ejecución temporal:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CUDA_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;0,1 ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Utilice sólo la segunda GPU:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CUDA_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Obligar a Ollama a no utilizar GPU NVIDIA:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CUDA_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;-1 ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Los documentos oficiales señalan que los ID numéricos pueden cambiar de orden, por lo que los UUID de GPU son más confiables. Primero verifique los UUID:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nvidia-smi -L
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Salida de ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;GPU 0: NVIDIA GeForce RTX 3090 (UUID: GPU-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;GPU 1: NVIDIA GeForce RTX 3070 (UUID: GPU-yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Luego especifique el UUID:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CUDA_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;GPU-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si Ollama está instalado como un servicio systemd de Linux, coloque la variable en el entorno del servicio:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo systemctl edit ollama.service
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Agregar:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-ini&#34; data-lang=&#34;ini&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;[Service]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;Environment&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;CUDA_VISIBLE_DEVICES=0,1&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Recargar y reiniciar:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo systemctl daemon-reload
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo systemctl restart ollama
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;selección-de-dispositivos-amd-y-vulkan&#34;&gt;Selección de dispositivos AMD y Vulkan
&lt;/h2&gt;&lt;p&gt;Para AMD ROCm, use &lt;code&gt;ROCR_VISIBLE_DEVICES&lt;/code&gt; para controlar las GPU visibles:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ROCR_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;0,1 ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Para obligar a Ollama a no usar GPU ROCm, use una identificación no válida:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ROCR_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;-1 ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Los documentos de GPU de Ollama también mencionan el soporte experimental de Vulkan. Para GPU Vulkan, use &lt;code&gt;GGML_VK_VISIBLE_DEVICES&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;OLLAMA_VULKAN&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;GGML_VK_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;0&lt;/span&gt; ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si los dispositivos Vulkan causan problemas, desactívelos:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;GGML_VK_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;-1 ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Es más probable que las configuraciones de múltiples GPU de AMD tengan problemas de compatibilidad con el controlador, la versión ROCm y la versión GFX. Los documentos oficiales también mencionan los requisitos del controlador ROCm de Linux y las anulaciones de compatibilidad, como &lt;code&gt;HSA_OVERRIDE_GFX_VERSION&lt;/code&gt;. Si combina diferentes generaciones de GPU AMD, primero verifique que cada tarjeta funcione por sí sola antes de probar con varias GPU.&lt;/p&gt;
&lt;h2 id=&#34;exponer-varias-gpu-en-docker&#34;&gt;Exponer varias GPU en Docker
&lt;/h2&gt;&lt;p&gt;Si ejecuta Ollama en Docker, las configuraciones de NVIDIA generalmente requieren &lt;code&gt;nvidia-container-toolkit&lt;/code&gt; y luego &lt;code&gt;--gpus&lt;/code&gt; para exponer los dispositivos.&lt;/p&gt;
&lt;p&gt;Exponga todas las GPU:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -d &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --gpus&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;all &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -v ollama:/root/.ollama &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -p 11434:11434 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --name ollama &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ollama/ollama
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Exponer GPU específicas:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -d &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --gpus &lt;span class=&#34;s1&#34;&gt;&amp;#39;&amp;#34;device=0,1&amp;#34;&amp;#39;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -v ollama:/root/.ollama &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -p 11434:11434 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --name ollama &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ollama/ollama
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;También puedes combinar esto con variables de entorno:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -d &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --gpus&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;all &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -e &lt;span class=&#34;nv&#34;&gt;CUDA_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;0,1 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -v ollama:/root/.ollama &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -p 11434:11434 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --name ollama &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ollama/ollama
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si &lt;code&gt;nvidia-smi&lt;/code&gt; no puede ver las GPU dentro del contenedor, Ollama tampoco puede usarlas. Primero solucione los problemas de transferencia de GPU de Docker y luego Ollama.&lt;/p&gt;
&lt;h2 id=&#34;qué-es-ollama_sched_spread&#34;&gt;¿Qué es &lt;code&gt;OLLAMA_SCHED_SPREAD&lt;/code&gt;?
&lt;/h2&gt;&lt;p&gt;En algunas discusiones sobre configuración de múltiples GPU, es posible que vea &lt;code&gt;OLLAMA_SCHED_SPREAD=1&lt;/code&gt; o &lt;code&gt;OLLAMA_SCHED_SPREAD=true&lt;/code&gt;. Está relacionado con el programador de Ollama y se usa a menudo cuando las personas desean que los modelos o solicitudes se distribuyan más ampliamente entre las GPU.&lt;/p&gt;
&lt;p&gt;Ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;OLLAMA_SCHED_SPREAD&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;O con systemd:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-ini&#34; data-lang=&#34;ini&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;[Service]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;Environment&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;OLLAMA_SCHED_SPREAD=true&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Pero no es un cambio mágico. Habilitarlo no implica un escalado lineal de tokens y aún puede ejecutarse en OOM cuando se cargan varios modelos, las estimaciones de VRAM son ajustadas, la longitud del contexto aumenta o la caché KV se expande. El comportamiento principal de las preguntas frecuentes todavía se aplica: si una GPU puede contener completamente el modelo, una GPU suele ser más eficiente; Si una GPU no puede contenerlo, entonces resulta útil la división entre varias GPU.
Trate &lt;code&gt;OLLAMA_SCHED_SPREAD&lt;/code&gt; como un experimento de programación avanzada, no como una configuración multi-GPU requerida. Primero, comprenda el comportamiento predeterminado y luego ajústelo según &lt;code&gt;ollama ps&lt;/code&gt;, registros y &lt;code&gt;nvidia-smi&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;cómo-comprobar-si-se-están-utilizando-varias-gpu&#34;&gt;Cómo comprobar si se están utilizando varias GPU
&lt;/h2&gt;&lt;p&gt;Comandos útiles:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama ps
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;watch -n 0.5 nvidia-smi
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Ver los registros del servicio de Ollama:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;journalctl -u ollama -f
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si usa Docker:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker logs -f ollama
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Esté atento a:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si Ollama descubre GPU compatibles.&lt;/li&gt;
&lt;li&gt;Si el modelo muestra &amp;ldquo;100% GPU&amp;rdquo; o una división CPU/GPU.&lt;/li&gt;
&lt;li&gt;Si cada GPU tiene VRAM asignada.&lt;/li&gt;
&lt;li&gt;Si la VRAM crece en varias GPU durante la carga del modelo.&lt;/li&gt;
&lt;li&gt;Si los tokens de generación mejoran en comparación con el desbordamiento de CPU/RAM.&lt;/li&gt;
&lt;li&gt;Si la descarga de OOM o de modelos ocurre con frecuencia.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La utilización de la GPU por sí sola puede resultar engañosa. La inferencia LLM no siempre mantiene las GPU completamente cargadas, especialmente con varias GPU, tamaños de lote bajos, contextos pequeños, CPU lentas o enlaces PCIe lentos.&lt;/p&gt;
&lt;h2 id=&#34;malentendidos-comunes&#34;&gt;Malentendidos comunes
&lt;/h2&gt;&lt;h3 id=&#34;malentendido-1-dos-gpu-de-12-gb-equivalen-a-una-gpu-de-24-gb&#34;&gt;Malentendido 1: Dos GPU de 12 GB equivalen a una GPU de 24 GB
&lt;/h3&gt;&lt;p&gt;No exactamente. Varias GPU pueden colocar un modelo en varios dispositivos, pero el acceso entre dispositivos tiene una sobrecarga. Resuelve el problema de &amp;ldquo;no encaja&amp;rdquo;, pero no es equivalente a la velocidad y estabilidad de una GPU de gran VRAM.&lt;/p&gt;
&lt;h3 id=&#34;malentendido-2-no-se-pueden-mezclar-diferentes-modelos-de-gpu&#34;&gt;Malentendido 2: No se pueden mezclar diferentes modelos de GPU
&lt;/h3&gt;&lt;p&gt;No necesariamente. Si el controlador, la capacidad informática y las bibliotecas de tiempo de ejecución son compatibles con las tarjetas, Ollama puede ver varias GPU. Pero las configuraciones mixtas suelen estar limitadas por una tarjeta más lenta, una VRAM más pequeña y una topología PCIe. La configuración más predecible sigue siendo el mismo modelo, el mismo tamaño de VRAM y controladores de la misma generación con buen soporte.&lt;/p&gt;
&lt;h3 id=&#34;malentendido-3-la-gpu-múltiple-siempre-es-más-rápida-que-la-gpu-única&#34;&gt;Malentendido 3: La GPU múltiple siempre es más rápida que la GPU única
&lt;/h3&gt;&lt;p&gt;No siempre. Si el modelo se adapta completamente a una GPU rápida, una GPU única puede ser más rápida. La GPU múltiple es útil principalmente para modelos grandes, contextos prolongados o VRAM de GPU única insuficiente.&lt;/p&gt;
&lt;h3 id=&#34;malentendido-4-se-requiere-nvlink--sli&#34;&gt;Malentendido 4: Se requiere NVLink / SLI
&lt;/h3&gt;&lt;p&gt;No. Ollama puede utilizar sistemas PCIe múltiples-GPU ordinarios. NVLink no es un requisito previo.&lt;/p&gt;
&lt;h3 id=&#34;malentendido-5-agregar-una-gpu-no-requiere-reiniciar-los-servicios&#34;&gt;Malentendido 5: Agregar una GPU no requiere reiniciar los servicios
&lt;/h3&gt;&lt;p&gt;No siempre es cierto. Es posible que sea necesario reiniciar los servicios systemd de Linux, las aplicaciones en segundo plano de Windows y los contenedores Docker antes de que redescubran dispositivos y variables de entorno.&lt;/p&gt;
&lt;h2 id=&#34;sugerencias-de-selección-de-gpu&#34;&gt;Sugerencias de selección de GPU
&lt;/h2&gt;&lt;p&gt;Para la inferencia local de Ollama, la prioridad aproximada es:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;La VRAM de una sola GPU más grande suele ser más fácil de administrar.&lt;/li&gt;
&lt;li&gt;Las GPU idénticas son más fáciles de solucionar que las GPU mixtas.&lt;/li&gt;
&lt;li&gt;Los carriles PCIe más completos facilitan la carga de modelos grandes.&lt;/li&gt;
&lt;li&gt;Primero se debe verificar la capacidad de computación CUDA o la compatibilidad con ROCm en las tarjetas más antiguas.&lt;/li&gt;
&lt;li&gt;La alimentación, la refrigeración y el flujo de aire del chasis de varias GPU deben planificarse con antelación.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Para plataformas económicas de segunda mano:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dual RTX 3090 sigue siendo una opción común de alta VRAM.&lt;/li&gt;
&lt;li&gt;Las tarjetas Tesla más antiguas, como la P40/M40, tienen una gran VRAM, pero la potencia, la refrigeración, la compatibilidad con el controlador y el rendimiento necesitan compensaciones.&lt;/li&gt;
&lt;li&gt;Las tarjetas como RTX 4070/4070 Ti tienen buena eficiencia, pero la VRAM de una sola tarjeta puede ser limitante.&lt;/li&gt;
&lt;li&gt;Puede ser divertido experimentar con varias tarjetas antiguas de 8 GB, pero no son ideales para ejecutar modelos grandes a largo plazo.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;La compatibilidad con múltiples GPU de Ollama se entiende mejor como &amp;ldquo;primero la expansión de VRAM y luego la aceleración del rendimiento&amp;rdquo;. Si el modelo cabe completamente en una GPU, la ruta predeterminada de una sola GPU suele ser más rápida. Si una GPU no puede contenerlo, varias GPU pueden distribuir el modelo entre dispositivos y evitar un gran desbordamiento de CPU/RAM, lo que hace que se puedan utilizar modelos más grandes.&lt;/p&gt;
&lt;p&gt;En la práctica, use &lt;code&gt;ollama ps&lt;/code&gt; para verificar dónde está cargado el modelo, luego use las herramientas &lt;code&gt;nvidia-smi&lt;/code&gt; o ROCm para observar la asignación de VRAM. Para la selección de GPU, use &lt;code&gt;CUDA_VISIBLE_DEVICES&lt;/code&gt; en NVIDIA, &lt;code&gt;ROCR_VISIBLE_DEVICES&lt;/code&gt; en AMD ROCm y &lt;code&gt;GGML_VK_VISIBLE_DEVICES&lt;/code&gt; para Vulkan. Si se ejecuta en Docker, primero asegúrese de que el contenedor pueda ver las GPU.&lt;/p&gt;
&lt;p&gt;La multi-GPU no es mágica. Puede ayudar a adaptar modelos más grandes, pero no garantiza una aceleración lineal. La ruta estable sigue siendo preferir GPU únicas con gran VRAM o configuraciones idénticas de múltiples GPU, considerando al mismo tiempo la compatibilidad con controladores, PCIe, alimentación, refrigeración y cuantificación de modelos.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Preguntas frecuentes de Ollama: ¿Cómo carga Ollama modelos en múltiples GPU?: &lt;a class=&#34;link&#34; href=&#34;https://github.com/ollama/ollama/blob/main/docs/faq.mdx&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/ollama/ollama/blob/main/docs/faq.mdx&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Documentos de Ollama GPU: soporte de hardware/selección de GPU: &lt;a class=&#34;link&#34; href=&#34;https://github.com/ollama/ollama/blob/main/docs/gpu.mdx&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/ollama/ollama/blob/main/docs/gpu.mdx&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Centro Docker de Ollama: &lt;a class=&#34;link&#34; href=&#34;https://hub.docker.com/r/ollama/ollama&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://hub.docker.com/r/ollama/ollama&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Kit de herramientas de contenedor NVIDIA: &lt;a class=&#34;link&#34; href=&#34;https://github.com/NVIDIA/nvidia-container-toolkit&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/NVIDIA/nvidia-container-toolkit&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Aplicación de Google para escritorio: llevando la búsqueda con IA a Windows</title>
        <link>https://knightli.com/es/2026/04/18/google-app-desktop-ai-search-windows/</link>
        <pubDate>Sat, 18 Apr 2026 11:08:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/18/google-app-desktop-ai-search-windows/</guid>
        <description>&lt;p&gt;Google ha añadido un punto de entrada de búsqueda más ligero al escritorio de Windows. En lugar de abrir primero un navegador, puede presionar un acceso directo, abrir un cuadro de búsqueda, hacer preguntas, cargar imágenes, analizar archivos, seleccionar contenido en su pantalla y seguir haciendo preguntas de seguimiento.&lt;/p&gt;
&lt;p&gt;El nombre oficial es &lt;strong&gt;Aplicación de Google para escritorio&lt;/strong&gt;. No pretende reemplazar un navegador tradicional. Su propósito es reunir la búsqueda de Google, el modo AI, Google Lens, compartir pantalla, búsqueda de archivos de computadora y búsqueda de Google Drive en un cuadro de búsqueda de escritorio.&lt;/p&gt;
&lt;p&gt;Si busca información con frecuencia, resume documentos, identifica contenido de capturas de pantalla o desea una forma más rápida de buscar en su computadora, vale la pena probar esta aplicación de escritorio de Google.&lt;/p&gt;
&lt;h2 id=&#34;requisitos&#34;&gt;Requisitos
&lt;/h2&gt;&lt;p&gt;Según la página oficial de Google, los requisitos actuales son:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Los usuarios deben tener 13 años o más.&lt;/li&gt;
&lt;li&gt;El dispositivo debe ejecutar Windows 10 o posterior.&lt;/li&gt;
&lt;li&gt;Actualmente, la aplicación solo está disponible en inglés.&lt;/li&gt;
&lt;li&gt;El modo AI en la Búsqueda de Google no es compatible con todas las cuentas, países e idiomas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En otras palabras, los usuarios de Windows 10 y Windows 11 pueden instalarlo primero y probarlo. La página oficial actualmente dice &lt;strong&gt;Ahora disponible en Windows&lt;/strong&gt;, por lo que este artículo se centra en la versión de Windows.&lt;/p&gt;
&lt;h2 id=&#34;características-principales&#34;&gt;Características principales
&lt;/h2&gt;&lt;h3 id=&#34;1-abrir-búsqueda-con-un-acceso-directo&#34;&gt;1. Abrir búsqueda con un acceso directo
&lt;/h3&gt;&lt;p&gt;Después de la instalación, presione:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Alt + Space
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Esto abre el cuadro de búsqueda de escritorio de Google. Presiónelo nuevamente para ocultar el cuadro.&lt;/p&gt;
&lt;p&gt;La experiencia es un poco como un iniciador de sistema. Ya sea que esté escribiendo un documento, leyendo una página web, organizando archivos o usando otra aplicación, puede acceder a la Búsqueda sin tener que volver al navegador.&lt;/p&gt;
&lt;h3 id=&#34;2-modo-ia-y-preguntas-de-seguimiento&#34;&gt;2. Modo IA y preguntas de seguimiento
&lt;/h3&gt;&lt;p&gt;La búsqueda tradicional suele proporcionar una lista de enlaces. El modo AI se acerca más a una respuesta resumida creada a partir de los resultados de búsqueda. Puede hacer una pregunta directamente, obtener una respuesta más completa y seguir abriendo enlaces útiles cuando sea necesario.&lt;/p&gt;
&lt;p&gt;La parte útil es que puedes seguir haciendo preguntas de seguimiento. Por ejemplo, comience con:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;What is this tool best used for?
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Luego continúa con:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;If I create written content, how can I use it to improve my workflow?
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Esto evita reescribir repetidamente palabras clave o saltar entre varias páginas.&lt;/p&gt;
&lt;h3 id=&#34;3-cargar-imágenes-para-reconocimiento-y-búsqueda&#34;&gt;3. Cargar imágenes para reconocimiento y búsqueda
&lt;/h3&gt;&lt;p&gt;La aplicación de escritorio de Google permite cargar una imagen y hacer preguntas sobre ella. Los usos comunes incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Identificar personas, lugares, productos u objetos en una imagen.&lt;/li&gt;
&lt;li&gt;Encontrar imágenes similares e información relacionada.&lt;/li&gt;
&lt;li&gt;Extraer una descripción del contenido de la imagen.&lt;/li&gt;
&lt;li&gt;Pedirle a la IA que genere indicaciones creativas basadas en la imagen.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por ejemplo, después de subir un retrato, podrías preguntar:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Who is the person in this image? Please provide an introduction and related references.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Para la búsqueda diaria de imágenes, la búsqueda de fuentes y el reconocimiento de objetos, esto es más conveniente que abrir manualmente una página web y cargar la imagen allí.&lt;/p&gt;
&lt;h3 id=&#34;4-seleccione-el-contenido-de-la-pantalla-con-google-lens&#34;&gt;4. Seleccione el contenido de la pantalla con Google Lens
&lt;/h3&gt;&lt;p&gt;Google Lens es una de las partes más útiles de la aplicación de escritorio. Puede seleccionar un área en su pantalla y dejar que reconozca y busque ese contenido.&lt;/p&gt;
&lt;p&gt;Es útil para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Seleccionar un producto en una página web para encontrar artículos similares o información relacionada.&lt;/li&gt;
&lt;li&gt;Seleccionar texto en una captura de pantalla y pedir una explicación.&lt;/li&gt;
&lt;li&gt;Seleccionar una interfaz de software y preguntar qué herramienta es.&lt;/li&gt;
&lt;li&gt;Seleccionar un mensaje de error y solicitar ideas para solucionar problemas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La idea central es simple: busca lo que ves. Anteriormente, es posible que hayas necesitado tomar una captura de pantalla, guardarla y cargarla. Ahora puedes seleccionar el objetivo directamente en la pantalla.&lt;/p&gt;
&lt;h3 id=&#34;5-búsqueda-de-pantalla-compartida&#34;&gt;5. Búsqueda de pantalla compartida
&lt;/h3&gt;&lt;p&gt;Además de seleccionar una parte de la pantalla, la aplicación también admite compartir pantalla. Una vez habilitada, la IA puede ver la ventana actual o la pantalla completa, y usted puede hacer preguntas sobre lo que está visible.&lt;/p&gt;
&lt;p&gt;Por ejemplo, mientras lees un artículo, puedes preguntar:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Please summarize the key points on the current page.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;O:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;What parts of this page could be improved?
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Esto puede ahorrar tiempo al leer páginas web, revisar diseños, analizar fragmentos de código o resumir páginas largas. Cuando se habilita el uso compartido de pantalla, el sistema generalmente muestra un borde claro para que pueda confirmar lo que se está compartiendo.&lt;/p&gt;
&lt;h3 id=&#34;6-buscar-archivos-de-computadora-y-google-drive&#34;&gt;6. Buscar archivos de computadora y Google Drive
&lt;/h3&gt;&lt;p&gt;La página oficial de Google también dice que la aplicación puede encontrar aplicaciones y archivos en su computadora y en Google Drive desde el mismo cuadro de búsqueda.&lt;/p&gt;
&lt;p&gt;Esto combina la búsqueda en el escritorio y la búsqueda en la nube. Si recuerda parte del nombre de un archivo, una palabra clave del contenido o desea encontrar algo rápidamente en Google Drive, no necesita abrir el Explorador de archivos y Drive por separado.&lt;/p&gt;
&lt;p&gt;Al usarla por primera vez, es posible que la aplicación le pregunte si desea habilitar la búsqueda en Google Drive o la búsqueda de archivos locales. Autorice solo las áreas que realmente necesita, especialmente cuando se trata de archivos locales y datos de la nube.&lt;/p&gt;
&lt;h2 id=&#34;instalación-y-uso&#34;&gt;Instalación y uso
&lt;/h2&gt;&lt;h3 id=&#34;1-abra-la-página-de-descarga-oficial&#34;&gt;1. Abra la página de descarga oficial
&lt;/h3&gt;&lt;p&gt;Visita:&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://search.google/google-app/desktop/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://search.google/google-app/desktop/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Haga clic en &lt;strong&gt;Descargar aplicación&lt;/strong&gt; para descargar el instalador.&lt;/p&gt;
&lt;h3 id=&#34;2-instale-la-aplicación-de-escritorio&#34;&gt;2. Instale la aplicación de escritorio
&lt;/h3&gt;&lt;p&gt;Una vez finalizada la descarga, ejecute el instalador y siga las instrucciones.&lt;/p&gt;
&lt;p&gt;Puede optar por iniciar sesión con una cuenta de Google. Iniciar sesión es más útil si desea realizar búsquedas en Google Drive, búsquedas personalizadas y algunas funciones de inteligencia artificial. Si solo desea probar la búsqueda básica, también puede comenzar con las indicaciones predeterminadas.&lt;/p&gt;
&lt;h3 id=&#34;3-abra-el-cuadro-de-búsqueda&#34;&gt;3. Abra el cuadro de búsqueda
&lt;/h3&gt;&lt;p&gt;Prensa:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Alt + Space
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Aparece un cuadro de búsqueda de Google en el escritorio. Puede escribir una pregunta directamente, cargar archivos, usar Lens o comenzar a compartir pantalla.&lt;/p&gt;
&lt;h3 id=&#34;4-habilite-el-ámbito-de-búsqueda-que-necesita&#34;&gt;4. Habilite el ámbito de búsqueda que necesita
&lt;/h3&gt;&lt;p&gt;Si desea buscar en Google Drive o archivos locales, siga las instrucciones para habilitar los permisos relevantes.&lt;/p&gt;
&lt;p&gt;Un enfoque práctico:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Habilite primero la búsqueda de Google Drive y pruebe la búsqueda de documentos en la nube.&lt;/li&gt;
&lt;li&gt;Habilite la búsqueda de archivos locales solo si la necesita.&lt;/li&gt;
&lt;li&gt;Dejar ámbitos innecesarios desactivados.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto le brinda acceso a las partes útiles mientras mantiene los permisos claros.&lt;/p&gt;
&lt;h2 id=&#34;casos-de-uso-comunes&#34;&gt;Casos de uso comunes
&lt;/h2&gt;&lt;h3 id=&#34;analizar-archivos-pdf-y-documentos&#34;&gt;Analizar archivos PDF y documentos
&lt;/h3&gt;&lt;p&gt;Puede arrastrar un PDF, una tabla o un documento y pedirle que resuma los puntos clave.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Please summarize the key points of this PDF and list anything I should pay attention to.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Para archivos densos como formularios, declaraciones, materiales de solicitud o manuales, continúe con:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Please organize the key information by category.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Esto suele ser más rápido que leer un documento largo página por página.&lt;/p&gt;
&lt;h3 id=&#34;resumir-páginas-web&#34;&gt;Resumir páginas web
&lt;/h3&gt;&lt;p&gt;Después de habilitar el uso compartido de pantalla, puede pedirle que resuma la página actual.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Extract the main ideas from this page and summarize them in five bullet points.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Esto es útil para artículos extensos, páginas de productos, documentación y páginas de noticias.&lt;/p&gt;
&lt;h3 id=&#34;identificar-capturas-de-pantalla-e-interfaces&#34;&gt;Identificar capturas de pantalla e interfaces
&lt;/h3&gt;&lt;p&gt;Utilice Google Lens para seleccionar una interfaz de software, un fragmento de código, un mensaje de error o un contenido de imagen en la pantalla y luego pídale que le explique lo que está viendo.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Please explain what this error means and suggest a troubleshooting path.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;O:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;What tool is shown in this screenshot, and what scenarios is it likely used for?
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;ayuda-con-la-creación-de-contenido&#34;&gt;Ayuda con la creación de contenido
&lt;/h3&gt;&lt;p&gt;También puede ayudar a escribir títulos, generar esquemas y organizar puntos de venta.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Write 10 article titles about AI tool recommendations, with angles for practical tips, productivity tools, and office workflows.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Después de recibir un borrador, puedes continuar:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Make these titles more suitable for a tech blog.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Este estilo de seguimiento parece más natural que pedirle todo a un motor de búsqueda de una sola vez.&lt;/p&gt;
&lt;h2 id=&#34;consejos-de-uso&#34;&gt;Consejos de uso
&lt;/h2&gt;&lt;p&gt;Si solo necesita una búsqueda diaria de información, trátela como un punto de entrada más rápido a la Búsqueda de Google. Si trabaja a menudo con imágenes, archivos PDF, páginas web y capturas de pantalla, concéntrese en Lens, la carga de archivos y el uso compartido de pantalla.&lt;/p&gt;
&lt;p&gt;Tenga en cuenta tres puntos:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;La página oficial dice que la aplicación actualmente solo está disponible en inglés. Las indicaciones en chino pueden comportarse de manera diferente según su cuenta y región.&lt;/li&gt;
&lt;li&gt;El modo AI no está disponible para todas las cuentas. Si no puede verlo, verifique la configuración de su cuenta, región e idioma.&lt;/li&gt;
&lt;li&gt;La búsqueda de archivos locales, la búsqueda en Google Drive y el uso compartido de pantalla implican permisos de privacidad. Confirme a qué contenido desea que acceda la aplicación antes de habilitarlos.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;resumen-rápido&#34;&gt;Resumen rápido
&lt;/h2&gt;&lt;p&gt;El principal valor de la aplicación de Google para escritorio es que saca la búsqueda del navegador y la convierte en un cuadro de búsqueda de IA al que puedes acceder en cualquier momento.&lt;/p&gt;
&lt;p&gt;En resumen, puede:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Abra la búsqueda rápidamente con &lt;code&gt;Alt + Espacio&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Utilice el modo AI para obtener respuestas organizadas.&lt;/li&gt;
&lt;li&gt;Subir imágenes o archivos para su análisis.&lt;/li&gt;
&lt;li&gt;Seleccionar contenido de la pantalla con Google Lens.&lt;/li&gt;
&lt;li&gt;Comprenda la ventana actual o la pantalla completa compartiendo pantalla.&lt;/li&gt;
&lt;li&gt;Busque archivos locales, aplicaciones y contenido de Google Drive.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si ya confías en la Búsqueda de Google y quieres que la experiencia se parezca más a pedirle a un asistente, vale la pena probar la aplicación de Google para escritorio.&lt;/p&gt;
&lt;h2 id=&#34;referencia&#34;&gt;Referencia
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Página oficial de la aplicación de Google para escritorio: &lt;a class=&#34;link&#34; href=&#34;https://search.google/google-app/desktop/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://search.google/google-app/desktop/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Gemma 4 E4B Sin censura versus oficial: lo que realmente cambia</title>
        <link>https://knightli.com/es/2026/04/18/gemma-4-e4b-uncensored-vs-official/</link>
        <pubDate>Sat, 18 Apr 2026 10:20:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/18/gemma-4-e4b-uncensored-vs-official/</guid>
        <description>&lt;p&gt;Si ve un modelo como &lt;code&gt;HauhauCS/Gemma-4-E4B-Uncensored-HauhauCS-Aggressive&lt;/code&gt;, el punto más importante es este: &lt;strong&gt;no es un nuevo modelo base de Google&lt;/strong&gt;. Es una versión derivada construida sobre el &lt;code&gt;google/gemma-4-E4B-it&lt;/code&gt; oficial, pero con un comportamiento de alineación impulsado intencionalmente hacia menos rechazos.&lt;/p&gt;
&lt;p&gt;Eso significa que la verdadera diferencia suele ser &lt;strong&gt;la política de comportamiento y el estilo de respuesta&lt;/strong&gt;, no una arquitectura completamente nueva.&lt;/p&gt;
&lt;h2 id=&#34;lo-que-afirma-explícitamente-el-modelo-derivado&#34;&gt;Lo que afirma explícitamente el modelo derivado
&lt;/h2&gt;&lt;p&gt;Según su tarjeta modelo Hugging Face, el comunicado de HauhauCS dice:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;está basado en &lt;code&gt;google/gemma-4-E4B-it&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&amp;ldquo;no realiza cambios en los conjuntos de datos ni en las capacidades&amp;rdquo;&lt;/li&gt;
&lt;li&gt;es &amp;ldquo;simplemente sin negativas&amp;rdquo;&lt;/li&gt;
&lt;li&gt;la variante &amp;ldquo;Agresiva&amp;rdquo; está &amp;ldquo;totalmente desbloqueada y no rechaza indicaciones&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esas son las afirmaciones del creador, no un punto de referencia independiente. Aún así, te dicen muy claramente el posicionamiento previsto: se trata de un derivado no oficial optimizado para reducir los fallos de seguridad.&lt;/p&gt;
&lt;h2 id=&#34;modelo-oficial-versus-derivado-sin-censura&#34;&gt;Modelo oficial versus derivado &amp;ldquo;sin censura&amp;rdquo;
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Dimensión&lt;/th&gt;
          &lt;th&gt;Oficial &lt;code&gt;google/gemma-4-E4B-it&lt;/code&gt;&lt;/th&gt;
          &lt;th&gt;&lt;code&gt;Gemma-4-E4B-Sin censura-HauhauCS-Agresivo&lt;/code&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Fuente&lt;/td&gt;
          &lt;td&gt;Lanzamiento oficial de Google&lt;/td&gt;
          &lt;td&gt;Derivado de terceros sobre Hugging Face&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Arquitectura básica&lt;/td&gt;
          &lt;td&gt;Modelo Gemma 4 E4B ajustado por instrucciones&lt;/td&gt;
          &lt;td&gt;Misma familia base, descrita explícitamente como basada en &lt;code&gt;google/gemma-4-E4B-it&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Objetivo principal&lt;/td&gt;
          &lt;td&gt;Asistente útil de uso general con marcos de uso responsable&lt;/td&gt;
          &lt;td&gt;Reducir las negativas y seguir respondiendo incluso cuando el modelo oficial pueda decaer&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Postura de seguridad&lt;/td&gt;
          &lt;td&gt;Alineado con los documentos de seguridad de la familia Gemma y la política de uso prohibido&lt;/td&gt;
          &lt;td&gt;Comportamiento de rechazo intencionalmente debilitado&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Estilo de respuesta&lt;/td&gt;
          &lt;td&gt;Es más probable que rechace, redirija o suavice determinadas solicitudes&lt;/td&gt;
          &lt;td&gt;Es más probable que responda directamente, incluidas las indicaciones que el modelo oficial puede bloquear&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Perfil de riesgo&lt;/td&gt;
          &lt;td&gt;Menor riesgo de uso indebido por defecto, pero aún no está libre de riesgos&lt;/td&gt;
          &lt;td&gt;Mayor riesgo de uso indebido, mayor probabilidad de resultados inseguros o no conformes&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Previsibilidad en productos&lt;/td&gt;
          &lt;td&gt;Más fácil de justificar en aplicaciones normales y entornos empresariales&lt;/td&gt;
          &lt;td&gt;Más difícil de justificar en implementaciones públicas, empresariales o sensibles a las políticas&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Carga de cumplimiento&lt;/td&gt;
          &lt;td&gt;Todavía requiere salvaguardias a nivel de aplicación&lt;/td&gt;
          &lt;td&gt;Requiere salvaguardias posteriores aún más estrictas porque el modelo en sí es menos restrictivo&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;la-diferencia-principal-es-la-alineación-no-la-capacidad-bruta&#34;&gt;La diferencia principal es la alineación, no la capacidad bruta
&lt;/h2&gt;&lt;p&gt;Muchos usuarios tratan erróneamente &amp;ldquo;sin censura&amp;rdquo; como si significara &amp;ldquo;más inteligente&amp;rdquo;. Ese suele ser el marco equivocado.&lt;/p&gt;
&lt;p&gt;Para una derivada como esta, lo que cambia primero es:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;con qué frecuencia el modelo se niega&lt;/li&gt;
&lt;li&gt;con qué firmeza sigue instrucciones perjudiciales o sensibles a las políticas&lt;/li&gt;
&lt;li&gt;cuánto filtrado queda en sus respuestas finales&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Qué &lt;strong&gt;no&lt;/strong&gt; cambia automáticamente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;la arquitectura familiar subyacente de Gemma 4&lt;/li&gt;
&lt;li&gt;clase de ventana de contexto&lt;/li&gt;
&lt;li&gt;clase de apoyo multimodal&lt;/li&gt;
&lt;li&gt;techo de razonamiento general&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En otras palabras, un derivado sin censura a menudo se describe mejor como un &lt;strong&gt;ajuste de comportamiento diferente&lt;/strong&gt; de la misma familia de modelos, no como un modelo de nivel superior.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-la-versión-oficial-se-comporta-de-manera-diferente&#34;&gt;Por qué la versión oficial se comporta de manera diferente
&lt;/h2&gt;&lt;p&gt;Los materiales oficiales de Gemma de Google enmarcan a la familia como creada para el desarrollo responsable de la IA. La tarjeta modelo Gemma destaca el uso indebido, el contenido dañino, la privacidad y los riesgos de sesgo, y la Política de uso prohibido de Gemma de Google prohíbe explícitamente el uso de Gemma o modelos derivados para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;facilitar actividades peligrosas, ilegales o maliciosas&lt;/li&gt;
&lt;li&gt;generar contenido dañino o engañoso&lt;/li&gt;
&lt;li&gt;anular o eludir los filtros de seguridad&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;De modo que el modelo oficial no es simplemente &amp;ldquo;más conservador&amp;rdquo; por casualidad. Su política circundante y su postura de despliegue prevista son deliberadamente diferentes.&lt;/p&gt;
&lt;h2 id=&#34;cuando-el-modelo-oficial-es-la-mejor-opción&#34;&gt;Cuando el modelo oficial es la mejor opción
&lt;/h2&gt;&lt;p&gt;Utilice la ruta oficial &lt;code&gt;google/gemma-4-E4B-it&lt;/code&gt; si le interesa:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;implementación de productos&lt;/li&gt;
&lt;li&gt;uso empresarial o en equipo&lt;/li&gt;
&lt;li&gt;menor exposición legal y política&lt;/li&gt;
&lt;li&gt;menos salidas obviamente inseguras&lt;/li&gt;
&lt;li&gt;documentación y revisión más sencillas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para la mayoría de las aplicaciones normales, este es el valor predeterminado más seguro.&lt;/p&gt;
&lt;h2 id=&#34;cuando-la-gente-elige-el-derivado-sin-censura&#34;&gt;Cuando la gente elige el derivado sin censura
&lt;/h2&gt;&lt;p&gt;Los usuarios suelen elegir un derivado sin censura para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;experimentación privada local&lt;/li&gt;
&lt;li&gt;pruebas donde el modelo oficial se niega demasiado pronto&lt;/li&gt;
&lt;li&gt;juego de roles o indicaciones creativas abiertas&lt;/li&gt;
&lt;li&gt;comparar el comportamiento de alineación entre variantes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pero esto conlleva una verdadera compensación: usted está transfiriendo más responsabilidad de seguridad del proveedor del modelo a usted mismo.&lt;/p&gt;
&lt;h2 id=&#34;conclusión-práctica&#34;&gt;Conclusión práctica
&lt;/h2&gt;&lt;p&gt;La diferencia entre un Gemma 4 E4B llamado &amp;ldquo;jailbreak&amp;rdquo; y la versión oficial normal es principalmente la siguiente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;la versión oficial está optimizada para su capacidad utilizable &lt;strong&gt;con barandillas&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;el derivado sin censura está optimizado para menos rechazos &lt;strong&gt;con barandillas más débiles&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Eso &lt;strong&gt;no&lt;/strong&gt; fortalece automáticamente el modelo sin censura. Principalmente lo hace más permisivo.&lt;/p&gt;
&lt;p&gt;Si su objetivo es una implementación estable, explicable y de menor riesgo, utilice primero el modelo oficial. Si su objetivo es la experimentación local y comprende las ventajas y desventajas de cumplimiento y seguridad, entonces un derivado sin censura es una variante de comportamiento que vale la pena probar por separado, no un reemplazo &amp;ldquo;mejor&amp;rdquo; directo.&lt;/p&gt;
&lt;h2 id=&#34;fuentes&#34;&gt;Fuentes
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Cara de abrazo: &lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/HauhauCS/Gemma-4-E4B-Uncensored-HauhauCS-Aggressive&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;HauhauCS/Gemma-4-E4B-Uncensored-HauhauCS-Aggressive&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Cara de abrazo: &lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/google/gemma-4-E4B-it&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;google/gemma-4-E4B-it&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Google AI para desarrolladores: &lt;a class=&#34;link&#34; href=&#34;https://ai.google.dev/gemma/prohibited_use_policy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Política de uso prohibido de Gemma&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Google AI para desarrolladores: &lt;a class=&#34;link&#34; href=&#34;https://ai.google.dev/gemma/docs/core/model_card&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;tarjeta modelo Gemma&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Implemente el Agente Hermes localmente en Windows con WSL &#43; Ollama y Connect Telegram</title>
        <link>https://knightli.com/es/2026/04/18/windows-wsl-ollama-hermes-agent-telegram/</link>
        <pubDate>Sat, 18 Apr 2026 00:48:22 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/18/windows-wsl-ollama-hermes-agent-telegram/</guid>
        <description>&lt;p&gt;Si desea ejecutar &amp;ldquo;Agente Hermes&amp;rdquo; en &amp;ldquo;Windows&amp;rdquo; con la menor fricción posible, una ruta práctica es:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;mantener Windows como sistema host&lt;/li&gt;
&lt;li&gt;ejecuta &lt;code&gt;Ubuntu&lt;/code&gt; dentro de &lt;code&gt;WSL&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;utilizar &lt;code&gt;Ollama&lt;/code&gt; para servir el modelo local&lt;/li&gt;
&lt;li&gt;permitir que &amp;ldquo;Agente Hermes&amp;rdquo; se conecte directamente al punto final local de Ollama&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Este enfoque mantiene el entorno relativamente limpio, le permite ejecutar la mayoría de los comandos en un flujo de trabajo estilo Linux y evita preparar una máquina Linux separada.&lt;/p&gt;
&lt;h2 id=&#34;flujo-general&#34;&gt;Flujo general
&lt;/h2&gt;&lt;p&gt;Puede dividir la configuración en 4 pasos:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Habilite &lt;code&gt;WSL&lt;/code&gt; e instale &lt;code&gt;Ubuntu&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Instale Python, Node.js, Git y otros conceptos básicos dentro de Ubuntu&lt;/li&gt;
&lt;li&gt;Instale &lt;code&gt;Ollama&lt;/code&gt; y extraiga un modelo local.&lt;/li&gt;
&lt;li&gt;Instale &lt;code&gt;Hermes Agent&lt;/code&gt;, luego conecte &lt;code&gt;Telegram&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si su objetivo es simplemente hacer que Hermes Agent se ejecute primero, al final del paso 3 ya estará cerca.&lt;/p&gt;
&lt;h2 id=&#34;1-instale-wsl-y-ubuntu&#34;&gt;1. Instale WSL y Ubuntu
&lt;/h2&gt;&lt;p&gt;Ejecute esto en PowerShell con privilegios de administrador:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;wsl&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;-install&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Una vez finalizada la instalación, reinicie la PC y luego continúe con Ubuntu:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;wsl&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;-install&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-d&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Ubuntu&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Después de eso, abra Ubuntu en WSL. La mayoría de los comandos restantes se ejecutan allí.&lt;/p&gt;
&lt;h2 id=&#34;2-actualice-ubuntu-e-instale-el-entorno-base&#34;&gt;2. Actualice Ubuntu e instale el entorno base
&lt;/h2&gt;&lt;p&gt;Actualice el sistema primero:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt update
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt upgrade -y
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Luego instale Python, herramientas de extracción, Node.js y Git.&lt;/p&gt;
&lt;h3 id=&#34;instalar-python&#34;&gt;Instalar Python
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install python3-pip python3-venv -y
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;instalar-zstd&#34;&gt;Instalar zstd
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install -y zstd
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;instalar-nodejs&#34;&gt;Instalar Node.js
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -fsSL https://deb.nodesource.com/setup_22.x &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sudo -E bash -
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install -y nodejs
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;instalar-git&#34;&gt;Instalar Git
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt update
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install -y git
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Puede verificar rápidamente la instalación con:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;node -v
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm -v
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git --version
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;3-instala-ollama-y-tira-de-gemma-4&#34;&gt;3. Instala Ollama y tira de Gemma 4
&lt;/h2&gt;&lt;p&gt;Instalar Ollama:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -fsSL https://ollama.com/install.sh &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si desea un modelo local para Hermes Agent, comenzar con &amp;ldquo;Gemma 4&amp;rdquo; es razonable.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama run gemma4:e4b
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si tu máquina es más débil, también puedes intentar:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama run gemma4:e2b
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Las variantes más grandes incluyen:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama run gemma4:26b
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama run gemma4:31b
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Para la mayoría de las configuraciones normales de &lt;code&gt;Windows + WSL&lt;/code&gt;, &lt;code&gt;gemma4:e4b&lt;/code&gt; suele ser el punto de partida más práctico.&lt;/p&gt;
&lt;h2 id=&#34;4-instalar-y-configurar-el-agente-hermes&#34;&gt;4. Instalar y configurar el Agente Hermes
&lt;/h2&gt;&lt;p&gt;Instálalo con:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Después de la instalación, apúntelo al punto final local de Ollama:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://127.0.0.1:11434
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Utilice el nombre del modelo local que realmente instaló, por ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gemma4:e4b
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si el instalador le pide que actualice el shell, ejecute:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;source&lt;/span&gt; ~/.bashrc
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;comandos-comunes-del-agente-hermes&#34;&gt;Comandos comunes del agente Hermes
&lt;/h2&gt;&lt;p&gt;Estos son los comandos que utilizarás con más frecuencia:&lt;/p&gt;
&lt;h3 id=&#34;empezar&#34;&gt;Empezar
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hermes
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;vuelva-a-ingresar-a-la-configuración&#34;&gt;Vuelva a ingresar a la configuración
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hermes setup
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;configurar-la-puerta-de-enlace-de-chat&#34;&gt;Configurar la puerta de enlace de chat
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hermes setup gateway
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;actualizar&#34;&gt;Actualizar
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hermes update
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;pasos-básicos-de-conexión-a-telegram&#34;&gt;Pasos básicos de conexión a Telegram
&lt;/h2&gt;&lt;p&gt;Si desea que Hermes Agent envíe y reciba mensajes a través de Telegram, el paso principal sigue siendo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hermes setup gateway
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Luego prepare los dos elementos del lado de Telegram que necesita:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;crear un bot con &lt;code&gt;BotFather&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;obtenga su &lt;code&gt;ID de usuario&lt;/code&gt; con &lt;code&gt;@userinfobot&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Una vez que tenga esos conceptos básicos, continúe completándolos en la configuración de la puerta de enlace del Agente Hermes.&lt;/p&gt;
&lt;h2 id=&#34;a-quién-se-adapta-esta-configuración&#34;&gt;¿A quién se adapta esta configuración?
&lt;/h2&gt;&lt;p&gt;Este flujo de trabajo es una buena opción si:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Windows es su sistema de escritorio principal&lt;/li&gt;
&lt;li&gt;no desea mantener un host Linux separado&lt;/li&gt;
&lt;li&gt;primero desea ejecutar un agente local y luego expandirlo a plataformas de chat&lt;/li&gt;
&lt;li&gt;prefieres modelos locales en lugar de depender de las API de la nube&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si principalmente desea experimentar un Agente local en lugar de crear una implementación de producción completa de inmediato, esta ruta ya es bastante práctica.&lt;/p&gt;
&lt;h2 id=&#34;algunas-cosas-a-tener-en-cuenta&#34;&gt;Algunas cosas a tener en cuenta
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;WSL&lt;/code&gt; sigue siendo una capa de compatibilidad, por lo que en casos extremos puede que no se comporte exactamente como Linux nativo.&lt;/li&gt;
&lt;li&gt;Que un modelo grande funcione sin problemas aún depende de su RAM, VRAM y CPU/GPU&lt;/li&gt;
&lt;li&gt;&lt;code&gt;gemma4:e4b&lt;/code&gt; es un punto de partida realista, pero la experiencia real aún depende de la máquina&lt;/li&gt;
&lt;li&gt;La integración de la plataforma Hermes Agent es un paso de extensión; hacer que la ruta del modelo local funcione primero y luego agregar Telegram suele ser más estable&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;conclusión&#34;&gt;Conclusión
&lt;/h2&gt;&lt;p&gt;Si desea implementar Hermes Agent localmente en Windows con la menor fricción posible, el orden más sencillo es:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;WSL -&amp;gt; Ubuntu -&amp;gt; Ollama -&amp;gt; Gemma 4 -&amp;gt; Agente Hermes -&amp;gt; Telegram&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Primero ejecute el modelo local y luego agregue la integración de la puerta de enlace. Por lo general, eso le brinda una tasa de éxito mucho mayor. Para la mayoría de los usuarios, esto es más fácil de solucionar que acumular cada componente al principio y también deja espacio para una expansión posterior.&lt;/p&gt;
&lt;h2 id=&#34;referencia-original&#34;&gt;Referencia original
&lt;/h2&gt;&lt;p&gt;Esta publicación está reescrita y organizada en base a:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Blog de Xchaoge: &lt;a class=&#34;link&#34; href=&#34;https://www.xchaoge.com/21.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;太简单了！Agente Hermes 本地部署（无需API）接入 Telegram + 微信&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>¿Dónde guarda llama-cli -hf los modelos de caras abrazadas de forma predeterminada?</title>
        <link>https://knightli.com/es/2026/04/17/llama-cli-hf-download-default-cache-path/</link>
        <pubDate>Fri, 17 Apr 2026 14:48:04 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/17/llama-cli-hf-download-default-cache-path/</guid>
        <description>&lt;p&gt;Si usa &lt;code&gt;llama-cli&lt;/code&gt; para descargar y ejecutar un modelo directamente desde Hugging Face, por ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;llama-cli -hf unsloth/gemma-4-E4B-it-GGUF
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;esto utiliza el soporte de descarga de Hugging Face integrado en &lt;code&gt;llama.cpp&lt;/code&gt;. Las compilaciones recientes de &lt;code&gt;llama.cpp&lt;/code&gt; almacenan modelos descargados con &lt;code&gt;-hf&lt;/code&gt; en el directorio de caché estándar de Hugging Face Hub.&lt;/p&gt;
&lt;h2 id=&#34;ubicaciones-de-caché-predeterminadas&#34;&gt;Ubicaciones de caché predeterminadas
&lt;/h2&gt;&lt;p&gt;La ubicación del caché utilizada por &lt;code&gt;llama-cli -hf&lt;/code&gt; se controla primero mediante la variable de entorno &lt;code&gt;LLAMA_CACHE&lt;/code&gt;. Si &lt;code&gt;LLAMA_CACHE&lt;/code&gt; no está configurado, &lt;code&gt;llama.cpp&lt;/code&gt; verifica las variables de caché de Hugging Face como &lt;code&gt;HF_HUB_CACHE&lt;/code&gt;, &lt;code&gt;HUGGINGFACE_HUB_CACHE&lt;/code&gt; y &lt;code&gt;HF_HOME&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Si no se establece ninguna de esas variables, las rutas predeterminadas comunes son:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Sistema&lt;/th&gt;
          &lt;th&gt;Directorio de caché predeterminado&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Linux&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;~/.cache/huggingface/hub&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;MacOS&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;~/.cache/huggingface/hub&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Ventanas&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;%PERFIL DE USUARIO%\.cache\huggingface\hub&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;En Windows, &lt;code&gt;%USERPROFILE%&lt;/code&gt; normalmente se expande a:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;C:\Users\用户名
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Entonces el directorio de caché predeterminado es aproximadamente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;C:\Users\用户名\.cache\huggingface\hub
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;cómo-cambiar-el-directorio-de-caché-llama-cli&#34;&gt;Cómo cambiar el directorio de caché llama-cli
&lt;/h2&gt;&lt;p&gt;Configure &lt;code&gt;LLAMA_CACHE&lt;/code&gt; si desea almacenar los modelos descargados en un disco específico o en una carpeta específica. También puedes seguir la convención de Hugging Face y configurar &lt;code&gt;HF_HOME&lt;/code&gt;; en ese caso, el directorio de caché del concentrador será &lt;code&gt;$HF_HOME/hub&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Ejemplo de CMD temporal de Windows:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;set LLAMA_CACHE=D:\models\llama-cache
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;llama-cli -hf unsloth/gemma-4-E4B-it-GGUF
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Ejemplo de PowerShell temporal:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$env:LLAMA_CACHE&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;D:\models\llama-cache&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;llama-cli&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-hf&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;unsloth&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;gemma&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;-E4B-it-GGUF&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Ejemplo temporal de Linux/macOS:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;LLAMA_CACHE&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;/data/models/llama-cache
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;llama-cli -hf unsloth/gemma-4-E4B-it-GGUF
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;llama-cli -hf ...&lt;/code&gt; usa la lógica de descarga de &lt;code&gt;llama.cpp&lt;/code&gt;, pero las compilaciones recientes utilizan de forma predeterminada el caché de Hugging Face Hub.&lt;/li&gt;
&lt;li&gt;Valor predeterminado de Linux/macOS: &lt;code&gt;~/.cache/huggingface/hub&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Valor predeterminado de Windows: &lt;code&gt;%USERPROFILE%\.cache\huggingface\hub&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Para cambiar la ubicación, configure &lt;code&gt;LLAMA_CACHE&lt;/code&gt; o configure &lt;code&gt;HF_HOME&lt;/code&gt; / &lt;code&gt;HF_HUB_CACHE&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Cómo reparar el error de verificación del certificado SSL cuando llama-cli se descarga desde Hugging Face en Windows</title>
        <link>https://knightli.com/es/2026/04/17/llama-cli-hugging-face-ssl-certificate-failed-on-windows/</link>
        <pubDate>Fri, 17 Apr 2026 14:20:29 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/17/llama-cli-hugging-face-ssl-certificate-failed-on-windows/</guid>
        <description>&lt;p&gt;Si ejecuta este comando en Windows:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;llama-cli -hf unsloth/gemma-4-E4B-it-GGUF
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;y veo un error como este:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;get_repo_commit: error: HTTPLIB failed: SSL server verification failed
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;error: failed to download model from Hugging Face
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Por lo general, el problema no es CUDA ni &lt;code&gt;llama.cpp&lt;/code&gt;. Más a menudo, el programa no puede acceder correctamente a la cadena de certificados del sistema en el entorno actual, por lo que falla la verificación HTTPS.&lt;/p&gt;
&lt;p&gt;Desde el registro, &lt;code&gt;ggml-rpc.dll&lt;/code&gt; y &lt;code&gt;ggml-cpu-alderlake.dll&lt;/code&gt; se cargaron correctamente, lo que significa que el entorno de ejecución está prácticamente bien. El problema está principalmente en el paso de descarga del modelo.&lt;/p&gt;
&lt;h2 id=&#34;la-solución-más-sencilla-descargar-el-modelo-manualmente&#34;&gt;La solución más sencilla: descargar el modelo manualmente
&lt;/h2&gt;&lt;p&gt;Si sólo desea que funcione rápidamente, descargar el modelo manualmente suele ser la opción más estable.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Abra la página del repositorio de Hugging Face correspondiente.&lt;/li&gt;
&lt;li&gt;Descargue el archivo &lt;code&gt;.gguf&lt;/code&gt; requerido desde &lt;code&gt;Archivos y versiones&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Una vez finalizada la descarga, ejecútela con la ruta del archivo local:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-gdscript3&#34; data-lang=&#34;gdscript3&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;llama&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;cli&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;m&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;C&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;\&lt;span class=&#34;n&#34;&gt;Users&lt;/span&gt;\&lt;span class=&#34;n&#34;&gt;knightli&lt;/span&gt;\&lt;span class=&#34;n&#34;&gt;Downloads&lt;/span&gt;\&lt;span class=&#34;n&#34;&gt;gemma&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;e4b&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;it&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;gguf&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Esto omite la verificación SSL durante el paso de descarga &lt;code&gt;-hf&lt;/code&gt; y es útil cuando solo desea verificar que el modelo se puede ejecutar localmente.&lt;/p&gt;
&lt;h2 id=&#34;si-aún-deseas-utilizar-la-descarga-automática--hf&#34;&gt;Si aún deseas utilizar la descarga automática &lt;code&gt;-hf&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;Puede especificar manualmente una ruta de archivo de certificado para que el programa pueda encontrar un paquete de CA utilizable en la sesión actual.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;cacert.pem&lt;/code&gt; se puede obtener de la página de extracto de CA mantenida por el proyecto curl:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Página: &lt;a class=&#34;link&#34; href=&#34;https://curl.se/docs/caextract.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://curl.se/docs/caextract.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Descarga directa: &lt;a class=&#34;link&#34; href=&#34;https://curl.se/ca/cacert.pem&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://curl.se/ca/cacert.pem&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si lo descarga en un navegador, abra el enlace de descarga directa y guárdelo como &lt;code&gt;cacert.pem&lt;/code&gt;. También puedes descargarlo a un directorio fijo con PowerShell:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;New-Item&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-ItemType&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Directory&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Force&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;C:&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;certs&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;Invoke-WebRequest&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Uri&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;https&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;//&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;curl&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;se&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ca&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;cacert&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;pem&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-OutFile&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;C:&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;certs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;cacert&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;pem&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Una vez finalizada la descarga, configure estas variables en la línea de comando:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;set SSL_CERT_FILE=C:\certs\cacert.pem
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;set CURL_CA_BUNDLE=C:\certs\cacert.pem
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Luego ejecute el comando original nuevamente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;llama-cli -hf unsloth/gemma-4-E4B-it-GGUF
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si el problema realmente proviene de la cadena de certificados, esto generalmente lo soluciona directamente.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Guía práctica de codex-quota: uso local, web y de Docker con comandos CLI originales</title>
        <link>https://knightli.com/es/2026/04/16/codex-quota-cli-web-docker-guide/</link>
        <pubDate>Thu, 16 Apr 2026 18:13:04 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/16/codex-quota-cli-web-docker-guide/</guid>
        <description>&lt;h2 id=&#34;qué-hace-este-proyecto&#34;&gt;Qué hace este proyecto
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;codex-quota&lt;/code&gt; es una herramienta liviana para verificar el uso de la cuota de ChatGPT Codex, con datos obtenidos de &lt;code&gt;https://chatgpt.com/backend-api/wham/usage&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Características principales:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Admite consultas de una sola cuenta y de varias cuentas (&lt;code&gt;account/*.auth.json&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Genera &lt;code&gt;five_hour%&lt;/code&gt;, &lt;code&gt;weekly%&lt;/code&gt;, &lt;code&gt;weekly_reset&lt;/code&gt; y marca la fuente (&lt;code&gt;network&lt;/code&gt; o &lt;code&gt;cache&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Utiliza reintentos de retroceso exponencial para fallas temporales (&lt;code&gt;408&lt;/code&gt;, &lt;code&gt;429&lt;/code&gt;, &lt;code&gt;5xx&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Incluye almacenamiento en caché local para reducir las solicitudes repetidas cuando la cuota ya está agotada.&lt;/li&gt;
&lt;li&gt;Proporciona un panel web, API JSON y páginas de administración de archivos de autenticación.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Ventajas:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Ligero: se ejecuta con scripts simples y dependencias mínimas.&lt;/li&gt;
&lt;li&gt;Práctico: admite puntos de entrada CLI y Web.&lt;/li&gt;
&lt;li&gt;Implementable: funciona con Docker y Docker Compose.&lt;/li&gt;
&lt;li&gt;Fácil de operar: incluye reintento, caché y soporte de actualización programada.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;prepare-las-credenciales-de-la-cuenta-primero&#34;&gt;Prepare las credenciales de la cuenta primero
&lt;/h2&gt;&lt;p&gt;Cree archivos de credenciales en &lt;code&gt;account/&amp;lt;name&amp;gt;.auth.json&lt;/code&gt;, por ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;tokens&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;access_token&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;eyJ...&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;account_id&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;user-xxxxxxxx&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Explicación:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La API de uso requiere &lt;code&gt;access_token&lt;/code&gt; y &lt;code&gt;account_id&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;nombre&amp;gt;&lt;/code&gt; en el nombre del archivo se utiliza como nombre de cuenta en la salida.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;uso-de-cli-local-conservar-los-comandos-originales&#34;&gt;Uso de CLI local (conservar los comandos originales)
&lt;/h2&gt;&lt;p&gt;Instalar dependencias:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install -r requirements.txt
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Explicación: instala las dependencias del proyecto.&lt;/p&gt;
&lt;p&gt;Consultar todas las cuentas:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python codex_quota.py
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Explicación: lee &lt;code&gt;account/*.auth.json&lt;/code&gt; y genera un resumen de cuota para todas las cuentas.&lt;/p&gt;
&lt;p&gt;Consulta una cuenta:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python codex_quota.py your_account_name
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Explicación: solo consulta &lt;code&gt;cuenta/nombre_de_cuenta.auth.json&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Forzar actualización (omitir caché):&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python codex_quota.py --refresh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Explicación: ignora el caché local y recupera datos nuevos directamente.&lt;/p&gt;
&lt;h2 id=&#34;opciones-cli-alineadas-con-readme&#34;&gt;Opciones CLI (alineadas con README)
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;account_name&lt;/code&gt;: nombre de cuenta opcional (sin &lt;code&gt;.auth.json&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--account-dir&lt;/code&gt;: directorio de autenticación, &lt;code&gt;cuenta&lt;/code&gt; predeterminada.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--chatgpt-url&lt;/code&gt;: punto final de API de cuota.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--raw-json&lt;/code&gt;: imprime el cuerpo completo de la respuesta JSON.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--raw-headers&lt;/code&gt;: imprime encabezados de respuesta.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--refresh&lt;/code&gt;: ignora el caché.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--retries&lt;/code&gt;: recuento de reintentos, valor predeterminado &lt;code&gt;3&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--retry-delay&lt;/code&gt;: retraso de reintento base en segundos, valor predeterminado &lt;code&gt;2.0&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;uso-del-panel-web-conservar-el-comando-original&#34;&gt;Uso del panel web (conservar el comando original)
&lt;/h2&gt;&lt;p&gt;Iniciar el servicio:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python codex_quota_service.py --host 0.0.0.0 --port &lt;span class=&#34;m&#34;&gt;8081&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Explicación: inicia el servicio HTTP escuchando en el puerto &lt;code&gt;8081&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;URL de acceso: &lt;code&gt;http://localhost:8081&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Opciones de servicio:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;--host&lt;/code&gt;: dirección de enlace, predeterminado &lt;code&gt;0.0.0.0&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--port&lt;/code&gt;: puerto de servicio, predeterminado &lt;code&gt;8081&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--interval-segundos&lt;/code&gt;: intervalo de actualización programado, predeterminado &lt;code&gt;3600&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--account-dir&lt;/code&gt;: directorio de autenticación, &lt;code&gt;cuenta&lt;/code&gt; predeterminada.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--state-file&lt;/code&gt;: ruta del archivo de estado, predeterminado &lt;code&gt;&amp;lt;account-dir&amp;gt;/codex_quota_web_results.json&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--account-name&lt;/code&gt;: modo de cuenta única opcional.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--chatgpt-url&lt;/code&gt;: punto final de API de cuota.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--retries&lt;/code&gt;: recuento de reintentos.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--retry-delay&lt;/code&gt;: retraso de reintento base.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--refresh&lt;/code&gt;: ignora el caché CLI durante las ejecuciones programadas.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;puntos-finales-http-para-automatización&#34;&gt;Puntos finales HTTP (para automatización)
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GET /&lt;/code&gt;: página del panel de control.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GET /api/results&lt;/code&gt;: últimos resultados en JSON.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GET /refresh&lt;/code&gt;: activa la actualización inmediata y redirige a &lt;code&gt;/&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GET /auth&lt;/code&gt;: enumera los archivos de autenticación.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GET /auth/new&lt;/code&gt;: formulario para crear un archivo de autenticación.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GET /auth/edit?name=&amp;lt;cuenta&amp;gt;&lt;/code&gt;: formulario para editar el archivo de autenticación.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;POST /auth/save&lt;/code&gt;: crea/actualiza el archivo de autenticación.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;POST /auth/delete&lt;/code&gt;: elimina el archivo de autenticación.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;uso-de-docker-conservar-los-comandos-originales&#34;&gt;Uso de Docker (conservar los comandos originales)
&lt;/h2&gt;&lt;p&gt;Construir imagen:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker build -t codex-quota .
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Explicación: construye el proyecto actual como imagen &lt;code&gt;codex-quota&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Ejecutar contenedor (mapa 8081):&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run --rm -p 8081:8081 -v ./account:/app/account codex-quota
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Explicación:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;--rm&lt;/code&gt;: elimina el contenedor automáticamente después de salir.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-p 8081:8081&lt;/code&gt;: asigna el puerto del host al puerto del contenedor.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-v ./account:/app/account&lt;/code&gt;: monta las credenciales locales en el contenedor.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;URL de acceso: &lt;code&gt;http://localhost:8081&lt;/code&gt;&lt;/p&gt;
&lt;h2 id=&#34;uso-de-docker-compose-conservar-el-comando-original&#34;&gt;Uso de Docker Compose (conservar el comando original)
&lt;/h2&gt;&lt;p&gt;Inicio:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker compose up --build
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Explicación: cree e inicie servicios basados ​​en &lt;code&gt;docker-compose.yml&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;URL de acceso: &lt;code&gt;http://localhost:8081&lt;/code&gt;&lt;/p&gt;
&lt;h2 id=&#34;consejos-de-uso&#34;&gt;Consejos de uso
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;Para escenarios de múltiples cuentas, use primero el Panel de control para una vista unificada y administración de autenticación.&lt;/li&gt;
&lt;li&gt;Para alertas o automatización, prefiera &lt;code&gt;GET /api/results&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;No envíe valores reales de &lt;code&gt;access_token&lt;/code&gt; a repositorios públicos.&lt;/li&gt;
&lt;li&gt;Si ve muchas fallas temporales, aumente &lt;code&gt;--retries&lt;/code&gt; y &lt;code&gt;--retry-delay&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
</description>
        </item>
        <item>
        <title>Usar Claude en VS Code: de configurar API a generar páginas</title>
        <link>https://knightli.com/es/2026/04/16/vscode-claude-api-coding-workflow/</link>
        <pubDate>Thu, 16 Apr 2026 17:47:17 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/16/vscode-claude-api-coding-workflow/</guid>
        <description>&lt;p&gt;Cuando empiezas a llevar modelos grandes al desarrollo diario, el mayor cambio no suele ser si pueden escribir código. Es si pueden empujar de una vez un conjunto de tareas pequeñas y dispersas.&lt;/p&gt;
&lt;p&gt;El valor real de estas herramientas no es completar unas líneas. Es poder chatear, editar archivos, previsualizar resultados y seguir iterando sin salir del editor. Para páginas simples, prototipos rápidos, ajustes de estilo y pequeñas funciones, ese workflow suele sentirse mucho más fluido que cambiar manualmente de una herramienta a otra.&lt;/p&gt;
&lt;p&gt;Este artículo resume un enfoque práctico: después de conectar un modelo tipo Claude a &lt;code&gt;VS Code&lt;/code&gt;, cómo usarlo realmente para generación de páginas e iteración de pequeñas funciones.&lt;/p&gt;
&lt;h2 id=&#34;1-conecta-primero-la-toolchain&#34;&gt;1. Conecta primero la toolchain
&lt;/h2&gt;&lt;p&gt;El flujo central de un plugin de AI coding suele ser simple:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Instalar en &lt;code&gt;VS Code&lt;/code&gt; un plugin que soporte edición conversacional de código&lt;/li&gt;
&lt;li&gt;Rellenar el &lt;code&gt;Base URL&lt;/code&gt; del servicio de modelo&lt;/li&gt;
&lt;li&gt;Añadir tu &lt;code&gt;API Key&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Elegir el nombre de modelo&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Una vez hecho, la parte AI del editor es realmente usable. Después, las diferencias de experiencia dependen más de calidad del modelo, interacción del plugin y estabilidad del output generado.&lt;/p&gt;
&lt;p&gt;Si nunca configuraste un plugin así, piensa en esto:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;el plugin convierte tu petición en lenguaje natural en acciones del editor&lt;/li&gt;
&lt;li&gt;la &lt;code&gt;API&lt;/code&gt; envía la solicitud a un servicio de modelo&lt;/li&gt;
&lt;li&gt;el modelo interpreta tu intención y devuelve código, ediciones o resultados estructurados&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El trabajo real de emparejar piezas está en tres cosas: plugin, endpoint y nombre de modelo.&lt;/p&gt;
&lt;h2 id=&#34;2-empieza-con-tareas-pequeñas&#34;&gt;2. Empieza con tareas pequeñas
&lt;/h2&gt;&lt;p&gt;Mucha gente quiere que la herramienta construya un proyecto completo al primer intento. Puede funcionar, pero para principiantes lo más rápido es empezar con algo mucho menor.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Generar una página frontend simple&lt;/li&gt;
&lt;li&gt;Añadir una sección de aviso a una página existente&lt;/li&gt;
&lt;li&gt;Crear un formulario de registro&lt;/li&gt;
&lt;li&gt;Hacer que la UI se vea más pulida y formal&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas tareas ayudan porque:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;el prompt es más claro&lt;/li&gt;
&lt;li&gt;puedes previsualizar el resultado de inmediato&lt;/li&gt;
&lt;li&gt;ves cómo conversación y ediciones de archivo trabajan juntas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cuando la petición es suficientemente específica, el plugin puede conversar en una barra lateral mientras edita archivos. Luego inspeccionas el resultado, previsualizas la página y decides si pedir otro cambio.&lt;/p&gt;
&lt;h2 id=&#34;3-la-ganancia-real-es-la-iteración-no-la-generación-de-una-pasada&#34;&gt;3. La ganancia real es la iteración, no la generación de una pasada
&lt;/h2&gt;&lt;p&gt;Un malentendido común es centrarse demasiado en si el primer resultado impresiona.&lt;/p&gt;
&lt;p&gt;En la práctica importa más si la segunda y tercera ronda siguen moviéndose en la dirección correcta.&lt;/p&gt;
&lt;p&gt;Un patrón común:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Pedir un esqueleto funcional de página&lt;/li&gt;
&lt;li&gt;Añadir una o dos funciones claras&lt;/li&gt;
&lt;li&gt;Revisar si código y UI se vuelven más completos&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si la herramienta se siente fluida, empieza a parecerse a trabajar con un junior muy rápido:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;describes la tarea&lt;/li&gt;
&lt;li&gt;produce una primera pasada&lt;/li&gt;
&lt;li&gt;señalas lo que falta&lt;/li&gt;
&lt;li&gt;sigue refinando&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ese workflow iterativo y conversacional se acerca mucho más al desarrollo real y es donde estas herramientas crean mayor diferencia de productividad.&lt;/p&gt;
&lt;h2 id=&#34;4-saber-qué-dar-a-ai-y-qué-corregir-tú&#34;&gt;4. Saber qué dar a AI y qué corregir tú
&lt;/h2&gt;&lt;p&gt;Esta distinción importa mucho.&lt;/p&gt;
&lt;p&gt;Layout de página, borradores de componentes, scaffolding de formularios, pulido de estilo, copy placeholder y boilerplate repetitivo suelen ser buenos candidatos para AI.&lt;/p&gt;
&lt;p&gt;Pero si solo necesitas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;cambiar una etiqueta de botón&lt;/li&gt;
&lt;li&gt;ajustar una frase de footer&lt;/li&gt;
&lt;li&gt;tocar un detalle mínimo de estilo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;a menudo es más rápido editarlo tú. El cambio es demasiado pequeño para justificar otra interacción completa con el modelo.&lt;/p&gt;
&lt;p&gt;El enfoque eficiente no es darle todo a AI. Es saber cuándo dejarle manejar un bloque grande y cuándo terminar los últimos detalles a mano.&lt;/p&gt;
&lt;h2 id=&#34;5-la-configuración-api-es-una-barrera-pero-no-lo-más-difícil&#34;&gt;5. La configuración API es una barrera, pero no lo más difícil
&lt;/h2&gt;&lt;p&gt;Mucha gente no se atasca en programar. Se atasca en configurar.&lt;/p&gt;
&lt;p&gt;Checks habituales:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;¿El endpoint es correcto?&lt;/li&gt;
&lt;li&gt;¿La key es válida?&lt;/li&gt;
&lt;li&gt;¿El nombre de modelo coincide con el servicio?&lt;/li&gt;
&lt;li&gt;¿El plugin espera un formato concreto de &lt;code&gt;Base URL&lt;/code&gt;?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si uno falla, el plugin puede abrir normalmente pero las solicitudes fallan por debajo.&lt;/p&gt;
&lt;p&gt;Orden práctico de troubleshooting:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Revisar endpoint&lt;/li&gt;
&lt;li&gt;Revisar key&lt;/li&gt;
&lt;li&gt;Revisar nombre de modelo y requisitos de formato URL&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Esos tres puntos resuelven la mayoría de problemas de setup.&lt;/p&gt;
&lt;h2 id=&#34;6-cómo-juzgar-si-el-output-vale-la-pena&#34;&gt;6. Cómo juzgar si el output vale la pena
&lt;/h2&gt;&lt;p&gt;Un estándar práctico no es si el output parece espectacular, sino si aguanta pruebas básicas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;¿La página generada corre de inmediato?&lt;/li&gt;
&lt;li&gt;¿La estructura es razonablemente clara?&lt;/li&gt;
&lt;li&gt;¿Sigue el rumbo tras peticiones de seguimiento?&lt;/li&gt;
&lt;li&gt;¿Mantiene consistencia al crecer el alcance de edición?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si una o dos rondas bastan para mover una página desde blanco hasta algo refinable, la herramienta ya es útil.&lt;/p&gt;
&lt;p&gt;Si cada resultado requiere rework grande, no está ahorrando tiempo. Solo convierte escribir código en revisar código.&lt;/p&gt;
&lt;h2 id=&#34;cierre&#34;&gt;Cierre
&lt;/h2&gt;&lt;p&gt;Lo más interesante de usar modelos tipo Claude en &lt;code&gt;VS Code&lt;/code&gt; no es la fantasía de no escribir código nunca más. Es que muchas tareas dispersas, repetitivas y que rompen contexto pueden avanzar en una pasada.&lt;/p&gt;
&lt;p&gt;Un workflow realista:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;deja que AI construya el primer esqueleto de página y función&lt;/li&gt;
&lt;li&gt;usa dos o tres rondas conversacionales para refinar&lt;/li&gt;
&lt;li&gt;haz tú los pequeños cambios finales claros&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Así, AI se vuelve un acelerador, no un reemplazo que deba tomar todo el desarrollo.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Verificación de identidad de Claude: por qué existe, qué necesita y cómo se manejan los datos</title>
        <link>https://knightli.com/es/2026/04/16/claude-identity-verification-guide/</link>
        <pubDate>Thu, 16 Apr 2026 09:20:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/16/claude-identity-verification-guide/</guid>
        <description>&lt;p&gt;Anthropic está implementando gradualmente la verificación de identidad de Claude. Según el artículo de ayuda oficial, esto no es simplemente una barrera adicional. Es parte del trabajo de integridad, seguridad, cumplimiento y prevención de abusos de la plataforma.&lt;/p&gt;
&lt;p&gt;En resumen, la verificación de identidad de Claude pretende resolver tres problemas:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Confirme quién está utilizando potentes herramientas de inteligencia artificial.&lt;/li&gt;
&lt;li&gt;Ayude a hacer cumplir las políticas de uso y reducir el abuso.&lt;/li&gt;
&lt;li&gt;Cumplir con las obligaciones legales y de cumplimiento necesarias.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si ve un mensaje de verificación de identidad al acceder a ciertas funciones de Claude, generalmente significa que la plataforma está ejecutando una verificación rutinaria de seguridad y cumplimiento. Anthropic también afirma que los datos de verificación se utilizan únicamente para confirmar su identidad, no para otros fines.&lt;/p&gt;
&lt;h2 id=&#34;01-cuándo-puede-ser-necesaria-la-verificación&#34;&gt;01 Cuándo puede ser necesaria la verificación
&lt;/h2&gt;&lt;p&gt;El documento oficial no enumera todas las condiciones desencadenantes. Solo dice que la verificación de identidad se está implementando para algunos casos de uso y puede aparecer cuando accede a ciertas funciones.&lt;/p&gt;
&lt;p&gt;Eso significa que un mensaje de verificación no significa necesariamente que su cuenta tenga un problema. Los casos más comunes incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Estás utilizando una función que requiere un mayor nivel de confianza.&lt;/li&gt;
&lt;li&gt;La plataforma está realizando una verificación de integridad.&lt;/li&gt;
&lt;li&gt;Su cuenta o escenario de uso ha desencadenado un proceso de seguridad y cumplimiento.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Desde la perspectiva del usuario, lo más importante es saber qué necesita antes de que comience el flujo de verificación.&lt;/p&gt;
&lt;h2 id=&#34;02-quién-maneja-la-verificación&#34;&gt;02 Quién maneja la verificación
&lt;/h2&gt;&lt;p&gt;La verificación de identidad de Claude está a cargo de Anthropic junto con el proveedor de verificación externo &amp;ldquo;Persona Identities&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Anthropic dice que eligió Persona por:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fuerza técnica&lt;/li&gt;
&lt;li&gt;Controles de privacidad&lt;/li&gt;
&lt;li&gt;Salvaguardias de seguridad&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En la práctica, Anthropic establece las reglas sobre cómo se utilizan y retienen los datos de verificación, mientras que Persona procesa el flujo de verificación de acuerdo con las instrucciones de Anthropic.&lt;/p&gt;
&lt;h2 id=&#34;03-lo-que-necesitas&#34;&gt;03 Lo que necesitas
&lt;/h2&gt;&lt;p&gt;Antes de comenzar la verificación, prepare tres cosas:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Artículo&lt;/th&gt;
          &lt;th&gt;Notas&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Una identificación con fotografía válida emitida por el gobierno&lt;/td&gt;
          &lt;td&gt;Debe ser un documento físico y estar disponible cerca&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Un teléfono o computadora con cámara&lt;/td&gt;
          &lt;td&gt;Es posible que necesites tomarte una selfie en vivo o usar una cámara web&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Unos minutos&lt;/td&gt;
          &lt;td&gt;La verificación suele tardar menos de 5 minutos&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Si su identificación no está cerca o su dispositivo no tiene cámara, el proceso de verificación puede verse interrumpido.&lt;/p&gt;
&lt;h2 id=&#34;04-tipos-de-identificación-aceptados&#34;&gt;04 Tipos de identificación aceptados
&lt;/h2&gt;&lt;p&gt;Anthropic acepta identificaciones con fotografía originales, físicas y emitidas por el gobierno de la mayoría de los países. Los ejemplos comunes incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pasaporte&lt;/li&gt;
&lt;li&gt;Licencia de conducir&lt;/li&gt;
&lt;li&gt;DNI estatal, provincial o regional&lt;/li&gt;
&lt;li&gt;DNI&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El documento debe cumplir estos requisitos básicos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Emitido por un gobierno&lt;/li&gt;
&lt;li&gt;Incluye tu foto&lt;/li&gt;
&lt;li&gt;Claro y legible&lt;/li&gt;
&lt;li&gt;Sin daños&lt;/li&gt;
&lt;li&gt;No es una copia ni una captura de pantalla.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;05-lo-que-no-se-acepta&#34;&gt;05 Lo que no se acepta
&lt;/h2&gt;&lt;p&gt;Estos materiales generalmente no se pueden utilizar para la verificación de identidad de Claude:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Copias&lt;/li&gt;
&lt;li&gt;Capturas de pantalla&lt;/li&gt;
&lt;li&gt;Escaneos&lt;/li&gt;
&lt;li&gt;Fotos de fotos de una identificación.&lt;/li&gt;
&lt;li&gt;Identificaciones digitales o móviles, como licencias de conducir móviles&lt;/li&gt;
&lt;li&gt;Identificaciones no gubernamentales, como identificaciones de estudiantes, credenciales de empleados, tarjetas de biblioteca o tarjetas bancarias.&lt;/li&gt;
&lt;li&gt;Identificaciones temporales en papel&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Este es un lugar fácil para cometer un error. El requisito no es sólo &amp;ldquo;legible&amp;rdquo;; debe ser una identificación física original emitida por el gobierno.&lt;/p&gt;
&lt;h2 id=&#34;06-cómo-se-protegen-los-datos&#34;&gt;06 Cómo se protegen los datos
&lt;/h2&gt;&lt;p&gt;Esta es la parte más importante del documento.&lt;/p&gt;
&lt;p&gt;La explicación de Anthropic se puede resumir de la siguiente manera:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Anthropic es el responsable del tratamiento de los datos de verificación y establece reglas de uso y retención.&lt;/li&gt;
&lt;li&gt;Persona es el procesador y realiza la verificación en nombre de Anthropic.&lt;/li&gt;
&lt;li&gt;Persona recopila y almacena los documentos de identificación y las selfies, no directamente en los sistemas de Anthropic.&lt;/li&gt;
&lt;li&gt;Anthropic puede acceder a los registros de verificación a través de Persona cuando sea necesario, como al revisar apelaciones.&lt;/li&gt;
&lt;li&gt;Persona está contractualmente limitada en cuanto a cómo puede utilizar los datos, principalmente para proporcionar y respaldar la verificación y mejorar la prevención del fraude.&lt;/li&gt;
&lt;li&gt;Los datos enviados a Persona se cifran en tránsito y en reposo.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;En otras palabras, la identificación y la selfie que envíe no se tratan como datos de perfil de cuenta ordinarios para uso general. Están restringidos a flujos de trabajo de cumplimiento y verificación de identidad.&lt;/p&gt;
&lt;h2 id=&#34;07-lo-que-anthropic-dice-que-no-hace&#34;&gt;07 Lo que Anthropic dice que no hace
&lt;/h2&gt;&lt;p&gt;El artículo oficial enumera explícitamente varias cosas que Anthropic no hace:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No utiliza datos de verificación de identidad para entrenar modelos.&lt;/li&gt;
&lt;li&gt;No recopila más información de la necesaria para verificar la identidad.&lt;/li&gt;
&lt;li&gt;No utiliza datos de identidad para fines de marketing, publicidad o ajenos.&lt;/li&gt;
&lt;li&gt;No comparte datos de verificación con terceros no relacionados a menos que sea legalmente requerido para responder a un proceso legal válido.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto es importante porque la parte sensible de la verificación de identidad no es solo tomar una fotografía de una identificación, sino también lo que sucede con los datos después. La posición de Anthropic en este documento es que los datos de verificación se utilizan únicamente para confirmación de identidad, obligaciones legales y cumplimiento de seguridad.&lt;/p&gt;
&lt;h2 id=&#34;08-qué-pasa-si-falla-la-verificación&#34;&gt;08 ¿Qué pasa si falla la verificación?
&lt;/h2&gt;&lt;p&gt;La verificación puede fallar por motivos comunes, entre ellos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fotos borrosas&lt;/li&gt;
&lt;li&gt;Mala iluminación&lt;/li&gt;
&lt;li&gt;Información de identificación poco clara&lt;/li&gt;
&lt;li&gt;Documentos caducados&lt;/li&gt;
&lt;li&gt;Problemas técnicos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Anthropic recomienda este orden:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Inténtalo de nuevo. El flujo de verificación suele permitir múltiples intentos.&lt;/li&gt;
&lt;li&gt;Vuelva a tomar la foto con mejor iluminación.&lt;/li&gt;
&lt;li&gt;Verifique que la identificación sea clara, completa y no esté vencida.&lt;/li&gt;
&lt;li&gt;Si tiene otra identificación con fotografía emitida por el gobierno, inténtelo.&lt;/li&gt;
&lt;li&gt;Si se te acaban los intentos y aún no puedes verificar, contacta al soporte a través del formulario oficial.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;En la práctica, la solución más común es una mejor iluminación y una cámara correctamente enfocada.&lt;/p&gt;
&lt;h2 id=&#34;09-por-qué-es-posible-que-una-cuenta-aún-esté-deshabilitada-después-de-la-verificación&#34;&gt;09 Por qué es posible que una cuenta aún esté deshabilitada después de la verificación
&lt;/h2&gt;&lt;p&gt;Pasar la verificación de identidad no garantiza que una cuenta nunca será restringida. Anthropic dice que es posible que las cuentas aún se deshabiliten por otras razones del proceso de seguridad, como por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Violaciones repetidas de las políticas de uso.&lt;/li&gt;
&lt;li&gt;Crear una cuenta desde una ubicación no admitida&lt;/li&gt;
&lt;li&gt;Violar los Términos de Servicio&lt;/li&gt;
&lt;li&gt;Uso por alguien menor de 18 años.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si cree que su cuenta fue deshabilitada por error, puede enviar el formulario de apelación oficial con la información de su cuenta para que el equipo de seguridad pueda investigar.&lt;/p&gt;
&lt;h2 id=&#34;10-cómo-deben-prepararse-los-usuarios&#34;&gt;10 Cómo deben prepararse los usuarios
&lt;/h2&gt;&lt;p&gt;Si planea seguir usando Claude, especialmente las funciones de mayor confianza, prepare lo siguiente con anticipación:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Tenga a mano una identificación física con fotografía válida, vigente y emitida por el gobierno.&lt;/li&gt;
&lt;li&gt;Asegúrese de que su cámara funcione, idealmente tanto en el teléfono como en la computadora.&lt;/li&gt;
&lt;li&gt;Verifique en un ambiente bien iluminado.&lt;/li&gt;
&lt;li&gt;No cargue capturas de pantalla, escaneos o fotografías de fotografías de identificación.&lt;/li&gt;
&lt;li&gt;Si la verificación falla, verifique la claridad de la imagen y la iluminación antes de comunicarse con el soporte.
Para la mayoría de los usuarios, la verificación de identidad de Claude no es un proceso complicado, pero es estricto en cuanto a la autenticidad de los documentos. Si el tipo de documento es correcto y la foto es clara, normalmente sólo tardará unos minutos.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;enlaces-relacionados&#34;&gt;Enlaces relacionados
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://support.claude.com/zh-CN/articles/14328960-claude-%E4%B8%8A%E7%9A%84%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Verificación de identidad en Claude - Centro de ayuda de Anthropic&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.anthropic.com/legal/privacy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Política de privacidad de Anthropic&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Cómo funcionan los límites de uso de Codex: límites de 5 horas, límites semanales y créditos</title>
        <link>https://knightli.com/es/2026/04/15/codex-usage-limits-five-hour-weekly-credits/</link>
        <pubDate>Wed, 15 Apr 2026 22:50:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/15/codex-usage-limits-five-hour-weekly-credits/</guid>
        <description>&lt;p&gt;Cuando la gente mira por primera vez los límites de uso de Codex, es fácil asumir que el &lt;code&gt;5-hour limit&lt;/code&gt; es un saldo de corto plazo y que el &lt;code&gt;weekly limit&lt;/code&gt; solo empieza a bajar cuando se agota la cuota de 5 horas.&lt;/p&gt;
&lt;p&gt;No funciona así. Codex se entiende mejor como un sistema que revisa varias ventanas de límite al mismo tiempo: una ventana corta evita el uso en ráfaga, mientras la ventana semanal controla el uso total de la semana. Una solicitud de Codex normalmente cuenta contra ambas.&lt;/p&gt;
&lt;p&gt;Así que esta situación suele ser normal:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;5-hour quota still has plenty left
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;but weekly quota has already decreased
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;01-versión-corta&#34;&gt;01 Versión corta
&lt;/h2&gt;&lt;p&gt;Puedes entender el uso de Codex con tres reglas:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;El &lt;code&gt;5-hour limit&lt;/code&gt; y el &lt;code&gt;weekly limit&lt;/code&gt; se aplican al mismo tiempo.&lt;/li&gt;
&lt;li&gt;Si se agota el límite semanal, normalmente no puedes seguir usando el mismo pool de cuota de suscripción aunque la cuota de 5 horas aún tenga margen.&lt;/li&gt;
&lt;li&gt;Codex no se cobra por simple número de mensajes. El uso depende del modelo, tokens, complejidad de tarea, tamaño de contexto y ubicación de ejecución.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;En pseudocódigo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;can_use_codex =
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    five_hour_remaining &amp;gt; 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;amp;&amp;amp; weekly_remaining &amp;gt; 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;amp;&amp;amp; no other product policy is triggered
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Cuando se reinicia la ventana de 5 horas, solo se restaura esa cuota. No restaura la cuota semanal. La cuota semanal se reinicia según su propio calendario, o puede que puedas comprar créditos extra en planes compatibles.&lt;/p&gt;
&lt;h2 id=&#34;02-por-qué-bajan-ambas-ventanas&#34;&gt;02 Por qué bajan ambas ventanas
&lt;/h2&gt;&lt;p&gt;Piensa en los límites de Codex como dos puertas:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Window&lt;/th&gt;
          &lt;th&gt;Purpose&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;5-hour window&lt;/td&gt;
          &lt;td&gt;Prevents high-frequency burst usage&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Weekly window&lt;/td&gt;
          &lt;td&gt;Controls total weekly usage&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Cada tarea de Codex crea uso real. Ese uso se refleja en las ventanas de rate limit relevantes.&lt;/p&gt;
&lt;p&gt;No es:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Use 5-hour quota first
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;After the 5-hour quota runs out
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Start using weekly quota
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Se parece más a:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;One Codex request
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;=&amp;gt; counts toward the 5-hour window
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;=&amp;gt; also counts toward the weekly window
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Por eso el uso semanal puede bajar aunque la cuota de 5 horas no esté agotada.&lt;/p&gt;
&lt;h2 id=&#34;03-mira-los-créditos-basados-en-tokens&#34;&gt;03 Mira los créditos basados en tokens
&lt;/h2&gt;&lt;p&gt;OpenAI no publica una fórmula que permita a los usuarios reproducir exactamente el cargo de Codex. Lo público es la rate card, los factores principales y el precio de créditos por modelo.&lt;/p&gt;
&lt;p&gt;A fecha de 2026-04-15, el modelo principal de la rate card de Codex es &lt;code&gt;token-based credits&lt;/code&gt;. El uso se estima a partir de tokens de entrada, tokens de entrada cacheados y tokens de salida.&lt;/p&gt;
&lt;p&gt;Ejemplos de tarifas oficiales:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Model&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Input / 1M tokens&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Cached input / 1M tokens&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Output / 1M tokens&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.4&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;62.50 credits&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6.250 credits&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;375 credits&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.4-Mini&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;18.75 credits&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1.875 credits&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;113 credits&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.3-Codex&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;43.75 credits&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4.375 credits&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;350 credits&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.2-Codex&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;43.75 credits&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4.375 credits&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;350 credits&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.1-Codex-Max&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;31.25 credits&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3.125 credits&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;250 credits&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.1-Codex-mini&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6.25 credits&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;0.625 credits&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;50 credits&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Una estimación aproximada es:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;usage
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;~= input tokens / 1,000,000 * model input price
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+ cached input tokens / 1,000,000 * model cached input price
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+ output tokens / 1,000,000 * model output price
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;No es una fórmula exacta de facturación, pero explica la tendencia: la salida es cara, el contexto largo es caro y los modelos más potentes cuestan más. La rate card oficial también dice que &lt;code&gt;Fast mode&lt;/code&gt; usa 2x créditos y que &lt;code&gt;Code review&lt;/code&gt; usa precios de GPT-5.3-Codex.&lt;/p&gt;
&lt;h2 id=&#34;04-no-cuentes-solo-mensajes&#34;&gt;04 No cuentes solo mensajes
&lt;/h2&gt;&lt;p&gt;Diez mensajes de Codex pueden consumir cantidades muy distintas.&lt;/p&gt;
&lt;p&gt;Las tareas ligeras suelen ser más baratas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Editar una función pequeña&lt;/li&gt;
&lt;li&gt;Explicar un snippet corto&lt;/li&gt;
&lt;li&gt;Escribir un párrafo breve&lt;/li&gt;
&lt;li&gt;Hacer un cambio local en un archivo claramente especificado&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Las tareas pesadas cuestan más:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Escanear una codebase grande&lt;/li&gt;
&lt;li&gt;Ejecutar una sesión larga de agente&lt;/li&gt;
&lt;li&gt;Bucles repetidos de leer, editar, probar y corregir&lt;/li&gt;
&lt;li&gt;Generar mucho código o un informe largo&lt;/li&gt;
&lt;li&gt;Usar tareas cloud&lt;/li&gt;
&lt;li&gt;Activar fast mode&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Así que el número de mensajes solo da una impresión aproximada. No refleja el uso real.&lt;/p&gt;
&lt;h2 id=&#34;05-tareas-locales-frente-a-tareas-cloud&#34;&gt;05 Tareas locales frente a tareas cloud
&lt;/h2&gt;&lt;p&gt;La ubicación de ejecución puede marcar una gran diferencia.&lt;/p&gt;
&lt;p&gt;Una &lt;code&gt;local task&lt;/code&gt; trabaja en tu workspace local: lee archivos, edita código y ejecuta comandos. Una &lt;code&gt;cloud task&lt;/code&gt; se delega a un entorno cloud alojado, mejor para flujos más largos y automatizados.&lt;/p&gt;
&lt;p&gt;Las tareas cloud suelen ser más caras porque implican:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Un entorno de ejecución alojado&lt;/li&gt;
&lt;li&gt;Tareas más largas&lt;/li&gt;
&lt;li&gt;Más llamadas a herramientas&lt;/li&gt;
&lt;li&gt;Contexto más grande&lt;/li&gt;
&lt;li&gt;Un bucle de automatización más completo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para ediciones normales de código, limpieza de artículos o correcciones pequeñas, las tareas locales suelen ser más baratas. Usa tareas cloud cuando el trabajo realmente necesite ejecución alojada.&lt;/p&gt;
&lt;h2 id=&#34;06-por-qué-el-uso-semanal-baja-rápido&#34;&gt;06 Por qué el uso semanal baja rápido
&lt;/h2&gt;&lt;p&gt;Si tu cuota de 5 horas apenas se mueve pero el uso semanal baja mucho, causas comunes incluyen:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Usaste tareas cloud.&lt;/li&gt;
&lt;li&gt;Usaste un modelo más caro.&lt;/li&gt;
&lt;li&gt;Activaste fast mode.&lt;/li&gt;
&lt;li&gt;El contexto era grande, con muchos archivos o una conversación larga.&lt;/li&gt;
&lt;li&gt;La salida fue larga, como mucho código, un informe extenso o análisis de logs.&lt;/li&gt;
&lt;li&gt;La cadena de tareas fue larga: buscar, editar, probar, corregir y probar otra vez.&lt;/li&gt;
&lt;li&gt;Tu script de cuota etiquetó mal las ventanas de límite.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si lees campos desde algo como &lt;code&gt;/backend-api/wham/usage&lt;/code&gt;, no confíes solo en etiquetas procesadas como &lt;code&gt;five_hour%&lt;/code&gt; o &lt;code&gt;weekly%&lt;/code&gt;. Revisa los campos raw JSON:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;limit_window_seconds&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;percent_left&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;reset_at&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;bucket / feature name&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ventanas típicas:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;limit_window_seconds = 18000
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;=&amp;gt; about 5 hours
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;limit_window_seconds = 604800
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;=&amp;gt; about 7 days
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si tu script etiqueta las ventanas al revés, la visualización de cuota será engañosa.&lt;/p&gt;
&lt;h2 id=&#34;07-cómo-ahorrar-cuota&#34;&gt;07 Cómo ahorrar cuota
&lt;/h2&gt;&lt;p&gt;Para hacer que la cuota semanal dure más:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Divide trabajos grandes en tareas más pequeñas.&lt;/li&gt;
&lt;li&gt;Prefiere tareas locales cuando sea posible.&lt;/li&gt;
&lt;li&gt;Indica a Codex las rutas relevantes para reducir escaneo innecesario.&lt;/li&gt;
&lt;li&gt;Evita volcar logs enormes, archivos largos o contexto no relacionado.&lt;/li&gt;
&lt;li&gt;Usa modelos mini más baratos para trabajo ligero.&lt;/li&gt;
&lt;li&gt;Pide un plan antes de empezar una tarea larga.&lt;/li&gt;
&lt;li&gt;Pide respuestas concisas cuando no necesites un informe largo.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Un modelo mental útil:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;can continue using
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;= short window has quota
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;amp;&amp;amp; weekly window has quota
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;usage speed
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;= model price
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;* tokens
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;* output length
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;* task complexity
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;* execution location
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;No es matemática exacta de facturación, pero explica la mayoría del comportamiento de límites de uso de Codex.&lt;/p&gt;
&lt;h2 id=&#34;enlaces-relacionados&#34;&gt;Enlaces relacionados
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://help.openai.com/en/articles/11369540-using-codex-with-your-chatgpt-plan&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Using Codex with your ChatGPT plan - OpenAI Help Center&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://help.openai.com/en/articles/11481834&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ChatGPT Rate Card - OpenAI Help Center&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://help.openai.com/zh-hans-cn/articles/20001106-codex-rate-card&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Codex rate card - OpenAI Help Center&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://help.openai.com/en/articles/12642688-using-credits-for-flexible-usage-in-chatgpt-pluspro&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Using Credits for Flexible Usage in ChatGPT - OpenAI Help Center&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Notas del proyecto RAGFlow: funciones y uso de un motor RAG open source</title>
        <link>https://knightli.com/es/2026/04/15/ragflow-rag-engine-guide/</link>
        <pubDate>Wed, 15 Apr 2026 22:09:25 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/15/ragflow-rag-engine-guide/</guid>
        <description>&lt;p&gt;&lt;code&gt;RAGFlow&lt;/code&gt; es un motor RAG open source de &lt;code&gt;infiniflow&lt;/code&gt;. Su objetivo no es ofrecer una simple capa de &amp;ldquo;sube documentos y haz preguntas&amp;rdquo;, sino reunir parsing de documentos, chunking, recuperación, reranking, trazabilidad de citas, configuración de modelos, capacidades de agentes e integración API en un flujo completo.&lt;/p&gt;
&lt;p&gt;Si estás construyendo una base de conocimiento empresarial, Q&amp;amp;A sobre documentos, un asistente de soporte, recuperación de información interna o una capa de contexto más fiable para un LLM, RAGFlow es una de las opciones open source que merece atención seria.&lt;/p&gt;
&lt;h2 id=&#34;01-qué-problema-resuelve-ragflow&#34;&gt;01 Qué problema resuelve RAGFlow
&lt;/h2&gt;&lt;p&gt;La mayoría de sistemas RAG tropiezan con tres problemas comunes:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;El parsing de documentos es inestable, especialmente con PDFs, escaneos, tablas, imágenes y layouts complejos.&lt;/li&gt;
&lt;li&gt;La estrategia de chunking es opaca, así que la recuperación puede parecer correcta mientras el contexto real está incompleto.&lt;/li&gt;
&lt;li&gt;Las respuestas no tienen citas confiables, lo que dificulta verificar de dónde viene la respuesta.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;RAGFlow se centra justo en esos problemas. El README del proyecto enfatiza &lt;code&gt;Deep document understanding&lt;/code&gt;, chunking basado en plantillas, visualización de chunks, grounding de citas y recuperación multipath con reranking. En otras palabras, le importa más que una entrada de alta calidad lleve a respuestas de alta calidad que simplemente conectar una base vectorial a una UI de chat.&lt;/p&gt;
&lt;h2 id=&#34;02-funciones-principales&#34;&gt;02 Funciones principales
&lt;/h2&gt;&lt;h3 id=&#34;1-comprensión-profunda-de-documentos&#34;&gt;1. Comprensión profunda de documentos
&lt;/h3&gt;&lt;p&gt;RAGFlow puede extraer conocimiento de datos no estructurados complejos. El README lista formatos como Word, PPT, Excel, TXT, imágenes, documentos escaneados, datos estructurados y páginas web.&lt;/p&gt;
&lt;p&gt;Esto importa mucho para bases de conocimiento empresariales. El material real rara vez es Markdown limpio. Suele mezclar contratos, informes, tablas, PDFs escaneados, manuales de producto, capturas y contenido web. Si el parsing es débil, tanto la recuperación como las respuestas del LLM sufrirán.&lt;/p&gt;
&lt;h3 id=&#34;2-chunking-basado-en-plantillas&#34;&gt;2. Chunking basado en plantillas
&lt;/h3&gt;&lt;p&gt;RAGFlow ofrece chunking basado en plantillas. El valor está en que el chunking no es una caja negra: distintos tipos de documentos pueden usar estrategias distintas.&lt;/p&gt;
&lt;p&gt;Por ejemplo, artículos, papers, tablas, documentos Q&amp;amp;A, explicaciones de imágenes y cláusulas contractuales necesitan límites y granularidad de chunk diferentes. El chunking por plantillas ayuda a reducir frases rotas, pérdida de contexto de tablas y separación entre títulos y cuerpo.&lt;/p&gt;
&lt;h3 id=&#34;3-citas-trazables&#34;&gt;3. Citas trazables
&lt;/h3&gt;&lt;p&gt;RAGFlow enfatiza citas fundamentadas, es decir, respuestas que pueden rastrearse hasta pasajes fuente. También ofrece visualización de chunks, facilitando inspeccionar y ajustar resultados de parsing y chunking.&lt;/p&gt;
&lt;p&gt;Esto es especialmente importante en producción. El Q&amp;amp;A interno empresarial no solo necesita producir algo que parezca correcto; también debe ser verificable. Para políticas, cumplimiento, finanzas, documentación técnica y soporte al cliente, las citas y la trazabilidad son casi obligatorias.&lt;/p&gt;
&lt;h3 id=&#34;4-flujo-rag-automatizado&#34;&gt;4. Flujo RAG automatizado
&lt;/h3&gt;&lt;p&gt;RAGFlow convierte el ciclo de vida RAG en un flujo más completo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Crear una base de conocimiento&lt;/li&gt;
&lt;li&gt;Subir o sincronizar datos&lt;/li&gt;
&lt;li&gt;Parsear documentos&lt;/li&gt;
&lt;li&gt;Revisar y ajustar chunks&lt;/li&gt;
&lt;li&gt;Configurar modelos LLM y embedding&lt;/li&gt;
&lt;li&gt;Ejecutar recuperación multipath y reranking&lt;/li&gt;
&lt;li&gt;Crear asistentes de chat&lt;/li&gt;
&lt;li&gt;Integrar mediante APIs en sistemas de negocio&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Eso lo acerca más a una plataforma RAG que a una librería aislada. Para equipos importan tanto la UI como la API: personas no técnicas pueden mantener la base de conocimiento y los ingenieros pueden integrar la capacidad en sistemas existentes.&lt;/p&gt;
&lt;h3 id=&#34;5-extensiones-de-agent-mcp-y-workflow&#34;&gt;5. Extensiones de Agent, MCP y workflow
&lt;/h3&gt;&lt;p&gt;Las actualizaciones recientes de RAGFlow ya incluyen Agentic workflow, MCP, Agent Memory y componentes de ejecución de código. Eso sugiere que ya no se limita al Q&amp;amp;A tradicional de bases de conocimiento y también se mueve hacia escenarios orientados a agentes.&lt;/p&gt;
&lt;p&gt;Un patrón típico es que un agente use RAGFlow como capa fiable de conocimiento empresarial: recuperar contexto cuando lo necesita, generar respuestas con citas y combinarlo con herramientas o pasos de workflow cuando sea necesario.&lt;/p&gt;
&lt;h2 id=&#34;03-flujo-básico-de-uso&#34;&gt;03 Flujo básico de uso
&lt;/h2&gt;&lt;p&gt;Según la documentación oficial de quickstart, el uso común de RAGFlow puede resumirse en estos pasos.&lt;/p&gt;
&lt;h3 id=&#34;1-preparar-el-entorno&#34;&gt;1. Preparar el entorno
&lt;/h3&gt;&lt;p&gt;Los requisitos básicos listados en el README oficial son:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CPU &amp;gt;= 4 cores&lt;/li&gt;
&lt;li&gt;RAM &amp;gt;= 16 GB&lt;/li&gt;
&lt;li&gt;Disk &amp;gt;= 50 GB&lt;/li&gt;
&lt;li&gt;Docker &amp;gt;= 24.0.0&lt;/li&gt;
&lt;li&gt;Docker Compose &amp;gt;= v2.26.1&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si quieres usar el sandbox para el ejecutor de código, también necesitas &lt;code&gt;gVisor&lt;/code&gt;. Otra nota práctica es que las imágenes Docker oficiales apuntan principalmente a plataformas x86. Para ARM64, la documentación recomienda construir la imagen por cuenta propia.&lt;/p&gt;
&lt;h3 id=&#34;2-clonar-el-proyecto&#34;&gt;2. Clonar el proyecto
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/infiniflow/ragflow.git
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; ragflow/docker
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;3-revisar-vmmax_map_count&#34;&gt;3. Revisar &lt;code&gt;vm.max_map_count&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;El despliegue de RAGFlow depende de componentes como Elasticsearch u OpenSearch, así que en Linux normalmente hay que verificar:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sysctl vm.max_map_count
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si el valor está por debajo de &lt;code&gt;262144&lt;/code&gt;, puedes configurarlo temporalmente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo sysctl -w vm.max_map_count&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;262144&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si quieres que persista tras reiniciar, añádelo a &lt;code&gt;/etc/sysctl.conf&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;4-arrancar-con-docker-compose&#34;&gt;4. Arrancar con Docker Compose
&lt;/h3&gt;&lt;p&gt;Puedes iniciar directamente el modo CPU:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker compose -f docker-compose.yml up -d
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si quieres aceleración GPU para tareas DeepDoc, el README muestra cómo activar &lt;code&gt;DEVICE=gpu&lt;/code&gt; en &lt;code&gt;.env&lt;/code&gt; antes del arranque:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sed -i &lt;span class=&#34;s1&#34;&gt;&amp;#39;1i DEVICE=gpu&amp;#39;&lt;/span&gt; .env
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker compose -f docker-compose.yml up -d
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Luego inspecciona los logs:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker logs -f docker-ragflow-cpu-1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Cuando los servicios estén listos, abre la dirección de la máquina en el navegador. Con la configuración predeterminada suele ser:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://IP_OF_YOUR_MACHINE
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;5-configurar-claves-api-de-modelos&#34;&gt;5. Configurar claves API de modelos
&lt;/h3&gt;&lt;p&gt;RAGFlow necesita configuración de LLM y modelos de embedding. El README menciona elegir la fábrica LLM predeterminada en &lt;code&gt;service_conf.yaml.template&lt;/code&gt; y actualizar el &lt;code&gt;API_KEY&lt;/code&gt; correspondiente.&lt;/p&gt;
&lt;p&gt;En la práctica, necesitas configurar modelos según tu proveedor:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Modelo de chat&lt;/li&gt;
&lt;li&gt;Modelo de embedding&lt;/li&gt;
&lt;li&gt;Modelo de rerank&lt;/li&gt;
&lt;li&gt;Modelo multimodal, si quieres entender imágenes dentro de PDFs o DOCX&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;6-crear-la-base-de-conocimiento-y-subir-documentos&#34;&gt;6. Crear la base de conocimiento y subir documentos
&lt;/h3&gt;&lt;p&gt;Después de arrancar el servicio, el flujo típico es:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Iniciar sesión en la Web UI.&lt;/li&gt;
&lt;li&gt;Crear un dataset o base de conocimiento.&lt;/li&gt;
&lt;li&gt;Subir documentos o configurar una sincronización de fuente de datos.&lt;/li&gt;
&lt;li&gt;Esperar a que termine el parsing.&lt;/li&gt;
&lt;li&gt;Inspeccionar los chunks y ajustarlos si hace falta.&lt;/li&gt;
&lt;li&gt;Crear un asistente de chat y asociar la base de conocimiento.&lt;/li&gt;
&lt;li&gt;Probar calidad de respuesta y fuentes de cita.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si necesitas integrarlo con un sistema de negocio, puedes continuar con la API o SDK de RAGFlow y conectar recuperación y chat a tu propia aplicación.&lt;/p&gt;
&lt;h2 id=&#34;04-escenarios-adecuados&#34;&gt;04 Escenarios adecuados
&lt;/h2&gt;&lt;p&gt;RAGFlow encaja con necesidades como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Q&amp;amp;A de bases de conocimiento internas empresariales&lt;/li&gt;
&lt;li&gt;Manuales de producto, documentación técnica y recuperación de FAQ&lt;/li&gt;
&lt;li&gt;Asistentes de soporte al cliente y preventa&lt;/li&gt;
&lt;li&gt;Q&amp;amp;A trazable sobre contratos, informes y políticas&lt;/li&gt;
&lt;li&gt;Manejo unificado de materiales multiformato&lt;/li&gt;
&lt;li&gt;Equipos que quieren mantenimiento vía UI e integración API&lt;/li&gt;
&lt;li&gt;Sistemas que quieren usar RAG como capa de contexto para agentes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Es especialmente adecuado cuando los formatos documentales son complejos, las citas importan y las personas quieren inspeccionar o intervenir en los resultados de parsing.&lt;/p&gt;
&lt;h2 id=&#34;05-qué-vigilar&#34;&gt;05 Qué vigilar
&lt;/h2&gt;&lt;p&gt;Primero, RAGFlow no es un script ligero. Tiene requisitos reales de infraestructura. La recomendación oficial es al menos 4 cores CPU, 16 GB de RAM y 50 GB de disco. Si solo quieres Q&amp;amp;A sobre una pequeña cantidad de Markdown, una plataforma completa puede ser innecesaria.&lt;/p&gt;
&lt;p&gt;Segundo, la calidad documental sigue importando. RAGFlow puede mejorar parsing y chunking, pero no puede hacer mágicamente fiable material fuente de baja calidad, obsoleto o contradictorio. El gobierno de la base de conocimiento sigue siendo importante antes de producción.&lt;/p&gt;
&lt;p&gt;Tercero, la selección de modelos afecta directamente la calidad. Las elecciones de embedding, rerank, chat y multimodal influyen en recuperación y respuestas. RAGFlow da el flujo, pero el resultado final sigue dependiendo de datos, modelos y ajuste.&lt;/p&gt;
&lt;p&gt;Cuarto, los despliegues en producción deben cuidar permisos y seguridad de datos. Las bases de conocimiento empresariales suelen contener documentos internos, así que el modelo de despliegue, control de acceso, logs, claves API y políticas de datos del proveedor deben diseñarse de antemano.&lt;/p&gt;
&lt;h2 id=&#34;06-conclusión-rápida&#34;&gt;06 Conclusión rápida
&lt;/h2&gt;&lt;p&gt;La fortaleza de RAGFlow es convertir las partes más difíciles de RAG en capacidades de plataforma: parsing de documentos complejos, chunking explicable, grounding de citas, recuperación multipath, reranking, configuración de modelos, Web UI, acceso API y extensiones de agentes.&lt;/p&gt;
&lt;p&gt;Si necesitas una base de conocimiento empresarial verificable y mantenible que pueda conectarse a sistemas de negocio, RAGFlow es más completo que una configuración de &amp;ldquo;base vectorial más chat UI simple&amp;rdquo;. En cambio, si solo necesitas Q&amp;amp;A personal a pequeña escala sobre datos simples, un framework RAG más ligero puede ser más eficiente en recursos.&lt;/p&gt;
&lt;h2 id=&#34;enlaces-relacionados&#34;&gt;Enlaces relacionados
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Proyecto GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/infiniflow/ragflow&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/infiniflow/ragflow&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Documentación oficial: &lt;a class=&#34;link&#34; href=&#34;https://ragflow.io/docs/dev/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://ragflow.io/docs/dev/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Demo online: &lt;a class=&#34;link&#34; href=&#34;https://cloud.ragflow.io&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://cloud.ragflow.io&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Notas del proyecto Firecrawl: APIs de búsqueda web, scraping e interacción para AI Agents</title>
        <link>https://knightli.com/es/2026/04/15/firecrawl-ai-web-data-api/</link>
        <pubDate>Wed, 15 Apr 2026 13:45:03 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/15/firecrawl-ai-web-data-api/</guid>
        <description>&lt;p&gt;&lt;code&gt;Firecrawl&lt;/code&gt; tiene un propósito claro: convertir páginas web en datos que los AI Agents puedan consumir con más facilidad. No es solo un script crawler. Envuelve búsqueda, scraping de una página, crawling de sitios, interacción con páginas, extracción estructurada y flujos de agentes en APIs, para que modelos y sistemas de automatización gasten menos esfuerzo lidiando con ruido web.&lt;/p&gt;
&lt;h2 id=&#34;01-qué-problema-resuelve&#34;&gt;01 Qué problema resuelve
&lt;/h2&gt;&lt;p&gt;Muchas aplicaciones AI necesitan leer páginas web, pero los sitios reales son desordenados: contenido renderizado con JavaScript, pop-ups, paginación, estado de login, defensas anti-bot, archivos PDF o DOCX, y mucha navegación, anuncios, scripts y estilos que no tienen que ver con el contenido principal.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Firecrawl&lt;/code&gt; intenta resolver este problema de capa intermedia. La aplicación pide datos de una página, un sitio o un tema; Firecrawl se encarga de abrir, scrapear, limpiar y devolver salida en formatos más fáciles de usar para LLMs, como Markdown, HTML, screenshots o JSON.&lt;/p&gt;
&lt;p&gt;El valor de este tipo de herramienta no está solo en si puede solicitar una URL. La pregunta real es si puede convertir páginas complejas en datos utilizables de forma fiable. Para RAG, búsqueda AI, investigación competitiva, recolección automatizada de información y monitoreo de contenido web, esta capa suele convertirse en la fontanería incómoda del sistema.&lt;/p&gt;
&lt;h2 id=&#34;02-funciones-principales&#34;&gt;02 Funciones principales
&lt;/h2&gt;&lt;p&gt;El README de Firecrawl agrupa sus capacidades en varias áreas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Search&lt;/code&gt;: busca en la web y devuelve contenido completo de páginas desde los resultados.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Scrape&lt;/code&gt;: convierte una URL individual en Markdown, HTML, screenshots o JSON estructurado.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Interact&lt;/code&gt;: scrapea una página y luego usa prompts o código para hacer clic, scroll, escribir, esperar y realizar otras acciones.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Agent&lt;/code&gt;: describe lo que quieres y deja que el agente busque, navegue y devuelva el resultado.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Crawl&lt;/code&gt;: scrapea múltiples páginas dentro de un sitio.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Map&lt;/code&gt;: descubre rápidamente URLs de un sitio web.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Batch Scrape&lt;/code&gt;: scrapea grandes lotes de URLs de forma asíncrona.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A primera vista parece un servicio de scraping. Pero como conjunto completo de funciones, está más cerca de un punto de entrada de datos para aplicaciones AI: search descubre fuentes, scraping limpia contenido, interaction maneja páginas dinámicas y Agent empuja toda la tarea de &amp;ldquo;encontrar información&amp;rdquo; un paso más hacia la automatización.&lt;/p&gt;
&lt;h2 id=&#34;03-por-qué-encaja-con-ai-agents&#34;&gt;03 Por qué encaja con AI Agents
&lt;/h2&gt;&lt;p&gt;Los crawlers tradicionales suelen asumir que ya conoces la URL y entiendes la estructura de la página. Los flujos con agentes a menudo son diferentes. Un usuario puede pedir simplemente: &amp;ldquo;Encuentra las diferencias entre los últimos planes de precios en la página de precios de una empresa&amp;rdquo;. Entonces el sistema tiene que buscar, abrir páginas, comparar contenido y devolver fuentes.&lt;/p&gt;
&lt;p&gt;El endpoint &lt;code&gt;Agent&lt;/code&gt; de Firecrawl está diseñado para este tipo de tarea. Puede aceptar solo un prompt en lenguaje natural, o puede restringirse a URLs concretas. Si se necesitan resultados estructurados, también puede trabajar con un schema para devolver campos fijos.&lt;/p&gt;
&lt;p&gt;Esto da dos beneficios a la capa de aplicación:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;No necesitas escribir un parser separado para cada sitio.&lt;/li&gt;
&lt;li&gt;El resultado devuelto es más fácil de enviar a un LLM, una base de datos o un flujo de automatización posterior.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Por supuesto, esto no significa que reemplace todos los crawlers personalizados. Para tareas muy acotadas, de alta frecuencia y gran escala con campos muy estables, escribir lógica de parsing dedicada puede seguir siendo más barato y más fácil de controlar. Firecrawl encaja mejor cuando las fuentes están dispersas, las estructuras cambian a menudo y quieres conectar datos web a un flujo AI rápidamente.&lt;/p&gt;
&lt;h2 id=&#34;04-mcp-cli-e-integraciones&#34;&gt;04 MCP, CLI e integraciones
&lt;/h2&gt;&lt;p&gt;Firecrawl también se mueve claramente hacia el ecosistema de herramientas para agentes. El README ofrece configuración de MCP Server, junto con comandos de inicialización Skill/CLI para agentes de programación AI.&lt;/p&gt;
&lt;p&gt;Esto significa que no está pensado solo para llamadas API backend. También quiere conectarse directamente a Claude Code, OpenCode, Antigravity, clientes MCP y flujos similares. Para personas que piden con frecuencia a agentes investigar, scrapear y organizar contenido web, esta integración es más ligera que escribir llamadas API a mano.&lt;/p&gt;
&lt;p&gt;También enumera integraciones con plataformas como Zapier, n8n y Lovable. Esa dirección es práctica: los datos web no siempre van a código. Pueden fluir a tablas de automatización, workflows low-code, sistemas de contenido o bases de conocimiento internas.&lt;/p&gt;
&lt;h2 id=&#34;05-open-source-self-hosting-y-licencias&#34;&gt;05 Open source, self-hosting y licencias
&lt;/h2&gt;&lt;p&gt;Firecrawl es open source. El repositorio principal usa principalmente la licencia &lt;code&gt;AGPL-3.0&lt;/code&gt;; el README también señala que los SDKs y algunos componentes UI usan &lt;code&gt;MIT&lt;/code&gt;, con detalles según los archivos LICENSE de cada directorio.&lt;/p&gt;
&lt;p&gt;Esto importa. Si solo usas el servicio cloud, las preocupaciones principales son coste de API, fiabilidad y límites de cumplimiento. Si planeas self-hostearlo y ofrecer un servicio a otros, las obligaciones de &lt;code&gt;AGPL-3.0&lt;/code&gt; necesitan revisión cuidadosa.&lt;/p&gt;
&lt;p&gt;El README también recuerda a los usuarios que respeten políticas de sitios web, políticas de privacidad y términos de uso, y dice que Firecrawl respeta &lt;code&gt;robots.txt&lt;/code&gt; por defecto. Cuanto más potente se vuelve este tipo de herramienta, más importante es diseñar límites de cumplimiento y scraping dentro del sistema desde el inicio, no parchearlos después del lanzamiento.&lt;/p&gt;
&lt;h2 id=&#34;06-casos-de-uso-adecuados&#34;&gt;06 Casos de uso adecuados
&lt;/h2&gt;&lt;p&gt;Consideraría Firecrawl primero en estos escenarios:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Scrapear contenido web para un sistema RAG y querer Markdown limpio directamente.&lt;/li&gt;
&lt;li&gt;Construir asistentes de búsqueda o investigación AI que necesiten leer páginas completas tras buscar.&lt;/li&gt;
&lt;li&gt;Scrapear sitios con mucho JavaScript sin mantener tú mismo un clúster de navegadores.&lt;/li&gt;
&lt;li&gt;Monitorear información pública como competidores, precios, documentación, noticias y páginas de empleo.&lt;/li&gt;
&lt;li&gt;Dar a clientes MCP o agentes de programación AI capacidad de lectura web en tiempo real.&lt;/li&gt;
&lt;li&gt;Validar rápidamente un producto de datos web antes de construir infraestructura crawler.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Los casos menos adecuados también son claros:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El sitio objetivo tiene muy pocos campos, estructura estable y puede manejarse con un script simple.&lt;/li&gt;
&lt;li&gt;El volumen de scraping es enorme y la sensibilidad al coste importa más que el coste de desarrollo y mantenimiento.&lt;/li&gt;
&lt;li&gt;El negocio necesita control muy fino sobre fuentes, estrategia de reintentos, comportamiento anti-bot y trazas de auditoría.&lt;/li&gt;
&lt;li&gt;Requisitos de licencia o cumplimiento no permiten componentes AGPL o servicios cloud externos.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;07-conclusión-rápida&#34;&gt;07 Conclusión rápida
&lt;/h2&gt;&lt;p&gt;El valor central de Firecrawl es productizar el camino desordenado de &amp;ldquo;página web&amp;rdquo; a &amp;ldquo;datos utilizables por AI&amp;rdquo;. Pone búsqueda, scraping, limpieza, interacción, procesamiento por lotes e investigación estilo agente en una sola interfaz, lo cual es cómodo para desarrolladores de aplicaciones AI.&lt;/p&gt;
&lt;p&gt;Si tu proyecto necesita a menudo que los modelos lean páginas web reales, especialmente cuando las fuentes están dispersas, las estructuras son inestables y MCP o flujos de agentes están involucrados, Firecrawl merece estar en tu caja de herramientas. Si la tarea es solo recolección masiva de bajo coste desde sitios fijos, un crawler tradicional o un parser dedicado puede seguir siendo la mejor opción.&lt;/p&gt;
&lt;h2 id=&#34;enlaces-relacionados&#34;&gt;Enlaces relacionados
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Proyecto GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/firecrawl/firecrawl&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/firecrawl/firecrawl&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Grabación de video en Playwright CLI: grabación, capítulos, overlays y compromisos de depuración</title>
        <link>https://knightli.com/es/2026/04/15/playwright-cli-video-recording/</link>
        <pubDate>Wed, 15 Apr 2026 08:22:45 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/15/playwright-cli-video-recording/</guid>
        <description>&lt;p&gt;Si quieres grabar sesiones de automatización de navegador como video para depuración, documentación o prueba de trabajo, &lt;code&gt;Playwright CLI&lt;/code&gt; ya ofrece un flujo bastante directo. Produce video WebM usando el códec VP8/VP9.&lt;/p&gt;
&lt;p&gt;Este artículo sigue la referencia oficial &lt;code&gt;video-recording&lt;/code&gt; y se centra en las partes más importantes en la práctica: flujo básico de grabación, marcadores de capítulo, grabación completa de hero scripts, Overlay API y la diferencia entre video y tracing. Se conservan las líneas de comando, snippets de código y detalles de parámetros de la referencia.&lt;/p&gt;
&lt;h2 id=&#34;01-flujo-básico-de-grabación&#34;&gt;01 Flujo básico de grabación
&lt;/h2&gt;&lt;p&gt;El patrón básico es simple: abrir el navegador, iniciar grabación, realizar acciones y luego detener y guardar.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Open browser first&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli open
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Start recording&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli video-start demo.webm
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Add a chapter marker for section transitions&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli video-chapter &lt;span class=&#34;s2&#34;&gt;&amp;#34;Getting Started&amp;#34;&lt;/span&gt; --description&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Opening the homepage&amp;#34;&lt;/span&gt; --duration&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;2000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Navigate and perform actions&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli goto https://example.com
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli snapshot
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli click e1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Add another chapter&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli video-chapter &lt;span class=&#34;s2&#34;&gt;&amp;#34;Filling Form&amp;#34;&lt;/span&gt; --description&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Entering test data&amp;#34;&lt;/span&gt; --duration&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;2000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli fill e2 &lt;span class=&#34;s2&#34;&gt;&amp;#34;test input&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Stop and save&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli video-stop
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Estos comandos ya cubren el flujo de grabación más común. &lt;code&gt;video-chapter&lt;/code&gt; es útil para insertar tarjetas de capítulo entre etapas, de modo que el video final sea más fácil de seguir.&lt;/p&gt;
&lt;h2 id=&#34;02-buenas-prácticas&#34;&gt;02 Buenas prácticas
&lt;/h2&gt;&lt;h3 id=&#34;1-usar-nombres-de-archivo-descriptivos&#34;&gt;1. Usar nombres de archivo descriptivos
&lt;/h3&gt;&lt;p&gt;Si el video es para otras personas o para revisarlo más tarde, el nombre del archivo debería incluir suficiente contexto para entenderlo de un vistazo.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Include context in filename&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli video-start recordings/login-flow-2024-01-15.webm
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli video-start recordings/checkout-test-run-42.webm
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;2-grabar-hero-scripts-completos&#34;&gt;2. Grabar hero scripts completos
&lt;/h3&gt;&lt;p&gt;La recomendación oficial es que, cuando un video sea para un usuario o sirva como prueba de trabajo, lo mejor es convertir el escenario en un snippet de código y ejecutarlo con &lt;code&gt;run-code&lt;/code&gt;. Eso da mejor control sobre ritmo, pausas y anotaciones en el video. La referencia también señala que Playwright ahora incluye APIs diseñadas específicamente para este tipo de flujo de grabación.&lt;/p&gt;
&lt;p&gt;El proceso sugerido es:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Primero realiza el escenario con la CLI y anota todos los locators y acciones. Necesitarás esos locators más tarde si quieres sus bounding boxes para overlays de resaltado.&lt;/li&gt;
&lt;li&gt;Crea un archivo de script dedicado para el video y escríbelo con el estilo mostrado abajo. Usa &lt;code&gt;pressSequentially&lt;/code&gt; con &lt;code&gt;delay&lt;/code&gt; para una escritura más suave, y añade pausas donde resulten naturales.&lt;/li&gt;
&lt;li&gt;Usa &lt;code&gt;playwright-cli run-code --filename your-script.js&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Importante: los overlays son &lt;code&gt;pointer-events: none&lt;/code&gt;, así que no interfieren con las interacciones de la página. Puedes mantener overlays adhesivos visibles mientras haces clic, rellenas campos o realizas cualquier acción.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;42
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;43
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;44
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;45
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;46
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;47
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;48
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;49
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;50
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;51
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;52
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;53
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;54
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;55
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;56
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;57
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;58
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;59
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;60
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;async&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;page&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;page&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;screencast&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;start&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;({&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;video.webm&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;size&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;width&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1280&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;height&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;800&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;page&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;kr&#34;&gt;goto&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;https://demo.playwright.dev/todomvc&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;c1&#34;&gt;// Show a chapter card - blurs the page and shows a dialog.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;c1&#34;&gt;// Blocks until duration expires, then auto-removes.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;c1&#34;&gt;// Use this for simple use cases, but always feel free to hand-craft your own beautiful
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;c1&#34;&gt;// overlay via await page.screencast.showOverlay().
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;page&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;screencast&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;showChapter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;Adding Todo Items&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;description&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;We will add several items to the todo list.&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;duration&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;2000&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;c1&#34;&gt;// Perform action
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;page&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;getByRole&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;textbox&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;What needs to be done?&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}).&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;pressSequentially&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;Walk the dog&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;delay&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;60&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;page&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;getByRole&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;textbox&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;What needs to be done?&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}).&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;press&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;Enter&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;page&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;waitForTimeout&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1000&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;c1&#34;&gt;// Show next chapter
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;page&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;screencast&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;showChapter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;Verifying Results&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;description&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;Checking the item appeared in the list.&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;duration&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;2000&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;c1&#34;&gt;// Add a sticky annotation that stays while you perform actions.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;c1&#34;&gt;// Overlays are pointer-events: none, so they won&amp;#39;t block clicks.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;annotation&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;page&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;screencast&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;showOverlay&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;`
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;    &amp;lt;div style=&amp;#34;position: absolute; top: 8px; right: 8px;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;      padding: 6px 12px; background: rgba(0,0,0,0.7);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;      border-radius: 8px; font-size: 13px; color: white;&amp;#34;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;      Item added successfully
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;    &amp;lt;/div&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;  `&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;c1&#34;&gt;// Perform more actions while the annotation is visible
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;page&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;getByRole&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;textbox&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;What needs to be done?&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}).&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;pressSequentially&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;Buy groceries&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;delay&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;60&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;page&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;getByRole&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;textbox&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;What needs to be done?&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}).&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;press&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;Enter&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;page&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;waitForTimeout&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1500&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;c1&#34;&gt;// Remove the annotation when done
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;annotation&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;dispose&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;c1&#34;&gt;// You can also highlight relevant locators and provide contextual annotations.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;bounds&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;page&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;getByText&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;Walk the dog&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;).&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;boundingBox&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;page&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;screencast&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;showOverlay&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;`
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;    &amp;lt;div style=&amp;#34;position: absolute;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;      top: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;bounds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;px;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;      left: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;bounds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;px;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;      width: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;bounds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;width&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;px;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;      height: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;bounds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;height&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;px;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;      border: 1px solid red;&amp;#34;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;    &amp;lt;/div&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;    &amp;lt;div style=&amp;#34;position: absolute;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;      top: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;bounds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;bounds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;height&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;px;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;      left: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;bounds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;x&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;bounds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;width&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;px;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;      transform: translateX(-50%);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;      padding: 6px;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;      background: #808080;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;      border-radius: 10px;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;      font-size: 14px;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;      color: white;&amp;#34;&amp;gt;Check it out, it is right above this text
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;    &amp;lt;/div&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;  `&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;duration&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;2000&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;page&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;screencast&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;stop&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El valor de este script no está solo en que graba el flujo, sino en que vuelve el video más fácil de entender: las tarjetas de capítulo gestionan transiciones, &lt;code&gt;pressSequentially&lt;/code&gt; hace que la escritura se vea natural y &lt;code&gt;showOverlay&lt;/code&gt; añade explicación, resaltado y contexto.&lt;/p&gt;
&lt;p&gt;La referencia cierra esta sección con un recordatorio breve: abraza la creatividad; los overlays son potentes.&lt;/p&gt;
&lt;h2 id=&#34;03-resumen-de-overlay-api&#34;&gt;03 Resumen de Overlay API
&lt;/h2&gt;&lt;p&gt;Al grabar video, la Overlay API es especialmente útil para transiciones de sección, llamadas locales y anotaciones adhesivas. El resumen oficial es:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Method&lt;/th&gt;
          &lt;th&gt;Use Case&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;page.screencast.showChapter(title, { description?, duration?, styleSheet? })&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Tarjeta de capítulo a pantalla completa con fondo desenfocado, ideal para transiciones de sección&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;page.screencast.showOverlay(html, { duration? })&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Overlay HTML personalizado, útil para callouts, etiquetas y resaltados&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;disposable.dispose()&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Elimina un overlay adhesivo añadido sin duración&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;page.screencast.hideOverlays()&lt;/code&gt; / &lt;code&gt;page.screencast.showOverlays()&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Oculta o muestra temporalmente todos los overlays&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Si tu objetivo es convertir la automatización en un video cómodo de ver, este conjunto de APIs es una de las partes más valiosas que aprender primero.&lt;/p&gt;
&lt;h2 id=&#34;04-tracing-vs-video&#34;&gt;04 Tracing vs video
&lt;/h2&gt;&lt;p&gt;La documentación oficial deja muy clara la diferencia entre ambos:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Feature&lt;/th&gt;
          &lt;th&gt;Video&lt;/th&gt;
          &lt;th&gt;Tracing&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Output&lt;/td&gt;
          &lt;td&gt;WebM file&lt;/td&gt;
          &lt;td&gt;Trace file (viewable in Trace Viewer)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Shows&lt;/td&gt;
          &lt;td&gt;Visual recording&lt;/td&gt;
          &lt;td&gt;DOM snapshots, network, console, actions&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Use case&lt;/td&gt;
          &lt;td&gt;Demos, documentation&lt;/td&gt;
          &lt;td&gt;Debugging, analysis&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Size&lt;/td&gt;
          &lt;td&gt;Larger&lt;/td&gt;
          &lt;td&gt;Smaller&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Una forma simple de pensarlo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;video&lt;/code&gt; es mejor para demos, entregas y revisar lo que vería un usuario&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tracing&lt;/code&gt; es mejor para depurar, inspeccionar detalles de acciones y analizar contexto de ejecución&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No se reemplazan entre sí. Cada uno sirve a un propósito diferente.&lt;/p&gt;
&lt;h2 id=&#34;05-limitaciones&#34;&gt;05 Limitaciones
&lt;/h2&gt;&lt;p&gt;La referencia también señala dos limitaciones prácticas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La grabación añade una ligera sobrecarga a la automatización&lt;/li&gt;
&lt;li&gt;Las grabaciones largas pueden consumir bastante espacio en disco&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Así que, aunque la grabación de video es muy útil, añade cierta sobrecarga de runtime y las grabaciones largas pueden crecer mucho en disco.&lt;/p&gt;
&lt;h2 id=&#34;06-resumen-rápido&#34;&gt;06 Resumen rápido
&lt;/h2&gt;&lt;p&gt;Si solo quieres lo esencial, recuerda estos puntos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;video-start&lt;/code&gt; / &lt;code&gt;video-stop&lt;/code&gt; son los comandos principales para grabar&lt;/li&gt;
&lt;li&gt;&lt;code&gt;video-chapter&lt;/code&gt; añade transiciones de sección y facilita seguir las demos&lt;/li&gt;
&lt;li&gt;Los escenarios de grabación más avanzados se escriben mejor como scripts y se ejecutan con &lt;code&gt;run-code&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;showOverlay&lt;/code&gt; y &lt;code&gt;showChapter&lt;/code&gt; pueden mejorar mucho la legibilidad del video&lt;/li&gt;
&lt;li&gt;&lt;code&gt;video&lt;/code&gt; es mejor para demos, mientras &lt;code&gt;tracing&lt;/code&gt; es mejor para depuración&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si tu flujo ya incluye demos de automatización, evidencia de aceptación o grabaciones de prueba de trabajo, &lt;code&gt;video recording&lt;/code&gt; es una parte de &lt;code&gt;Playwright CLI&lt;/code&gt; que vale mucho la pena añadir.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Referencia video-recording de Playwright CLI: &lt;a class=&#34;link&#34; href=&#34;https://github.com/microsoft/playwright-cli/blob/main/skills/playwright-cli/references/video-recording.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/microsoft/playwright-cli/blob/main/skills/playwright-cli/references/video-recording.md&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Página principal de Playwright CLI: &lt;a class=&#34;link&#34; href=&#34;https://github.com/microsoft/playwright-cli&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/microsoft/playwright-cli&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Gestión de sesiones en Playwright CLI: múltiples sesiones de navegador, aislamiento, persistencia y limpieza</title>
        <link>https://knightli.com/es/2026/04/15/playwright-cli-session-management/</link>
        <pubDate>Wed, 15 Apr 2026 08:15:12 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/15/playwright-cli-session-management/</guid>
        <description>&lt;p&gt;Si usas &lt;code&gt;Playwright CLI&lt;/code&gt; para automatización, pronto aparece una pregunta práctica: ¿puedes abrir varias sesiones de navegador al mismo tiempo sin que interfieran entre sí? La respuesta es sí, y &lt;code&gt;Playwright CLI&lt;/code&gt; ya hace que este mecanismo sea bastante directo.&lt;/p&gt;
&lt;p&gt;Siguiendo la referencia oficial &lt;code&gt;session-management&lt;/code&gt;, este artículo se centra en sus piezas más prácticas: sesiones nombradas, aislamiento de sesiones, perfiles persistentes, patrones concurrentes y comandos comunes de limpieza. Se conservan las líneas de comando y las explicaciones de bloques de comandos de la referencia.&lt;/p&gt;
&lt;h2 id=&#34;01-sesiones-de-navegador-nombradas&#34;&gt;01 Sesiones de navegador nombradas
&lt;/h2&gt;&lt;p&gt;La recomendación oficial es usar el parámetro &lt;code&gt;-s&lt;/code&gt; para aislar diferentes contextos de navegador:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Browser 1: Authentication flow&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;auth open https://app.example.com/login
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Browser 2: Public browsing (separate cookies, storage)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;public open https://example.com
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Commands are isolated by browser session&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;auth fill e1 &lt;span class=&#34;s2&#34;&gt;&amp;#34;user@example.com&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;public snapshot
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El punto clave es que distintos nombres de &lt;code&gt;session&lt;/code&gt; se asignan a distintos contextos de navegador. Puedes usar &lt;code&gt;auth&lt;/code&gt; para el flujo de login y &lt;code&gt;public&lt;/code&gt; para navegación anónima, y no compartirán cookies ni estado local.&lt;/p&gt;
&lt;h2 id=&#34;02-qué-separa-el-aislamiento-de-sesiones&#34;&gt;02 Qué separa el aislamiento de sesiones
&lt;/h2&gt;&lt;p&gt;Cada sesión de navegador mantiene de forma independiente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cookies&lt;/li&gt;
&lt;li&gt;LocalStorage / SessionStorage&lt;/li&gt;
&lt;li&gt;IndexedDB&lt;/li&gt;
&lt;li&gt;Caché&lt;/li&gt;
&lt;li&gt;Historial de navegación&lt;/li&gt;
&lt;li&gt;Pestañas abiertas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Eso significa que si inicias sesión en un sitio dentro de la sesión &lt;code&gt;auth&lt;/code&gt;, no afectará automáticamente a la sesión &lt;code&gt;public&lt;/code&gt;. Esto es especialmente importante para pruebas multi-cuenta, verificación de estado de login y comparaciones entre navegación anónima y autenticada.&lt;/p&gt;
&lt;h2 id=&#34;03-comandos-relacionados-con-sesiones-de-navegador&#34;&gt;03 Comandos relacionados con sesiones de navegador
&lt;/h2&gt;&lt;p&gt;La documentación oficial agrupa los comandos de gestión de sesiones más usados:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# List all browser sessions&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli list
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Stop a browser session (close the browser)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli close                 &lt;span class=&#34;c1&#34;&gt;# stop the default browser&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;mysession close   &lt;span class=&#34;c1&#34;&gt;# stop a named browser&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Stop all browser sessions&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli close-all
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Forcefully kill all daemon processes (for stale/zombie processes)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli kill-all
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Delete browser session user data (profile directory)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli delete-data              &lt;span class=&#34;c1&#34;&gt;# delete default browser data&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;mysession delete-data &lt;span class=&#34;c1&#34;&gt;# delete named browser data&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Puedes pensarlos como tres tipos de operaciones:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;list&lt;/code&gt;: ver qué sesiones existen actualmente&lt;/li&gt;
&lt;li&gt;&lt;code&gt;close&lt;/code&gt; / &lt;code&gt;close-all&lt;/code&gt; / &lt;code&gt;kill-all&lt;/code&gt;: detener sesiones o limpiar procesos de navegador atascados&lt;/li&gt;
&lt;li&gt;&lt;code&gt;delete-data&lt;/code&gt;: eliminar el directorio de datos de usuario de una sesión concreta&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si solo quieres cerrar un navegador, &lt;code&gt;close&lt;/code&gt; suele ser la primera opción. Si ya quedaron procesos residuales, &lt;code&gt;kill-all&lt;/code&gt; encaja mejor.&lt;/p&gt;
&lt;h2 id=&#34;04-definir-una-sesión-predeterminada-con-variable-de-entorno&#34;&gt;04 Definir una sesión predeterminada con variable de entorno
&lt;/h2&gt;&lt;p&gt;Si no quieres repetir &lt;code&gt;-s=mysession&lt;/code&gt; en cada comando, la documentación oficial también ofrece un enfoque con variable de entorno:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;PLAYWRIGHT_CLI_SESSION&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;mysession&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli open example.com  &lt;span class=&#34;c1&#34;&gt;# Uses &amp;#34;mysession&amp;#34; automatically&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Después de eso, cuando no especifiques &lt;code&gt;-s&lt;/code&gt;, el comando usará &lt;code&gt;mysession&lt;/code&gt; como sesión de navegador predeterminada.&lt;/p&gt;
&lt;h2 id=&#34;05-patrón-común-scraping-concurrente&#34;&gt;05 Patrón común: scraping concurrente
&lt;/h2&gt;&lt;p&gt;La referencia da un ejemplo muy típico de scraping concurrente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Scrape multiple sites concurrently&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Start all browsers&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;site1 open https://site1.com &lt;span class=&#34;p&#34;&gt;&amp;amp;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;site2 open https://site2.com &lt;span class=&#34;p&#34;&gt;&amp;amp;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;site3 open https://site3.com &lt;span class=&#34;p&#34;&gt;&amp;amp;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;wait&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Take snapshots from each&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;site1 snapshot
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;site2 snapshot
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;site3 snapshot
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Cleanup&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli close-all
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Este patrón funciona bien cuando quieres abrir varios sitios a la vez, capturar el estado de cada página y luego limpiarlo todo junto. Como cada sitio corre en una sesión independiente, no contaminan el estado local de los demás.&lt;/p&gt;
&lt;h2 id=&#34;06-patrón-común-sesiones-de-ab-testing&#34;&gt;06 Patrón común: sesiones de A/B testing
&lt;/h2&gt;&lt;p&gt;Otro escenario común es comparar distintas variantes de experimento al mismo tiempo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Test different user experiences&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;variant-a open &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://app.com?variant=a&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;variant-b open &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://app.com?variant=b&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Compare&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;variant-a screenshot
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;variant-b screenshot
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Este estilo es muy útil para comparaciones A/B de páginas porque las dos variantes se ejecutan en sesiones separadas, haciendo más fácil gestionar capturas y comprobaciones de estado de forma independiente.&lt;/p&gt;
&lt;h2 id=&#34;07-persistencia-de-perfiles-de-navegador&#34;&gt;07 Persistencia de perfiles de navegador
&lt;/h2&gt;&lt;p&gt;La documentación oficial señala específicamente que, por defecto, los perfiles de navegador se almacenan solo en memoria.&lt;/p&gt;
&lt;p&gt;Si quieres persistir un perfil en disco, añade &lt;code&gt;--persistent&lt;/code&gt; al ejecutar &lt;code&gt;open&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Use persistent profile (auto-generated location)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli open https://example.com --persistent
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Use persistent profile with custom directory&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli open https://example.com --profile&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;/path/to/profile
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Esta capacidad es útil cuando necesitas reutilizar estado de login, caché local o un entorno de depuración con extensiones durante más tiempo. Al depurar repetidamente el mismo sitio, un perfil persistente suele ser mucho más eficiente que empezar desde cero cada vez.&lt;/p&gt;
&lt;h2 id=&#34;08-la-sesión-de-navegador-predeterminada&#34;&gt;08 La sesión de navegador predeterminada
&lt;/h2&gt;&lt;p&gt;Si no se proporciona &lt;code&gt;-s&lt;/code&gt; explícitamente, el comando usa la sesión de navegador predeterminada:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# These use the same default browser session&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli open https://example.com
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli snapshot
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli close  &lt;span class=&#34;c1&#34;&gt;# Stops default browser&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;En otras palabras, los comandos sin &lt;code&gt;-s&lt;/code&gt; se ejecutan de forma continua dentro de la misma sesión predeterminada.&lt;/p&gt;
&lt;h2 id=&#34;09-configuración-de-arranque-relacionada-con-sesiones&#34;&gt;09 Configuración de arranque relacionada con sesiones
&lt;/h2&gt;&lt;p&gt;Además del nombre de sesión, la documentación oficial muestra varios patrones comunes de configuración de arranque:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Open with config file&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli open https://example.com --config&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;.playwright/my-cli.json
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Open with specific browser&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli open https://example.com --browser&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;firefox
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Open in headed mode&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli open https://example.com --headed
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Open with persistent profile&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli open https://example.com --persistent
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Estos parámetros pueden combinarse con la gestión de sesiones. Por ejemplo, puedes hacer que una sesión nombrada siempre use &lt;code&gt;firefox&lt;/code&gt;, o que una sesión concreta arranque siempre en modo &lt;code&gt;headed&lt;/code&gt; para inspección manual más cómoda.&lt;/p&gt;
&lt;h2 id=&#34;10-buenas-prácticas-de-la-documentación-oficial&#34;&gt;10 Buenas prácticas de la documentación oficial
&lt;/h2&gt;&lt;p&gt;La referencia enumera tres buenas prácticas.&lt;/p&gt;
&lt;h3 id=&#34;1-usar-nombres-de-sesión-significativos&#34;&gt;1. Usar nombres de sesión significativos
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# GOOD: Clear purpose&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;github-auth open https://github.com
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;docs-scrape open https://docs.example.com
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# AVOID: Generic names&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;s1 open https://github.com
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Los nombres de sesión deberían comunicar directamente su propósito. Nombres como &lt;code&gt;github-auth&lt;/code&gt; y &lt;code&gt;docs-scrape&lt;/code&gt; hacen mucho más claro el mantenimiento posterior de scripts.&lt;/p&gt;
&lt;h3 id=&#34;2-limpiar-puntualmente-después-de-usar&#34;&gt;2. Limpiar puntualmente después de usar
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Stop browsers when done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;auth close
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;scrape close
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Or stop all at once&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli close-all
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# If browsers become unresponsive or zombie processes remain&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli kill-all
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si no cierras el navegador al terminar una tarea, la sesión y los procesos en segundo plano permanecen. Puede no parecer grave al principio, pero cuando las tareas se acumulan, el entorno se vuelve desordenado rápidamente.&lt;/p&gt;
&lt;h3 id=&#34;3-eliminar-datos-de-navegador-obsoletos&#34;&gt;3. Eliminar datos de navegador obsoletos
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Remove old browser data to free disk space&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;oldsession delete-data
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Cuando algunas sesiones antiguas ya no hacen falta, borrar sus directorios de datos ahorra espacio y también ayuda a evitar reutilizar accidentalmente estado obsoleto.&lt;/p&gt;
&lt;h2 id=&#34;11-resumen-rápido&#34;&gt;11 Resumen rápido
&lt;/h2&gt;&lt;p&gt;Si solo quieres lo esencial, recuerda estos puntos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-s=&amp;lt;name&amp;gt;&lt;/code&gt; crea y usa una sesión de navegador independiente&lt;/li&gt;
&lt;li&gt;Distintas sesiones aíslan cookies, distintos tipos de storage, caché, historial y pestañas&lt;/li&gt;
&lt;li&gt;&lt;code&gt;close-all&lt;/code&gt; sirve para cierre unificado, mientras &lt;code&gt;kill-all&lt;/code&gt; ayuda a limpiar procesos anormales&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--persistent&lt;/code&gt; escribe el perfil en disco y es útil para reutilizar estado a largo plazo&lt;/li&gt;
&lt;li&gt;Los nombres de sesión deberían ser significativos, y los datos antiguos deberían limpiarse regularmente&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si tu flujo ya incluye reutilización de estados de login, trabajo paralelo multi-cuenta, comparaciones A/B o scraping por lotes, entonces &lt;code&gt;session management&lt;/code&gt; es una de las partes de &lt;code&gt;Playwright CLI&lt;/code&gt; que más vale la pena aprender primero.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Referencia session-management de Playwright CLI: &lt;a class=&#34;link&#34; href=&#34;https://github.com/microsoft/playwright-cli/blob/main/skills/playwright-cli/references/session-management.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/microsoft/playwright-cli/blob/main/skills/playwright-cli/references/session-management.md&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Página principal de Playwright CLI: &lt;a class=&#34;link&#34; href=&#34;https://github.com/microsoft/playwright-cli&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/microsoft/playwright-cli&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Storage state en Playwright CLI: guardar sesiones de login, leer cookies y local storage</title>
        <link>https://knightli.com/es/2026/04/14/playwright-cli-storage-state-commands/</link>
        <pubDate>Tue, 14 Apr 2026 22:19:55 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/14/playwright-cli-storage-state-commands/</guid>
        <description>&lt;p&gt;Si usas &lt;code&gt;Playwright CLI&lt;/code&gt; para automatización de navegador, &lt;code&gt;storage state&lt;/code&gt; es una de las funciones más útiles. Su tarea es simple: guardar la sesión de login actual y el estado local del navegador para reutilizarlos después en lugar de iniciar sesión cada vez.&lt;/p&gt;
&lt;h2 id=&#34;01-guardar-el-storage-state-actual&#34;&gt;01 Guardar el storage state actual
&lt;/h2&gt;&lt;p&gt;El flujo más común es iniciar sesión una vez y luego exportar el estado actual a un archivo.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli storage-state save auth.json
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Este comando guarda el estado del contexto de navegador actual en &lt;code&gt;auth.json&lt;/code&gt;. Si quieres reutilizar una sesión iniciada más tarde, este suele ser el primer paso.&lt;/p&gt;
&lt;h2 id=&#34;02-cargar-un-storage-state-existente&#34;&gt;02 Cargar un storage state existente
&lt;/h2&gt;&lt;p&gt;Cuando ya tienes un archivo de estado, puedes cargarlo directamente al arrancar.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli --storage-state auth.json
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Inicia el contexto de navegador con el estado guardado en &lt;code&gt;auth.json&lt;/code&gt;. El propósito habitual es evitar logins repetidos y entrar directamente en un entorno autenticado.&lt;/p&gt;
&lt;h2 id=&#34;03-ver-cookies-actuales&#34;&gt;03 Ver cookies actuales
&lt;/h2&gt;&lt;p&gt;Si solo quieres revisar qué cookies existen en la sesión actual, puedes inspeccionarlas directamente.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli cookies
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Este comando lista las cookies del contexto actual. Es útil para comprobar si existe el estado de login o si las cookies se escribieron correctamente.&lt;/p&gt;
&lt;h2 id=&#34;04-configurar-cookies&#34;&gt;04 Configurar cookies
&lt;/h2&gt;&lt;p&gt;Si ya tienes datos de cookies, también puedes inyectarlos directamente.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli cookies &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;[{&amp;#34;name&amp;#34;:&amp;#34;session&amp;#34;,&amp;#34;value&amp;#34;:&amp;#34;abc&amp;#34;,&amp;#34;domain&amp;#34;:&amp;#34;example.com&amp;#34;,&amp;#34;path&amp;#34;:&amp;#34;/&amp;#34;}]&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Esto es útil para depuración de autenticación, reproducir una sesión específica o inyectar condiciones de cookies antes de ejecutar un script.&lt;/p&gt;
&lt;h2 id=&#34;05-leer-localstorage&#34;&gt;05 Leer localStorage
&lt;/h2&gt;&lt;p&gt;Algunos sitios guardan estado relacionado con login o frontend no solo en cookies, sino también en &lt;code&gt;localStorage&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli local-storage
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Este comando muestra el contenido de &lt;code&gt;localStorage&lt;/code&gt; de la página actual. Es especialmente útil cuando una página parece estar autenticada, pero sigue comportándose mal.&lt;/p&gt;
&lt;h2 id=&#34;06-escribir-localstorage&#34;&gt;06 Escribir localStorage
&lt;/h2&gt;&lt;p&gt;Si necesitas simular un estado frontend específico, puedes configurarlo directamente.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli local-storage &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; token abc123
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Escribe la clave y el valor indicados en &lt;code&gt;localStorage&lt;/code&gt;. Usos comunes incluyen inyectar un token, una preferencia o una bandera de frontend.&lt;/p&gt;
&lt;h2 id=&#34;07-leer-sessionstorage&#34;&gt;07 Leer sessionStorage
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;sessionStorage&lt;/code&gt; sirve para revisar estado temporal ligado a la sesión actual.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli session-storage
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Este comando muestra el &lt;code&gt;sessionStorage&lt;/code&gt; de la página actual. Si un flujo depende de datos de sesión de un solo uso, este es un buen lugar para inspeccionarlo.&lt;/p&gt;
&lt;h2 id=&#34;08-escribir-sessionstorage&#34;&gt;08 Escribir sessionStorage
&lt;/h2&gt;&lt;p&gt;Cuando haga falta, también puedes configurar &lt;code&gt;sessionStorage&lt;/code&gt; manualmente.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli session-storage &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; key value
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Es útil para reproducir comportamiento de página que depende de estado temporal, o para completar campos requeridos por un paso de inicialización.&lt;/p&gt;
&lt;h2 id=&#34;09-ver-indexeddb&#34;&gt;09 Ver IndexedDB
&lt;/h2&gt;&lt;p&gt;En aplicaciones web más pesadas, los datos locales más importantes pueden vivir realmente en &lt;code&gt;IndexedDB&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli indexed-db
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Este comando permite inspeccionar los datos &lt;code&gt;IndexedDB&lt;/code&gt; de la página actual. Conviene revisarlo primero cuando trabajas con SPAs complejas, caché offline o bases de datos locales tipo aplicación.&lt;/p&gt;
&lt;h2 id=&#34;10-un-flujo-práctico&#34;&gt;10 Un flujo práctico
&lt;/h2&gt;&lt;p&gt;Si tu objetivo es simplemente reutilizar de forma fiable una sesión de login, el flujo más práctico suele ser este:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Abre el sitio y completa el login manualmente.&lt;/li&gt;
&lt;li&gt;Guarda el estado con este comando:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli storage-state save auth.json
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ol start=&#34;3&#34;&gt;
&lt;li&gt;Cárgalo directamente en ejecuciones posteriores:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli --storage-state auth.json
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si la página sigue comportándose mal después de cargarlo, continúa revisando:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;playwright-cli cookies&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;playwright-cli local-storage&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;playwright-cli session-storage&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;playwright-cli indexed-db&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esa secuencia cubre la mayoría de casos donde el estado restaurado está incompleto.&lt;/p&gt;
&lt;h2 id=&#34;11-qué-tener-en-cuenta&#34;&gt;11 Qué tener en cuenta
&lt;/h2&gt;&lt;p&gt;Tres puntos importan especialmente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Un archivo de &lt;code&gt;storage state&lt;/code&gt; contiene datos sensibles. Puede incluir cookies o tokens de login, así que no lo commitees casualmente.&lt;/li&gt;
&lt;li&gt;Restaurar solo cookies puede no bastar. Muchos sitios modernos también dependen de &lt;code&gt;localStorage&lt;/code&gt;, &lt;code&gt;sessionStorage&lt;/code&gt; o &lt;code&gt;IndexedDB&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Los archivos de estado no son válidos para siempre. Tras expiración de cookies, cambios de cuenta o cambios de entorno, normalmente hay que generarlos de nuevo.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;12-resumen-rápido&#34;&gt;12 Resumen rápido
&lt;/h2&gt;&lt;p&gt;Si solo recuerdas una frase:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;storage state&lt;/code&gt; en &lt;code&gt;Playwright CLI&lt;/code&gt; significa guardar el estado actual del navegador y reutilizarlo en tareas posteriores.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;En la práctica, los comandos más útiles son:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli storage-state save auth.json
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli --storage-state auth.json
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli cookies
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli local-storage
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli session-storage
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli indexed-db
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Primero guarda y luego carga; si algo sigue viéndose mal, inspecciona cookies y las distintas capas de almacenamiento local una por una. Esa es la parte más práctica de esta referencia.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Referencia storage-state de Playwright CLI: &lt;a class=&#34;link&#34; href=&#34;https://github.com/microsoft/playwright-cli/blob/main/skills/playwright-cli/references/storage-state.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/microsoft/playwright-cli/blob/main/skills/playwright-cli/references/storage-state.md&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Página del proyecto Playwright CLI: &lt;a class=&#34;link&#34; href=&#34;https://github.com/microsoft/playwright-cli&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/microsoft/playwright-cli&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Qué es OpenHarness: qué puede hacer este agent harness open source</title>
        <link>https://knightli.com/es/2026/04/12/openharness-basic-functions/</link>
        <pubDate>Sun, 12 Apr 2026 23:45:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/12/openharness-basic-functions/</guid>
        <description>&lt;p&gt;Si has estado siguiendo herramientas de agentes AI open source últimamente, &lt;code&gt;HKUDS/OpenHarness&lt;/code&gt; es un proyecto que vale la pena observar. No es simplemente otro envoltorio de chat. En su lugar, separa la capa de infraestructura para un agente ejecutable, extensible y gobernable en un &lt;strong&gt;Agent Harness&lt;/strong&gt; open source independiente.&lt;/p&gt;
&lt;p&gt;Según el README oficial, OpenHarness ofrece un conjunto ligero pero bastante completo de capacidades de agente, incluidas llamadas a herramientas, carga de skills, memoria, gobierno de permisos y coordinación multi-agente. El &lt;code&gt;ohmo&lt;/code&gt; incluido es la aplicación de asistente personal AI construida sobre esa base.&lt;/p&gt;
&lt;h2 id=&#34;01-qué-es-openharness&#34;&gt;01 Qué es OpenHarness
&lt;/h2&gt;&lt;p&gt;Puedes pensar en OpenHarness como la capa de runtime que da manos, memoria y límites a un modelo fundacional.&lt;/p&gt;
&lt;p&gt;Un modelo puede ser bueno razonando y generando texto, pero si quieres que funcione como un agente de larga duración, normalmente necesita estas capacidades alrededor:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Llamar herramientas en lugar de solo producir texto&lt;/li&gt;
&lt;li&gt;Leer y escribir archivos, ejecutar comandos y usar búsqueda y acceso web&lt;/li&gt;
&lt;li&gt;Preservar contexto y memoria entre sesiones largas&lt;/li&gt;
&lt;li&gt;Aplicar controles de permisos a acciones riesgosas&lt;/li&gt;
&lt;li&gt;Dividir tareas grandes entre varios sub-agentes en paralelo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El objetivo de OpenHarness es convertir esa capa de ingeniería alrededor del modelo en una implementación Python clara, open source e inspeccionable. Está más cerca de un sustrato operativo para agentes que de una experiencia de modelo o una interfaz de chat concreta.&lt;/p&gt;
&lt;h2 id=&#34;02-funciones-básicas-del-proyecto&#34;&gt;02 Funciones básicas del proyecto
&lt;/h2&gt;&lt;p&gt;Según la página de GitHub y el README actuales, OpenHarness se centra en las siguientes áreas de capacidad.&lt;/p&gt;
&lt;h3 id=&#34;1-agent-loop&#34;&gt;1. Agent Loop
&lt;/h3&gt;&lt;p&gt;Este es el bucle de ejecución central que permite a un agente seguir trabajando durante múltiples pasos. Los puntos destacados oficiales incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bucles de llamadas a herramientas con streaming&lt;/li&gt;
&lt;li&gt;Reintentos de API con backoff exponencial&lt;/li&gt;
&lt;li&gt;Ejecución paralela de herramientas&lt;/li&gt;
&lt;li&gt;Contabilidad de tokens y seguimiento de costes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El punto práctico es que el agente no queda limitado a una respuesta única. Puede observar, razonar, llamar herramientas, leer resultados y seguir iterando dentro de la misma tarea.&lt;/p&gt;
&lt;h3 id=&#34;2-herramientas-skills-y-plugins&#34;&gt;2. Herramientas, Skills y Plugins
&lt;/h3&gt;&lt;p&gt;OpenHarness dedica bastante esfuerzo a la capa de herramientas. La página del proyecto dice que ya incluye herramientas integradas para archivos, Shell, búsqueda, acceso web y MCP, y que soporta carga bajo demanda de archivos de skill en Markdown.&lt;/p&gt;
&lt;p&gt;Su valor no está solo en tener muchas herramientas, sino en que el modelo de composición es bastante abierto:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Puedes usar directamente las herramientas integradas&lt;/li&gt;
&lt;li&gt;Puedes cargar skills para una tarea específica&lt;/li&gt;
&lt;li&gt;Puedes extender hooks, skills y agentes mediante plugins&lt;/li&gt;
&lt;li&gt;Es compatible con el ecosistema &lt;code&gt;anthropics/skills&lt;/code&gt; y plugins relacionados&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si quieres convertir flujos repetidos en capacidades reutilizables en lugar de volver a describirlos en prompts cada vez, esta capa resulta especialmente útil.&lt;/p&gt;
&lt;h3 id=&#34;3-contexto-y-memoria&#34;&gt;3. Contexto y memoria
&lt;/h3&gt;&lt;p&gt;Este es uno de los diferenciadores más importantes de OpenHarness. Las palabras clave oficiales incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;descubrimiento e inyección de &lt;code&gt;CLAUDE.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;compresión automática de contexto&lt;/li&gt;
&lt;li&gt;memoria persistente mediante &lt;code&gt;MEMORY.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;recuperación de sesiones y continuación de historial&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Eso significa que no solo reacciona a la entrada actual. Está diseñado para preservar convenciones de proyecto, tareas históricas y preferencias a largo plazo, lo que lo hace más adecuado para trabajo continuo en lugar de empezar siempre desde cero.&lt;/p&gt;
&lt;h3 id=&#34;4-gobierno-de-permisos-y-límites-de-seguridad&#34;&gt;4. Gobierno de permisos y límites de seguridad
&lt;/h3&gt;&lt;p&gt;Cuando un agente empieza a interactuar con filesystem, terminal y red, el gobierno se vuelve crítico. OpenHarness ofrece:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;múltiples modos de permisos&lt;/li&gt;
&lt;li&gt;controles de reglas basados en rutas y comandos&lt;/li&gt;
&lt;li&gt;hooks &lt;code&gt;PreToolUse&lt;/code&gt; / &lt;code&gt;PostToolUse&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;prompts interactivos de aprobación&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En otras palabras, no se trata solo de permitir que el agente haga cosas. También define qué puede hacerse directamente y qué debería requerir confirmación primero.&lt;/p&gt;
&lt;h3 id=&#34;5-coordinación-multi-agente&#34;&gt;5. Coordinación multi-agente
&lt;/h3&gt;&lt;p&gt;OpenHarness también soporta delegar trabajo a sub-agentes. Los materiales públicos actuales mencionan capacidades como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;creación y delegación de sub-agentes&lt;/li&gt;
&lt;li&gt;registro de equipos y gestión de tareas&lt;/li&gt;
&lt;li&gt;ciclo de vida de tareas en segundo plano&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para trabajo más complejo, esto significa que puede ir más allá de un único agente serial e intentar colaboración paralela.&lt;/p&gt;
&lt;h3 id=&#34;6-flujos-multi-proveedor&#34;&gt;6. Flujos multi-proveedor
&lt;/h3&gt;&lt;p&gt;OpenHarness no trata a los proveedores como simples etiquetas de API. Los abstrae como combinaciones de workflow + profile. Según el README, las direcciones actuales incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Claude / compatible con Anthropic&lt;/li&gt;
&lt;li&gt;compatible con OpenAI&lt;/li&gt;
&lt;li&gt;Codex Subscription&lt;/li&gt;
&lt;li&gt;GitHub Copilot&lt;/li&gt;
&lt;li&gt;backends compatibles como Moonshot(Kimi), GLM y MiniMax&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Eso hace que se sienta más como un framework runtime multi-modelo y multi-entrada para agentes, no como algo atado a un único proveedor.&lt;/p&gt;
&lt;h3 id=&#34;7-react-tui-y-modo-no-interactivo&#34;&gt;7. React TUI y modo no interactivo
&lt;/h3&gt;&lt;p&gt;OpenHarness incluye una interfaz de terminal. Ejecutar &lt;code&gt;oh&lt;/code&gt; abre una TUI React/Ink, y el README oficial dice que soporta:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;selector de comandos&lt;/li&gt;
&lt;li&gt;confirmación de permisos&lt;/li&gt;
&lt;li&gt;cambio de modelo&lt;/li&gt;
&lt;li&gt;cambio de proveedor&lt;/li&gt;
&lt;li&gt;recuperación de sesión&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si no quieres entrar en una interfaz interactiva, también puedes usar el modo no interactivo para ejecutar una tarea una vez y devolver el resultado como salida estándar, JSON o JSON en streaming, algo útil para scripting y automatización.&lt;/p&gt;
&lt;h2 id=&#34;03-qué-es-ohmo&#34;&gt;03 Qué es &lt;code&gt;ohmo&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;Si OpenHarness es la capa de infraestructura, &lt;code&gt;ohmo&lt;/code&gt; es la aplicación de agente personal construida encima.&lt;/p&gt;
&lt;p&gt;La página del proyecto es muy clara sobre su posicionamiento: no es solo un chatbot genérico, sino un asistente personal que puede seguir trabajando durante conversaciones largas. La descripción oficial dice que puede interactuar contigo mediante canales como Feishu, Slack, Telegram y Discord, y realizar tareas como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;crear una rama mediante fork&lt;/li&gt;
&lt;li&gt;escribir código&lt;/li&gt;
&lt;li&gt;ejecutar pruebas&lt;/li&gt;
&lt;li&gt;abrir un PR&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El README también destaca que &lt;code&gt;ohmo&lt;/code&gt; puede ejecutarse sobre tu suscripción existente de Claude Code o Codex, por lo que no necesariamente necesitas provisionar una nueva clave API. Para personas que ya usan esas suscripciones, eso reduce bastante la barrera.&lt;/p&gt;
&lt;h2 id=&#34;04-en-qué-escenarios-encaja&#34;&gt;04 En qué escenarios encaja
&lt;/h2&gt;&lt;p&gt;Por las capacidades públicas actuales, OpenHarness encaja bien para personas que:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Quieren estudiar de qué está hecho realmente un agente de nivel producción&lt;/li&gt;
&lt;li&gt;Quieren construir su propio runtime de agentes open source y extensible&lt;/li&gt;
&lt;li&gt;Quieren herramientas, skills, memoria, permisos y coordinación multi-agente en un solo framework&lt;/li&gt;
&lt;li&gt;No quieren quedar atadas a un único proveedor de modelos o forma de cliente&lt;/li&gt;
&lt;li&gt;Quieren construir agentes verticales o asistentes personales sobre una arquitectura existente&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si tu objetivo es simplemente encontrar un asistente terminado que pueda chatear de inmediato, OpenHarness en sí quizá no sea la opción más ligera. Pero si te importa más la infraestructura de agentes, el control de ingeniería y la extensibilidad a largo plazo, es un proyecto muy valioso para estudiar.&lt;/p&gt;
&lt;h2 id=&#34;05-una-forma-rápida-de-entender-su-posicionamiento&#34;&gt;05 Una forma rápida de entender su posicionamiento
&lt;/h2&gt;&lt;p&gt;En una frase:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;OpenHarness convierte modelos fundacionales en agentes que realmente pueden ejecutar trabajo, mientras &lt;code&gt;ohmo&lt;/code&gt; empaqueta esa capacidad en un asistente personal que puede seguir trabajando contigo con el tiempo.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;También puedes pensarlo como dos capas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;OpenHarness: un Agent Harness open source, esencialmente la capa de infraestructura&lt;/li&gt;
&lt;li&gt;ohmo: una app de agente personal construida sobre esa infraestructura&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A fecha de &lt;strong&gt;12 de abril de 2026&lt;/strong&gt;, la página de GitHub muestra que el proyecto ya había avanzado a &lt;strong&gt;v0.1.6 (10 de abril de 2026)&lt;/strong&gt;, con énfasis continuo en compresión automática de contexto, soporte de transporte MCP, React TUI y estabilidad de runtime para flujos multi-agente. Eso sugiere que todavía evoluciona rápido, pero su dirección ya es bastante clara.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Repositorio GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/HKUDS/OpenHarness&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/HKUDS/OpenHarness&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;README en inglés: &lt;a class=&#34;link&#34; href=&#34;https://github.com/HKUDS/OpenHarness/blob/main/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/HKUDS/OpenHarness/blob/main/README.md&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;README en chino: &lt;a class=&#34;link&#34; href=&#34;https://github.com/HKUDS/OpenHarness/blob/main/README.zh-CN.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/HKUDS/OpenHarness/blob/main/README.zh-CN.md&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Primeros pasos con Playwright CLI: instalación, Skills, sesiones y comandos esenciales</title>
        <link>https://knightli.com/es/2026/04/12/playwright-cli-getting-started/</link>
        <pubDate>Sun, 12 Apr 2026 14:36:58 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/12/playwright-cli-getting-started/</guid>
        <description>&lt;p&gt;Si has usado Claude Code, GitHub Copilot u otros agentes de programación para automatización de navegador, &lt;code&gt;microsoft/playwright-cli&lt;/code&gt; es una herramienta que vale la pena observar. No es el ayudante de navegador tradicional pensado principalmente para humanos escribiendo comandos a mano. Es una CLI de Playwright diseñada para agentes de programación, con énfasis en menor sobrecarga de tokens, una interfaz de comandos más ligera e integración con flujos basados en Skills.&lt;/p&gt;
&lt;p&gt;Según el README oficial, la idea central de Playwright CLI es clara: frente a MCP, que puede empujar grandes esquemas de herramientas y estructura de página al contexto del modelo, el enfoque CLI es más compacto y encaja mejor con flujos de agentes que alternan constantemente entre codebases grandes, pruebas y automatización de navegador.&lt;/p&gt;
&lt;h2 id=&#34;01-qué-es-playwright-cli&#34;&gt;01 Qué es Playwright CLI
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;playwright-cli&lt;/code&gt; es una herramienta open source de línea de comandos para Playwright creada por Microsoft. La descripción oficial es &amp;ldquo;CLI for common Playwright actions&amp;rdquo;. Se usa principalmente para tareas como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Abrir páginas y controlar el navegador&lt;/li&gt;
&lt;li&gt;Grabar y generar código Playwright&lt;/li&gt;
&lt;li&gt;Capturar snapshots de página para obtener referencias de elementos&lt;/li&gt;
&lt;li&gt;Tomar capturas de pantalla y exportar PDFs&lt;/li&gt;
&lt;li&gt;Trabajar con agentes de programación para automatización de pruebas e interacción web&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El README actual de GitHub es muy explícito sobre su posicionamiento: si usas agentes de programación, la CLI suele encajar mejor que Playwright MCP; si necesitas estado persistente, introspección más rica y bucles agentic de larga duración, MCP sigue teniendo su lugar.&lt;/p&gt;
&lt;p&gt;En otras palabras, Playwright CLI se siente más como una interfaz de automatización de navegador construida para asistentes AI de programación, no solo como una herramienta para que ingenieros hagan clic manualmente.&lt;/p&gt;
&lt;h2 id=&#34;02-dónde-destaca&#34;&gt;02 Dónde destaca
&lt;/h2&gt;&lt;h3 id=&#34;1-encaja-mejor-con-flujos-de-agentes&#34;&gt;1. Encaja mejor con flujos de agentes
&lt;/h3&gt;&lt;p&gt;El README oficial enumera &lt;code&gt;Token-efficient&lt;/code&gt; como una característica clave. No obliga a meter todos los datos de la página en el contexto del LLM. En su lugar, permite que el agente opere el navegador mediante comandos más cortos y enfocados.&lt;/p&gt;
&lt;p&gt;Esto importa mucho para agentes de programación. En proyectos reales, un agente no solo controla el navegador. También tiene que leer código, editar archivos, ejecutar pruebas e inspeccionar logs. Si la interfaz del navegador consume demasiado contexto, todo el flujo se vuelve menos eficiente.&lt;/p&gt;
&lt;h3 id=&#34;2-funciona-bien-con-skills&#34;&gt;2. Funciona bien con Skills
&lt;/h3&gt;&lt;p&gt;El README destaca específicamente &lt;code&gt;playwright-cli install --skills&lt;/code&gt;. Eso muestra que Microsoft no lo trata solo como otra utilidad de shell, sino como algo que Claude Code, GitHub Copilot y agentes similares pueden consumir directamente mediante un flujo basado en Skills.&lt;/p&gt;
&lt;p&gt;Si tu configuración ya depende de Skills, Playwright CLI debería encajar de forma natural.&lt;/p&gt;
&lt;h3 id=&#34;3-la-gestión-de-sesiones-es-bastante-completa&#34;&gt;3. La gestión de sesiones es bastante completa
&lt;/h3&gt;&lt;p&gt;Playwright CLI soporta sesiones. De forma predeterminada, el perfil del navegador permanece en memoria, así que cookies y storage state se conservan entre varias llamadas CLI dentro de la misma sesión. Si añades &lt;code&gt;--persistent&lt;/code&gt;, el perfil puede guardarse en disco y reutilizarse tras reiniciar el navegador.&lt;/p&gt;
&lt;p&gt;Esto lo vuelve mucho más práctico que herramientas que abren un navegador para un solo comando y luego descartan todo. También encaja mejor con ciclos largos de depuración y flujos de agentes más extensos.&lt;/p&gt;
&lt;h3 id=&#34;4-incluye-un-panel-visual-de-monitoreo&#34;&gt;4. Incluye un panel visual de monitoreo
&lt;/h3&gt;&lt;p&gt;El README ofrece &lt;code&gt;playwright-cli show&lt;/code&gt;, que abre un panel para observar y controlar todas las sesiones de navegador en ejecución. Esto es especialmente útil cuando un agente ejecuta automatización en segundo plano, porque puedes intervenir, inspeccionar el progreso y ayudar a depurar en lugar de trabajar a ciegas.&lt;/p&gt;
&lt;h2 id=&#34;03-instalación-y-requisitos&#34;&gt;03 Instalación y requisitos
&lt;/h2&gt;&lt;p&gt;Según el README actual de GitHub, los requisitos básicos de Playwright CLI son:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Node.js 18 o más reciente&lt;/li&gt;
&lt;li&gt;Claude Code, GitHub Copilot u otro agente de programación&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Los comandos de instalación son:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -g @playwright/cli@latest
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli --help
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Hay un error fácil que conviene destacar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El paquete recomendado oficialmente ahora es &lt;code&gt;@playwright/cli&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;No lo confundas con el antiguo paquete npm deprecado &lt;code&gt;playwright-cli&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Así que el paquete correcto es el scoped package, no el paquete histórico antiguo.&lt;/p&gt;
&lt;h2 id=&#34;04-cómo-empezar-a-usarlo&#34;&gt;04 Cómo empezar a usarlo
&lt;/h2&gt;&lt;h3 id=&#34;1-instalar-skills&#34;&gt;1. Instalar skills
&lt;/h3&gt;&lt;p&gt;Si quieres que un agente de programación use Playwright CLI directamente, la recomendación oficial es instalar primero las skills:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli install --skills
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El README dice explícitamente que Claude Code, GitHub Copilot y herramientas similares usarán las skills instaladas localmente.&lt;/p&gt;
&lt;h3 id=&#34;2-dejar-que-el-agente-llame-directamente-a-la-cli&#34;&gt;2. Dejar que el agente llame directamente a la CLI
&lt;/h3&gt;&lt;p&gt;Si no quieres manejar Skills primero, también puedes pedir al agente que lea la ayuda de la CLI directamente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Test the &amp;#34;add todo&amp;#34; flow on https://demo.playwright.dev/todomvc using playwright-cli.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Check playwright-cli --help for available commands.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El README llama a esto &amp;ldquo;Skills-less operation&amp;rdquo;. La idea es que incluso sin skills preinstaladas, la CLI puede describirse lo bastante bien para que un agente la use.&lt;/p&gt;
&lt;h3 id=&#34;3-probar-manualmente-un-flujo-mínimo&#34;&gt;3. Probar manualmente un flujo mínimo
&lt;/h3&gt;&lt;p&gt;El README incluye un ejemplo con TodoMVC que funciona muy bien como primera demostración práctica:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli open https://demo.playwright.dev/todomvc/ --headed
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli &lt;span class=&#34;nb&#34;&gt;type&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Buy groceries&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli press Enter
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli &lt;span class=&#34;nb&#34;&gt;type&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Water flowers&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli press Enter
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli check e21
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli check e35
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli screenshot
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Esta secuencia es útil porque muestra rápidamente cómo trabaja Playwright CLI:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;open&lt;/code&gt; abre la página&lt;/li&gt;
&lt;li&gt;&lt;code&gt;type&lt;/code&gt; y &lt;code&gt;press&lt;/code&gt; gestionan entrada de texto&lt;/li&gt;
&lt;li&gt;&lt;code&gt;check&lt;/code&gt; usa una referencia de elemento para alternar checkboxes&lt;/li&gt;
&lt;li&gt;&lt;code&gt;screenshot&lt;/code&gt; guarda el resultado&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;05---headed-sesiones-y-panel-de-monitoreo&#34;&gt;05 &lt;code&gt;--headed&lt;/code&gt;, sesiones y panel de monitoreo
&lt;/h2&gt;&lt;h3 id=&#34;--headed&#34;&gt;&lt;code&gt;--headed&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Playwright CLI es headless por defecto. Si quieres ver directamente la ventana del navegador, debes pasar &lt;code&gt;--headed&lt;/code&gt; al usar &lt;code&gt;open&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli open https://playwright.dev --headed
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Esto es especialmente útil al depurar selectores, flujos de login o cualquier interacción que sea más fácil inspeccionar visualmente.&lt;/p&gt;
&lt;h3 id=&#34;sesiones&#34;&gt;sesiones
&lt;/h3&gt;&lt;p&gt;El README oficial da mucha importancia a las sesiones. Puedes usar distintas sesiones para aislar diferentes proyectos o sitios:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli open https://playwright.dev
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli -s&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;example open https://example.com --persistent
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli list
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si dejas que un agente trabaje durante más tiempo, también puedes pasar la sesión mediante una variable de entorno:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;PLAYWRIGHT_CLI_SESSION&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;todo-app claude .
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Comandos útiles de gestión de sesiones:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli list
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli close-all
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli kill-all
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;En la práctica:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;list&lt;/code&gt; muestra todas las sesiones&lt;/li&gt;
&lt;li&gt;&lt;code&gt;close-all&lt;/code&gt; cierra todos los navegadores de forma ordenada&lt;/li&gt;
&lt;li&gt;&lt;code&gt;kill-all&lt;/code&gt; termina forzosamente todos los procesos de navegador&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;panel-de-monitoreo&#34;&gt;Panel de monitoreo
&lt;/h3&gt;&lt;p&gt;Si quieres ver qué está haciendo realmente el agente en el navegador, puedes ejecutar:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli show
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Según el README, este panel tiene dos vistas principales:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Session grid: muestra sesiones activas por workspace, con vista previa en vivo, URL y título de página&lt;/li&gt;
&lt;li&gt;Session detail: muestra una vista en vivo de una sesión seleccionada y permite tomar control del ratón y teclado&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Eso significa que Playwright CLI no solo es usable desde la línea de comandos. También tiene una capa de observabilidad bastante madura.&lt;/p&gt;
&lt;h2 id=&#34;06-qué-comandos-conviene-memorizar-primero&#34;&gt;06 Qué comandos conviene memorizar primero
&lt;/h2&gt;&lt;p&gt;Si es tu primera vez con Playwright CLI, no necesitas memorizar todos los comandos. Estos son los principales:&lt;/p&gt;
&lt;h3 id=&#34;páginas-e-interacción&#34;&gt;Páginas e interacción
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli open &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;url&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli goto &amp;lt;url&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli click &amp;lt;ref&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli fill &amp;lt;ref&amp;gt; &amp;lt;text&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli &lt;span class=&#34;nb&#34;&gt;type&lt;/span&gt; &amp;lt;text&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli hover &amp;lt;ref&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli press &amp;lt;key&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;obtener-estructura-de-página&#34;&gt;Obtener estructura de página
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli snapshot
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli snapshot &amp;lt;ref&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli snapshot --depth&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;N
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli &lt;span class=&#34;nb&#34;&gt;eval&lt;/span&gt; &amp;lt;func&amp;gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;ref&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;snapshot&lt;/code&gt; es especialmente importante porque muchas operaciones posteriores dependen de referencias de elementos almacenadas como &lt;code&gt;ref&lt;/code&gt;. En la práctica, normalmente capturas un snapshot primero y luego usas los identificadores devueltos para hacer clic, rellenar, marcar o tomar capturas.&lt;/p&gt;
&lt;h3 id=&#34;guardar-salida&#34;&gt;Guardar salida
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli screenshot
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli pdf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;pestañas&#34;&gt;Pestañas
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli tab-list
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli tab-new &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;url&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli tab-close &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;index&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;playwright-cli tab-select &amp;lt;index&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;07-quién-debería-probarlo&#34;&gt;07 Quién debería probarlo
&lt;/h2&gt;&lt;p&gt;Playwright CLI merece probarse especialmente en estos escenarios:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Usas Claude Code, Copilot u otro agente de programación para pruebas E2E&lt;/li&gt;
&lt;li&gt;Quieres una interfaz de automatización de navegador más ligera sin empujar grandes estructuras de página al contexto del modelo&lt;/li&gt;
&lt;li&gt;Quieres que una sesión de navegador persista entre múltiples comandos&lt;/li&gt;
&lt;li&gt;Quieres monitorear tareas web impulsadas por agentes mediante un panel mientras se ejecutan&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si tu pregunta principal es cómo hacer que la automatización de navegador funcione de forma eficiente con agentes de programación, Playwright CLI probablemente se sentirá más natural que los flujos tradicionales de depuración manual.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/microsoft/playwright-cli&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/microsoft/playwright-cli&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;README: &lt;a class=&#34;link&#34; href=&#34;https://github.com/microsoft/playwright-cli/blob/main/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/microsoft/playwright-cli/blob/main/README.md&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Qué es Hermes Agent: resumen, fortalezas, primeros pasos y comparación con OpenClaw</title>
        <link>https://knightli.com/es/2026/04/12/hermes-agent-intro-guide-vs-openclaw/</link>
        <pubDate>Sun, 12 Apr 2026 14:07:58 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/12/hermes-agent-intro-guide-vs-openclaw/</guid>
        <description>&lt;p&gt;Si has estado siguiendo agentes AI open source recientemente, &lt;code&gt;Hermes Agent&lt;/code&gt; es un proyecto al que vale la pena prestar atención. Creado por Nous Research, su atractivo principal no es simplemente ser otro envoltorio de chat, sino intentar reunir memoria a largo plazo, skills reutilizables, archivos de contexto, extensiones MCP, una pasarela de mensajería y sub-agentes paralelos en un único runtime de agentes.&lt;/p&gt;
&lt;p&gt;Según el README oficial, Hermes Agent tiene un objetivo muy claro: puede funcionar como un asistente CLI local en tu terminal, o como un asistente personal alojado en la nube y disponible a través de Telegram, Discord, Slack, WhatsApp, Signal y otros canales. Para usuarios que quieren combinar un asistente de programación, un asistente de automatización y un espacio personal de AI en un solo sistema, ese posicionamiento es atractivo.&lt;/p&gt;
&lt;h2 id=&#34;01-resumen-de-hermes-agent&#34;&gt;01 Resumen de Hermes Agent
&lt;/h2&gt;&lt;p&gt;Hermes Agent es un agente AI open source y auto-mejorable de Nous Research. Soporta varios proveedores de modelos, incluidos Nous Portal, OpenRouter, OpenAI y endpoints personalizados compatibles con OpenAI. También puede ejecutarse en distintos backends como terminal local, Docker, SSH, Daytona y Modal.&lt;/p&gt;
&lt;p&gt;Lo que separa a Hermes de muchos chatbots con herramientas es que no se centra solo en llamadas a herramientas dentro de una sesión. Da mucha más importancia a construir capacidades persistentes entre sesiones. La documentación oficial divide esta idea en varias partes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Memoria persistente: guarda información clave sobre el entorno, el proyecto y las preferencias del usuario mediante &lt;code&gt;MEMORY.md&lt;/code&gt; y &lt;code&gt;USER.md&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Sistema de skills: convierte flujos de trabajo exitosos en skills reutilizables que pueden cargarse bajo demanda.&lt;/li&gt;
&lt;li&gt;Archivos de contexto: lee automáticamente archivos como &lt;code&gt;AGENTS.md&lt;/code&gt;, &lt;code&gt;SOUL.md&lt;/code&gt; y &lt;code&gt;.cursorrules&lt;/code&gt; para inyectar convenciones del proyecto directamente en la sesión.&lt;/li&gt;
&lt;li&gt;Integración MCP: puede conectarse a cualquier servidor compatible con MCP para ampliar capacidades de bases de datos, GitHub, filesystem y scraping.&lt;/li&gt;
&lt;li&gt;Pasarela de mensajería: además de la CLI, puede usarse desde Telegram, Discord, Slack, WhatsApp, Signal, Email y otros puntos de entrada.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En una frase, Hermes Agent se siente más como una capa operativa de agentes de propósito general con memoria, skills, extensibilidad y acceso multicanal.&lt;/p&gt;
&lt;h2 id=&#34;02-dónde-destaca&#34;&gt;02 Dónde destaca
&lt;/h2&gt;&lt;h3 id=&#34;1-cubre-flujos-cli-y-flujos-de-mensajería&#34;&gt;1. Cubre flujos CLI y flujos de mensajería
&lt;/h3&gt;&lt;p&gt;Muchos proyectos de agentes se inclinan hacia asistencia de desarrollador en terminal o hacia bots de plataformas de chat. Hermes intenta combinar ambos. Puedes ejecutar &lt;code&gt;hermes&lt;/code&gt; directamente en la terminal, o continuar con el mismo asistente por Telegram o Discord después de iniciar la gateway.&lt;/p&gt;
&lt;p&gt;El beneficio práctico es que Hermes no se limita a ser útil solo cuando estás frente al ordenador. Si lo despliegas en la nube o en un VPS, puede convertirse en un asistente personal disponible de forma continua.&lt;/p&gt;
&lt;h3 id=&#34;2-está-diseñado-para-uso-a-largo-plazo&#34;&gt;2. Está diseñado para uso a largo plazo
&lt;/h3&gt;&lt;p&gt;Hermes hace más que chatear y llamar herramientas. También está construido alrededor de acumulación a largo plazo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Memoria persistente con límites, en lugar de meter contexto sin fin en cada conversación.&lt;/li&gt;
&lt;li&gt;Un sistema de skills que permite guardar y reutilizar flujos exitosos.&lt;/li&gt;
&lt;li&gt;Búsqueda en sesiones pasadas para recuperación y recuerdo.&lt;/li&gt;
&lt;li&gt;Archivos de contexto de proyecto que reducen la necesidad de repetir el mismo trasfondo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto importa mucho para personas que trabajan repetidamente en los mismos repositorios, flujos y convenciones de equipo. Significa que el agente no solo ayuda una vez; puede familiarizarse gradualmente con tu entorno.&lt;/p&gt;
&lt;h3 id=&#34;3-el-soporte-mcp-le-da-gran-extensibilidad&#34;&gt;3. El soporte MCP le da gran extensibilidad
&lt;/h3&gt;&lt;p&gt;La documentación de Hermes soporta explícitamente MCP y describe modos de integración por stdio y HTTP. En la práctica, si un sistema externo ya tiene un servidor MCP, Hermes suele poder conectarse con un coste de integración mucho menor.&lt;/p&gt;
&lt;p&gt;Eso es más flexible que escribir un plugin personalizado para cada sistema. Para usuarios que ya tienen herramientas alrededor del ecosistema MCP, Hermes debería ser mucho más fácil de extender.&lt;/p&gt;
&lt;h3 id=&#34;4-es-amigable-para-usuarios-de-openclaw&#34;&gt;4. Es amigable para usuarios de OpenClaw
&lt;/h3&gt;&lt;p&gt;Esta parte es especialmente interesante. El README de Hermes ofrece directamente &lt;code&gt;hermes claw migrate&lt;/code&gt; y dice explícitamente que puede importar configuración, memoria, skills, claves API y ajustes de plataformas de mensajería desde OpenClaw.&lt;/p&gt;
&lt;p&gt;Eso sugiere que Hermes no intenta ignorar el ecosistema existente y empezar desde cero. Claramente posiciona a algunos usuarios de OpenClaw como audiencia de migración.&lt;/p&gt;
&lt;h2 id=&#34;03-cómo-empezar-rápido&#34;&gt;03 Cómo empezar rápido
&lt;/h2&gt;&lt;p&gt;El método de instalación recomendado oficialmente para Hermes Agent es muy directo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Según el README oficial, soporta Linux, macOS, WSL2 y Android Termux. Una nota importante es que Windows nativo no está soportado por ahora, así que se recomienda a los usuarios de Windows usar WSL2.&lt;/p&gt;
&lt;p&gt;Después de instalar, normalmente conviene refrescar primero la shell:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;source&lt;/span&gt; ~/.bashrc
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Luego puedes iniciarlo directamente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hermes
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si quieres pasar por un flujo de inicialización más completo paso a paso, el comando más sencillo es:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hermes setup
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Según la documentación y el README oficiales, una ruta simple de primera configuración sería:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Ejecuta &lt;code&gt;hermes setup&lt;/code&gt; para completar la configuración base.&lt;/li&gt;
&lt;li&gt;Usa &lt;code&gt;hermes model&lt;/code&gt; para elegir proveedor y modelo.&lt;/li&gt;
&lt;li&gt;Usa &lt;code&gt;hermes tools&lt;/code&gt; para activar los conjuntos de herramientas que quieras.&lt;/li&gt;
&lt;li&gt;Ejecuta &lt;code&gt;hermes&lt;/code&gt; para entrar en la CLI interactiva.&lt;/li&gt;
&lt;li&gt;Si quieres canales como Telegram o Discord, continúa con &lt;code&gt;hermes gateway&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si ya usas OpenClaw, también vale la pena previsualizar el comando de migración:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hermes claw migrate --dry-run
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Así puedes inspeccionar qué se puede migrar antes de hacer una importación real.&lt;/p&gt;
&lt;h2 id=&#34;04-cómo-pensarlo-frente-a-openclaw&#34;&gt;04 Cómo pensarlo frente a OpenClaw
&lt;/h2&gt;&lt;p&gt;Según la documentación y el README oficiales, Hermes Agent y OpenClaw no son simplemente un caso de uno reemplazando al otro. Sus posicionamientos se solapan, pero sus prioridades son claramente diferentes.&lt;/p&gt;
&lt;h3 id=&#34;cómo-se-siente-hermes-agent&#34;&gt;Cómo se siente Hermes Agent
&lt;/h3&gt;&lt;p&gt;Hermes se siente más como un producto centrado en un núcleo de agente y un sistema de flujos de trabajo. Enfatiza:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;experiencia CLI&lt;/li&gt;
&lt;li&gt;acumulación de memoria y skills&lt;/li&gt;
&lt;li&gt;archivos de contexto de proyecto&lt;/li&gt;
&lt;li&gt;extensibilidad MCP&lt;/li&gt;
&lt;li&gt;sub-agentes paralelos&lt;/li&gt;
&lt;li&gt;cambio de backends de ejecución entre local, contenedor, remoto y serverless&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si tu objetivo principal es que el agente entienda mejor tu proyecto, reutilice capacidades con el tiempo y se conecte de forma más natural a MCP y flujos de desarrollo, Hermes probablemente encaje mejor.&lt;/p&gt;
&lt;h3 id=&#34;cómo-se-siente-openclaw&#34;&gt;Cómo se siente OpenClaw
&lt;/h3&gt;&lt;p&gt;OpenClaw se siente más como una plataforma centrada en un asistente personal AI más una pasarela de mensajería. Enfatiza:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;integración rica con canales de mensajería&lt;/li&gt;
&lt;li&gt;una Gateway siempre en ejecución&lt;/li&gt;
&lt;li&gt;una Control UI basada en navegador&lt;/li&gt;
&lt;li&gt;emparejamiento de dispositivos, acceso remoto y gestión de estado&lt;/li&gt;
&lt;li&gt;superficies más orientadas a asistente, como voz, acceso móvil y Canvas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si tu objetivo principal es mantener un asistente personal AI disponible de forma fiable en varios canales y dispositivos, con un panel de control para gestionarlo, OpenClaw tiene una sensación de producto más fuerte en esa dirección.&lt;/p&gt;
&lt;h3 id=&#34;una-regla-práctica&#34;&gt;Una regla práctica
&lt;/h3&gt;&lt;p&gt;Puedes pensar en los dos así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Hermes Agent: más como un espacio de trabajo de agentes de propósito general que crece con el uso&lt;/li&gt;
&lt;li&gt;OpenClaw: más como una plataforma de asistente personal AI multicanal y siempre disponible&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La distinción no es absoluta, porque ambos proyectos siguen expandiéndose y Hermes también ofrece una ruta de migración desde OpenClaw. Pero según el material público actual, Hermes destaca más en memoria, skills, contexto, MCP y flujos de desarrollo, mientras OpenClaw parece más maduro en gateway, multicanal, Control UI y acceso a dispositivos.&lt;/p&gt;
&lt;h2 id=&#34;05-quién-debería-probarlo&#34;&gt;05 Quién debería probarlo
&lt;/h2&gt;&lt;p&gt;Hermes Agent merece probarse primero si encajas en alguno de estos perfiles:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ya dependes mucho de herramientas AI en la terminal y quieres un agente que entienda mejor tu codebase y reglas de proyecto.&lt;/li&gt;
&lt;li&gt;Quieres combinar &lt;code&gt;AGENTS.md&lt;/code&gt;, skills, memoria y MCP en un solo flujo.&lt;/li&gt;
&lt;li&gt;No quieres quedar bloqueado en un único proveedor de modelos y prefieres cambio flexible de proveedores.&lt;/li&gt;
&lt;li&gt;Ya usas OpenClaw y quieres explorar una dirección más centrada en flujos de agentes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si te importa más el alcance móvil, la integración amplia con plataformas de mensajería, una consola de control en navegador y la sensación de un asistente personal siempre online, OpenClaw sigue teniendo mucho atractivo.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Hermes Agent GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/NousResearch/hermes-agent&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/NousResearch/hermes-agent&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Hermes Agent Docs: &lt;a class=&#34;link&#34; href=&#34;https://hermes-agent.nousresearch.com/docs/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://hermes-agent.nousresearch.com/docs/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Hermes Features Overview: &lt;a class=&#34;link&#34; href=&#34;https://hermes-agent.nousresearch.com/docs/user-guide/features/overview&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://hermes-agent.nousresearch.com/docs/user-guide/features/overview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Hermes MCP: &lt;a class=&#34;link&#34; href=&#34;https://hermes-agent.nousresearch.com/docs/user-guide/features/mcp/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://hermes-agent.nousresearch.com/docs/user-guide/features/mcp/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;OpenClaw GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/openclaw/openclaw&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/openclaw/openclaw&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;OpenClaw Getting Started: &lt;a class=&#34;link&#34; href=&#34;https://docs.openclaw.ai/start/quickstart&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://docs.openclaw.ai/start/quickstart&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;OpenClaw Control UI: &lt;a class=&#34;link&#34; href=&#34;https://docs.openclaw.ai/web/control-ui&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://docs.openclaw.ai/web/control-ui&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>OpenClaw Dreaming: las máquinas empiezan a soñar mientras los humanos pierden el sueño</title>
        <link>https://knightli.com/es/2026/04/12/openclaw-dreaming-machine-dreams-humans-lose-sleep/</link>
        <pubDate>Sun, 12 Apr 2026 12:41:34 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/12/openclaw-dreaming-machine-dreams-humans-lose-sleep/</guid>
        <description>&lt;p&gt;La memoria a largo plazo siempre ha sido un punto débil de los modelos grandes. A medida que crece el contexto, la memoria se vuelve más difícil de gestionar. Un agente puede parecer que lo recuerda todo y, aun así, volverse peor al juzgar qué importa y qué debería olvidarse.&lt;/p&gt;
&lt;p&gt;El 5 de abril, OpenClaw presentó una función experimental llamada Dreaming. No es solo un nombre llamativo. Es un sistema de gestión de memoria en segundo plano, inspirado en el sueño humano, diseñado para ayudar a los agentes a despertar con una memoria más limpia y útil.&lt;/p&gt;
&lt;h2 id=&#34;01-una-pipeline-basada-en-sueño-para-consolidar-memoria&#34;&gt;01 Una pipeline basada en sueño para consolidar memoria
&lt;/h2&gt;&lt;p&gt;Dreaming hace más que indexar datos. Divide el procesamiento de memoria en tres etapas que reflejan distintas funciones del sueño humano.&lt;/p&gt;
&lt;p&gt;Light Sleep: el sistema escanea conversaciones recientes y trazas de recuperación, elimina duplicados y construye una lista de candidatos. En esta etapa solo almacena información temporalmente y no modifica el archivo de memoria principal &lt;code&gt;MEMORY.md&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Deep Sleep: el sistema aplica filtros más estrictos para identificar información duradera. Solo avanzan las entradas que superan umbrales de puntuación, número de recuperaciones y diversidad de consultas. Antes de escribir nada, vuelve a revisar los logs más recientes para retirar contenido obsoleto. El resultado final se añade a &lt;code&gt;MEMORY.md&lt;/code&gt;, mientras que un resumen de sueño profundo se escribe en &lt;code&gt;DREAMS.md&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;REM: después de consolidar la memoria, el sistema busca vínculos ocultos entre trazas de comportamiento recientes. Extrae patrones y resúmenes reflexivos, y luego los guarda en una sección REM dedicada para ayudar al agente a responder con mejor estructura y más contexto.&lt;/p&gt;
&lt;p&gt;Dreaming también produce un diario de sueños legible por humanos. Cuando se acumula material suficiente, un sub-agente en segundo plano llama al modelo predeterminado y añade una breve entrada en lenguaje natural a &lt;code&gt;DREAMS.md&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;02-un-sistema-de-puntuación-para-decidir-qué-merece-quedarse&#34;&gt;02 Un sistema de puntuación para decidir qué merece quedarse
&lt;/h2&gt;&lt;p&gt;El punto real de Dreaming no es solo organizar memoria, sino filtrarla. En lugar de conservarlo todo, OpenClaw usa un modelo de puntuación ponderado para decidir qué pertenece al almacenamiento a largo plazo.&lt;/p&gt;
&lt;p&gt;Las seis dimensiones son:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Relevancia (30%): qué tan útil es la información cuando se recupera.&lt;/li&gt;
&lt;li&gt;Frecuencia (24%): qué tan a menudo aparece el elemento en señales de corto plazo.&lt;/li&gt;
&lt;li&gt;Diversidad de consultas (15%): si aparece en diferentes prompts y contextos.&lt;/li&gt;
&lt;li&gt;Recencia (15%): si la información sigue siendo fresca y accionable.&lt;/li&gt;
&lt;li&gt;Integración (10%): si permanece estable durante varios días.&lt;/li&gt;
&lt;li&gt;Riqueza conceptual (6%): qué tan denso y conectado es su grafo conceptual.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En la práctica, esto significa que el sistema intenta conservar información repetida, útil, actual y ampliamente aplicable, mientras deja que el ruido de menor valor se desvanezca.&lt;/p&gt;
&lt;h2 id=&#34;03-por-qué-recuerda-al-enfoque-de-dreaming-de-claude&#34;&gt;03 Por qué recuerda al enfoque de &amp;ldquo;dreaming&amp;rdquo; de Claude
&lt;/h2&gt;&lt;p&gt;Algunos desarrolladores han señalado que Dreaming se parece a la lógica de sueño automatizado descrita en materiales filtrados de Claude Code sobre el sistema KAIROS. Los enfoques antiguos que reescribían repetidamente todo &lt;code&gt;MEMORY.md&lt;/code&gt; podían volverse desordenados con el tiempo. Al dividir el flujo en sueño ligero, sueño profundo y REM, Dreaming hace que la pipeline sea más explícita: consolidar primero, preservar después y derivar patrones de nivel superior al final.&lt;/p&gt;
&lt;p&gt;Otros han destacado el ángulo neurocientífico. Términos como Dreaming, Light Sleep, Deep Sleep y REM no son branding aleatorio. Toman prestados directamente modelos humanos de consolidación de memoria durante el sueño.&lt;/p&gt;
&lt;p&gt;OpenClaw ya usa archivos como &lt;code&gt;IDENTITY.md&lt;/code&gt;, &lt;code&gt;USER.md&lt;/code&gt; y &lt;code&gt;HEARTBEAT.md&lt;/code&gt; para preservar identidad, contexto de usuario y continuidad. &lt;code&gt;DREAMS.md&lt;/code&gt; completa la pieza que faltaba: decidir qué recuerdos realmente vale la pena conservar.&lt;/p&gt;
&lt;h2 id=&#34;04-la-parte-más-irónica-las-máquinas-sueñan-y-los-humanos-siguen-despiertos&#34;&gt;04 La parte más irónica: las máquinas sueñan y los humanos siguen despiertos
&lt;/h2&gt;&lt;p&gt;El valor de Dreaming no es que la AI lo recuerde todo. Es que aprende a revisar trazas de corto plazo, extraer patrones y descartar ruido. Un agente fuerte no debería comportarse como un dispositivo de almacenamiento tonto. Debería mejorar con el tiempo al entender preferencias del usuario, objetivos recurrentes y contexto de largo plazo.&lt;/p&gt;
&lt;p&gt;Desde una perspectiva de ingeniería, lo más interesante es que el sistema no se presenta como una caja negra mística. Es un proceso backend estructurado con etapas, umbrales, reflexión y reglas de olvido. Eso hace que la memoria de AI se sienta menos como inflación de contexto sin control y más como un sistema diseñado.&lt;/p&gt;
&lt;p&gt;Y eso también vuelve irónico todo el asunto. Estamos dedicando un esfuerzo enorme a enseñar a las máquinas a soñar, mientras muchas personas pierden el sueño por ser reemplazadas por esos mismos sistemas cada vez más capaces.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Cómo usar llama-quantize para modelos GGUF</title>
        <link>https://knightli.com/es/2026/04/12/llama-quantize-gguf-guide/</link>
        <pubDate>Sun, 12 Apr 2026 09:42:36 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/12/llama-quantize-gguf-guide/</guid>
        <description>&lt;p&gt;&lt;code&gt;llama-quantize&lt;/code&gt; es la herramienta de cuantización de &lt;code&gt;llama.cpp&lt;/code&gt;. Se usa para convertir modelos &lt;code&gt;GGUF&lt;/code&gt; de alta precisión en versiones cuantizadas más pequeñas.&lt;/p&gt;
&lt;p&gt;Su uso más común es convertir formatos como &lt;code&gt;F32&lt;/code&gt;, &lt;code&gt;BF16&lt;/code&gt; o &lt;code&gt;FP16&lt;/code&gt; en versiones como &lt;code&gt;Q4_K_M&lt;/code&gt;, &lt;code&gt;Q5_K_M&lt;/code&gt; o &lt;code&gt;Q8_0&lt;/code&gt;, que son más fáciles de ejecutar localmente. Después de la cuantización, los modelos suelen ser mucho más pequeños y a menudo más rápidos en inferencia, aunque se espera cierta pérdida de calidad.&lt;/p&gt;
&lt;h2 id=&#34;flujo-básico&#34;&gt;Flujo básico
&lt;/h2&gt;&lt;p&gt;Un flujo típico consiste en preparar el modelo original, convertirlo a GGUF y luego ejecutar la cuantización.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# install Python dependencies&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python3 -m pip install -r requirements.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# convert the model to ggml FP16 format&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python3 convert_hf_to_gguf.py ./models/mymodel/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# quantize the model to 4-bits (using Q4_K_M method)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./llama-quantize ./models/mymodel/ggml-model-f16.gguf ./models/mymodel/ggml-model-Q4_K_M.gguf Q4_K_M
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Después, puedes ejecutar el modelo cuantizado con &lt;code&gt;llama-cli&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# start inference on a gguf model&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./llama-cli -m ./models/mymodel/ggml-model-Q4_K_M.gguf -cnv -p &lt;span class=&#34;s2&#34;&gt;&amp;#34;You are a helpful assistant&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;opciones-comunes&#34;&gt;Opciones comunes
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;--allow-requantize&lt;/code&gt;: permite volver a cuantizar un modelo ya cuantizado, algo que normalmente no es ideal para la calidad&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--leave-output-tensor&lt;/code&gt;: deja la capa de salida sin cuantizar; aumenta el tamaño, pero a veces ayuda a la calidad&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--pure&lt;/code&gt;: desactiva la cuantización mixta y usa un tipo de cuantización más uniforme&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--imatrix&lt;/code&gt;: usa una matriz de importancia para mejorar la calidad de cuantización&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--keep-split&lt;/code&gt;: conserva el diseño original por fragmentos en lugar de producir un único archivo combinado&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si solo quieres un punto de partida práctico, esto suele bastar:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./llama-quantize ./models/mymodel/ggml-model-f16.gguf ./models/mymodel/ggml-model-Q4_K_M.gguf Q4_K_M
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;cómo-elegir-una-cuantización&#34;&gt;Cómo elegir una cuantización
&lt;/h2&gt;&lt;p&gt;Puedes pensar en los niveles de cuantización como un compromiso entre tamaño, velocidad y calidad:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Q8_0&lt;/code&gt;: más grande, pero normalmente más seguro para la calidad&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q6_K&lt;/code&gt; / &lt;code&gt;Q5_K_M&lt;/code&gt;: opciones equilibradas habituales&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q4_K_M&lt;/code&gt;: valor predeterminado muy común, con buen equilibrio entre tamaño y calidad&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q3&lt;/code&gt; / &lt;code&gt;Q2&lt;/code&gt;: útiles cuando el hardware es muy limitado, pero la pérdida de calidad es más visible&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El objetivo práctico normalmente no es elegir la cuantización más grande que quepa, sino la que se ejecute de forma fiable en tu hardware manteniendo una calidad aceptable.&lt;/p&gt;
&lt;h2 id=&#34;conclusión-práctica&#34;&gt;Conclusión práctica
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;empieza con &lt;code&gt;Q4_K_M&lt;/code&gt; o &lt;code&gt;Q5_K_M&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;sube a &lt;code&gt;Q6_K&lt;/code&gt; o &lt;code&gt;Q8_0&lt;/code&gt; si la calidad importa más&lt;/li&gt;
&lt;li&gt;baja a &lt;code&gt;Q3&lt;/code&gt; o &lt;code&gt;Q2&lt;/code&gt; si la memoria está ajustada&lt;/li&gt;
&lt;li&gt;compara versiones con el mismo conjunto de prompts&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En resumen, &lt;code&gt;llama-quantize&lt;/code&gt; es útil porque hace que los modelos GGUF sean más fáciles de ejecutar en hardware local, no solo porque reduce el tamaño de los archivos.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Cómo obtener modelos GGUF desde Hugging Face con llama.cpp</title>
        <link>https://knightli.com/es/2026/04/12/llama-cpp-hugging-face-gguf-models/</link>
        <pubDate>Sun, 12 Apr 2026 09:31:38 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/12/llama-cpp-hugging-face-gguf-models/</guid>
        <description>&lt;p&gt;&lt;code&gt;llama.cpp&lt;/code&gt; puede trabajar directamente con modelos GGUF alojados en Hugging Face, así que no siempre necesitas descargar manualmente los archivos del modelo primero.&lt;/p&gt;
&lt;p&gt;Si un repositorio de modelo ya ofrece archivos GGUF, puedes usar el argumento &lt;code&gt;-hf&lt;/code&gt; en la CLI, por ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;llama-cli -hf ggml-org/gemma-3-1b-it-GGUF
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;De forma predeterminada, esto descarga desde Hugging Face.&lt;br&gt;
Si usas otro servicio que expone una API compatible con Hugging Face, puedes cambiar el endpoint de descarga con la variable de entorno &lt;code&gt;MODEL_ENDPOINT&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Un detalle importante es que &lt;code&gt;llama.cpp&lt;/code&gt; solo puede usar directamente el formato &lt;code&gt;GGUF&lt;/code&gt;.&lt;br&gt;
Si tu modelo está en otro formato, primero necesitas convertirlo con los scripts &lt;code&gt;convert_*.py&lt;/code&gt; incluidos en el repositorio.&lt;/p&gt;
&lt;p&gt;Hugging Face también ofrece varias herramientas online relacionadas con &lt;code&gt;llama.cpp&lt;/code&gt;, entre ellas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;convertir modelos a &lt;code&gt;GGUF&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;cuantizar pesos para reducir tamaño&lt;/li&gt;
&lt;li&gt;convertir adaptadores LoRA&lt;/li&gt;
&lt;li&gt;editar metadatos GGUF en el navegador&lt;/li&gt;
&lt;li&gt;alojar endpoints de inferencia &lt;code&gt;llama.cpp&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si solo quieres la conclusión práctica, empieza por repositorios que ya ofrezcan &lt;code&gt;GGUF&lt;/code&gt; y luego usa &lt;code&gt;llama-cli -hf &amp;lt;user&amp;gt;/&amp;lt;model&amp;gt;&lt;/code&gt;. En la mayoría de casos, ese es el camino más simple.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Comprobar uso y cuota de Codex</title>
        <link>https://knightli.com/es/2026/04/12/codex-usage-quota-check/</link>
        <pubDate>Sun, 12 Apr 2026 00:01:33 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/12/codex-usage-quota-check/</guid>
        <description>&lt;p&gt;Si quieres comprobar la cuota restante de una cuenta de Codex, un pequeño script local puede llamar directamente al endpoint &lt;code&gt;/backend-api/wham/usage&lt;/code&gt; de ChatGPT.&lt;/p&gt;
&lt;p&gt;El flujo general es simple:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Leer &lt;code&gt;tokens.access_token&lt;/code&gt; y &lt;code&gt;tokens.account_id&lt;/code&gt; desde &lt;code&gt;auth.json&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Enviar una solicitud a &lt;code&gt;https://chatgpt.com/backend-api/wham/usage&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Incluir &lt;code&gt;Authorization: Bearer ...&lt;/code&gt; y &lt;code&gt;ChatGPT-Account-Id&lt;/code&gt; en los headers&lt;/li&gt;
&lt;li&gt;Analizar las ventanas de cuota de cinco horas y semanal en la respuesta&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;para-qué-sirve&#34;&gt;Para qué sirve
&lt;/h2&gt;&lt;p&gt;Este enfoque es útil cuando quieres confirmar rápidamente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;cuánta cuota de cinco horas queda&lt;/li&gt;
&lt;li&gt;cuánta cuota semanal queda&lt;/li&gt;
&lt;li&gt;cuándo se reinicia la cuota&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si gestionas varias cuentas, el script también puede escanear &lt;code&gt;account/*.auth.json&lt;/code&gt; e imprimir una tabla compacta de resumen. El archivo &lt;code&gt;auth.json&lt;/code&gt; de la cuenta de ChatGPT con sesión iniciada suele encontrarse en &lt;code&gt;~/.codex/&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;entradas-clave&#34;&gt;Entradas clave
&lt;/h2&gt;&lt;p&gt;En la práctica, el script depende principalmente de dos valores:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;access_token&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;account_id&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ambos suelen estar disponibles en un &lt;code&gt;auth.json&lt;/code&gt; local. Con ellos, los headers de la solicitud suelen tener este aspecto:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;headers&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;Authorization&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Bearer &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;auth_token&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;Accept&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;application/json&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;ChatGPT-Account-Id&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;auth_account_id&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;Origin&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://chatgpt.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;Referer&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://chatgpt.com/&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;User-Agent&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Mozilla/5.0&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;cómo-leer-la-respuesta&#34;&gt;Cómo leer la respuesta
&lt;/h2&gt;&lt;p&gt;Cuando la solicitud funciona, las entradas más importantes son las dos ventanas de cuota:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;five_hour&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;weekly&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un script práctico suele normalizarlas en:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;porcentaje restante&lt;/li&gt;
&lt;li&gt;hora de reinicio&lt;/li&gt;
&lt;li&gt;duración de la ventana&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;También conviene admitir nombres alternativos de campos como &lt;code&gt;primary_window&lt;/code&gt;, &lt;code&gt;secondary_window&lt;/code&gt;, &lt;code&gt;five_hour_limit&lt;/code&gt; y &lt;code&gt;weekly_limit&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;problemas-comunes&#34;&gt;Problemas comunes
&lt;/h2&gt;&lt;p&gt;Una respuesta 401 normalmente significa que el &lt;code&gt;access_token&lt;/code&gt; ha expirado o no es válido.&lt;/p&gt;
&lt;p&gt;Una respuesta 403 normalmente significa que la cuenta no puede acceder a este endpoint, o que la cuenta está en un estado anómalo.&lt;/p&gt;
&lt;p&gt;Si la respuesta usa nombres de campos inconsistentes, es mejor normalizarlos antes de imprimir el resumen.&lt;/p&gt;
&lt;h2 id=&#34;referencia&#34;&gt;Referencia
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;codex-auth-manager&lt;/code&gt;: &lt;a class=&#34;link&#34; href=&#34;https://github.com/RioArisk/codex-auth-manager&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/RioArisk/codex-auth-manager&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;código&#34;&gt;Código
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;  1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 42
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 43
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 44
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 45
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 46
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 47
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 48
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 49
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 50
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 51
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 52
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 53
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 54
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 55
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 56
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 57
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 58
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 59
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 60
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 61
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 62
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 63
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 64
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 65
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 66
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 67
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 68
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 69
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 70
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 71
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 72
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 73
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 74
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 75
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 76
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 77
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 78
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 79
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 80
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 81
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 82
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 83
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 84
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 85
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 86
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 87
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 88
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 89
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 90
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 91
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 92
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 93
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 94
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 95
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 96
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 97
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 98
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 99
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;100
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;101
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;102
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;103
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;104
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;105
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;106
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;107
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;108
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;109
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;110
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;111
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;112
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;113
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;114
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;115
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;116
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;117
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;118
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;119
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;120
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;121
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;122
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;123
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;124
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;125
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;126
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;127
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;128
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;129
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;130
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;131
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;132
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;133
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;134
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;135
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;136
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;137
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;138
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;139
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;140
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;141
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;142
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;143
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;144
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;145
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;146
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;147
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;148
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;149
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;150
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;151
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;152
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;153
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;154
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;155
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;156
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;157
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;158
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;159
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;160
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;161
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;162
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;163
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;164
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;165
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;166
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;167
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;168
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;169
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;170
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;171
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;172
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;173
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;174
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;175
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;176
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;177
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;178
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;179
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;180
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;181
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;182
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;183
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;184
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;185
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;186
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;187
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;188
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;189
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;190
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;191
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;192
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;193
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;194
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;195
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;196
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;197
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;198
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;199
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;200
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;201
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;202
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;203
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;204
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;205
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;206
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;207
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;208
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;209
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;210
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;211
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;212
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;213
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;214
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;215
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;216
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;217
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;218
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;219
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;220
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;221
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;222
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;223
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;224
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;225
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;226
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;227
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;228
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;229
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;230
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;231
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;232
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;233
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;234
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;235
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;236
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;237
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;238
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;239
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;240
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;241
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;242
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;243
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;244
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;245
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;246
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;247
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;248
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;249
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;250
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;251
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;252
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;253
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;254
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;255
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;256
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;257
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;258
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;259
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;260
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;261
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;262
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;263
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;264
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;265
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;266
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;267
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;268
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;269
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;270
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;271
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;272
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;273
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;274
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;275
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;276
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;277
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;278
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;279
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;280
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;281
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;282
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;283
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;284
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;285
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;286
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;287
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;288
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;289
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;290
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;291
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;292
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;293
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;294
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;295
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;296
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;297
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;298
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;299
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;300
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;301
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;302
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;303
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;304
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;305
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;306
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;307
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;308
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;309
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;310
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;311
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;312
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;313
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;314
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;315
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;316
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;317
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;318
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;319
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;320
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;321
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;322
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;323
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;324
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;325
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;326
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;327
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;328
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;329
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;330
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;331
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;332
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;333
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;334
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;335
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;336
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;337
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;338
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;339
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;340
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;341
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;342
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;343
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;344
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;345
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;346
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;347
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;348
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;349
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;350
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;351
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;352
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;353
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;354
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;355
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;356
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;357
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;358
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;359
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;360
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;361
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;362
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;363
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;364
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;365
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;366
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;367
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;368
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;369
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;370
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;371
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;372
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;373
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;374
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;375
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;376
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;377
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;378
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;379
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;380
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;381
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;382
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;383
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;384
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;385
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;386
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;387
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;388
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;389
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;390
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;391
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;392
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;393
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;394
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;395
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;396
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;397
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;398
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;399
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;400
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;401
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;402
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;403
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;404
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;405
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;406
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;407
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;408
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;409
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;410
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;411
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;412
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;413
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;414
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;415
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;416
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;417
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;418
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;419
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;420
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;421
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;422
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;423
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;424
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;425
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;426
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;427
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;428
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;429
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;430
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;431
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;432
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;433
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;434
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;435
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;436
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;437
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;438
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;439
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;440
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;441
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;442
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;443
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;444
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;445
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;446
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;447
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;448
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;449
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;450
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;451
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;452
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;453
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;454
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;455
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;456
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;457
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;458
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;459
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;460
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;argparse&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;base64&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;json&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;os&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;sys&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;datetime&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;datetime&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;timedelta&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;timezone&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;pathlib&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;typing&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Any&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;requests&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;UTC&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;timezone&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;utc&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;CST&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;timezone&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;timedelta&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;hours&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;8&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;CST&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;dict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Any&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;parse_args&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;argparse&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Namespace&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;argparse&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ArgumentParser&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;description&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Query ChatGPT Codex usage from /backend-api/wham/usage.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add_argument&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;account_name&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;nargs&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;?&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;help&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Account name used to load account/&amp;lt;account_name&amp;gt;.auth.json. If omitted, load all *.auth.json files in account/.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add_argument&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;--account-dir&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;default&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;account&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;help&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Directory containing &amp;lt;account_name&amp;gt;.auth.json files.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add_argument&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;--chatgpt-url&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;default&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;https://chatgpt.com/backend-api/wham/usage&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;help&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;ChatGPT usage endpoint.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add_argument&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;--raw-json&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;action&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;store_true&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;help&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Print the full JSON response body.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add_argument&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;--raw-headers&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;action&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;store_true&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;help&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Print response headers.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;parse_args&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;print_json&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Any&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;json&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dumps&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;indent&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ensure_ascii&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;False&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;load_auth_json&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;path_str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;path_str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;path&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;path_str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;expanduser&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;is_file&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;():&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;try&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;json&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;loads&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;read_text&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;encoding&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;utf-8&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;except&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;ne&#34;&gt;OSError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;json&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;JSONDecodeError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;get_nested_string&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;keys&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;current&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Any&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;key&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;keys&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;isinstance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;current&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;dict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;current&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;current&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;key&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;current&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;isinstance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;current&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;current&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;else&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;format_dt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;datetime&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dt&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;-&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dt&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;astimezone&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;CST&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;strftime&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;%Y-%m-&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;%d&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt; %H:%M:%S %Z&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;format_cst&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;datetime&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;format_dt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;epoch_ms_to_dt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Any&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;datetime&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;value&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;try&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;raw&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;except&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;ne&#34;&gt;TypeError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;ValueError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;# Newer responses sometimes use epoch seconds, older ones use epoch milliseconds.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;timestamp&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;raw&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1000&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;raw&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;**&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;11&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;else&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;raw&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;datetime&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;fromtimestamp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;timestamp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;tz&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;UTC&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;first_dict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Any&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;keys&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;key&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;keys&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;value&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;key&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;isinstance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;dict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;else&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;isinstance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;dict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;decode_jwt_exp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;token&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;datetime&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parts&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;token&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;split&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;len&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;parts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;!=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;try&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;payload&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;parts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;payload&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;=&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;len&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;payload&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;json&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;loads&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;base64&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;urlsafe_b64decode&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;payload&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;encode&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;ascii&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;exp&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;exp&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;exp&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;datetime&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;fromtimestamp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;exp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;tz&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;UTC&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;except&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;ne&#34;&gt;ValueError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;TypeError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;json&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;JSONDecodeError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;get_percent_left&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;float&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;percent_left&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;percent_left&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;percent_left&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;percent_left&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;remaining_percent&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;percent_left&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;percent_left&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;used_percent&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;used_percent&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;try&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;used_percent&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;max&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;100&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;float&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;used_percent&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;except&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;ne&#34;&gt;TypeError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;ValueError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;resolve_limit_window&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;reset_at&amp;#34;&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;reset_time_ms&amp;#34;&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;isinstance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;primary_window&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;dict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;primary_window&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;parse_limit_entry&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Any&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;isinstance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;dict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;value&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;resolve_limit_window&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;percent_left&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;get_percent_left&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;reset_time_ms&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;reset_time_ms&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;reset_time_ms&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;reset_time_ms&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;reset_at&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;window_seconds&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;limit_window_seconds&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;percent_left&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;percent_left&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;reset_time_ms&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;reset_time_ms&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;reset_at&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;epoch_ms_to_dt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;reset_time_ms&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;limit_window_seconds&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;window_seconds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;infer_limit_name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;window_seconds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Any&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;isinstance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;window_seconds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;float&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;window_seconds&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;6&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;3600&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;five_hour&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;window_seconds&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;6&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;24&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;3600&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;relabel_rate_limits&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;primary&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;secondary&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;tuple&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;entry&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;primary&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;secondary&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;entry&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;continue&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;inferred_name&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;infer_limit_name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;entry&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;limit_window_seconds&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;inferred_name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;entry&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;inferred_name&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;primary&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;secondary&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;primary&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;secondary&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;primary&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;primary&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;five_hour&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;else&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;secondary&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;primary&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;primary&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly&amp;#34;&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;secondary&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;primary&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;secondary&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;secondary&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;five_hour&amp;#34;&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;primary&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;secondary&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;primary&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;secondary&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;parse_rate_limits&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;tuple&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;primary&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;secondary&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;primary_key&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;five_hour&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;five_hour_limit&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;five_hour_rate_limit&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;primary&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;primary_key&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;primary&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;parse_limit_entry&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;five_hour&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;primary_key&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;primary&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;k&#34;&gt;break&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;secondary_key&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly_limit&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly_rate_limit&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;secondary&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;secondary_key&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;secondary&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;parse_limit_entry&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;secondary_key&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;secondary&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;k&#34;&gt;break&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;primary&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;primary&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;parse_limit_entry&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;five_hour&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;primary_window&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;secondary&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;secondary&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;parse_limit_entry&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;secondary_window&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;relabel_rate_limits&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;primary&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;secondary&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;format_percent&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Any&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;g&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;isinstance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;float&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;else&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;value&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;value&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;else&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;-&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;percent_sort_value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Any&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;descending&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;bool&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;tuple&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;float&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;isinstance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;float&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;numeric_value&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;float&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;numeric_value&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;descending&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;else&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;numeric_value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;get_auth_paths&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;account_dir&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;account_name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;list&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;base_dir&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;account_dir&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;account_name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;base_dir&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt; &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;account_name&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;.auth.json&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;sorted&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;base_dir&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;glob&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;*.auth.json&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;get_account_name_from_path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;suffix&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.auth.json&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[:&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;len&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;suffix&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)]&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;endswith&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;suffix&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;else&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stem&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;build_summary_row&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;account_name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;five_hour&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;weekly&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;account&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;account_name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;five_hour_percent&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;five_hour&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;percent_left&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;five_hour&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;else&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly_percent&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;weekly&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;percent_left&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;weekly&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;else&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly_reset_at&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;weekly&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;reset_at&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;weekly&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;else&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;print_summary_rows&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;rows&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;list&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;])&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;rows&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;sorted_rows&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;sorted&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;rows&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;key&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;lambda&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;row&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;percent_sort_value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;row&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;five_hour_percent&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;descending&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;percent_sort_value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;row&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly_percent&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;descending&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;format_cst&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;row&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly_reset_at&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;row&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;account&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;display_rows&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;row&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;sorted_rows&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;display_rows&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;append&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;s2&#34;&gt;&amp;#34;account&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;row&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;account&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;s2&#34;&gt;&amp;#34;five_hour&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;format_percent&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;row&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;five_hour_percent&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;format_percent&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;row&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly_percent&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly_reset&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;format_cst&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;row&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly_reset_at&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;headers&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;account&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;account&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;five_hour&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;five_hour%&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly%&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly_reset&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;weekly_reset&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;widths&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;key&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;max&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;len&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;headers&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;key&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]),&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;max&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;len&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;item&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;key&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;])&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;item&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;display_rows&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;key&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;headers&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;headers&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;account&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;widths&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;account&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;  &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;headers&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;five_hour&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;widths&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;five_hour&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;  &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;headers&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;weekly&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;widths&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;weekly&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;  &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;headers&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;weekly_reset&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;widths&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;weekly_reset&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;item&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;display_rows&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;item&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;account&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;widths&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;account&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;  &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;item&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;five_hour&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;widths&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;five_hour&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;  &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;item&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;weekly&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;widths&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;weekly&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;  &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;item&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;weekly_reset&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;widths&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;weekly_reset&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;validate_token_inputs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;token&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;account_id&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;auth_token&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;auth_account_id&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;token&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;startswith&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;sess-&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;status: invalid_token_type&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;s2&#34;&gt;&amp;#34;message: --chatgpt-token looks like a session token (sess-...). Use the JWT access_token instead.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;auth_token&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;s2&#34;&gt;&amp;#34;hint: Found tokens.access_token in auth.json; omit --chatgpt-token or pass that value instead.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;token_exp&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;decode_jwt_exp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;token&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;token_exp&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;token_exp&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;datetime&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;now&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;UTC&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;status: expired&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;message: access_token expired at &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;format_dt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;token_exp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;auth_token&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;auth_token&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;!=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;token&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;auth_token_exp&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;decode_jwt_exp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;auth_token&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;hint&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;format_dt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;auth_token_exp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;auth_token_exp&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;else&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;unknown time&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;hint: auth.json contains a different access_token expiring at &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;hint&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;auth_account_id&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;account_id&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;!=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;auth_account_id&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;warning: supplied --account-id does not match auth.json tokens.account_id&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;handle_error_response&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;requests&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Response&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Any&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;raw_json&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;bool&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;status_code&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;401&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;status: expired&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;message: access_token expired or invalid&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;raw_json&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;print_json&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;status_code&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;403&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;status: forbidden&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;message: account has no access to this endpoint or is in an abnormal state&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;raw_json&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;print_json&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;status_code&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;400&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;HTTP &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;status_code&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;print_json&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;fetch_chatgpt_usage&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;auth_path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;argparse&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Namespace&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;tuple&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;auth_data&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;load_auth_json&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;auth_path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;account_name&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;get_account_name_from_path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;auth_path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;auth_token&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;get_nested_string&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;auth_data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;tokens&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;access_token&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;auth_account_id&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;get_nested_string&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;auth_data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;tokens&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;account_id&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;auth_data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;account_name&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;: auth file not found or invalid&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;auth_token&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;account_name&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;: missing access_token&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;auth_account_id&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;account_name&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;: missing account_id&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;validation_error&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;validate_token_inputs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;auth_token&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;auth_account_id&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;auth_token&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;auth_account_id&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;validation_error&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;validation_error&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;headers&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;Authorization&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Bearer &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;auth_token&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;Accept&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;application/json&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;ChatGPT-Account-Id&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;auth_account_id&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;Origin&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://chatgpt.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;Referer&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://chatgpt.com/&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;User-Agent&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Mozilla/5.0&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;try&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;response&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;requests&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;chatgpt_url&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;headers&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;headers&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;timeout&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;60&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;except&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;requests&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;RequestException&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;exc&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Request failed: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;exc&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;raw_headers&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;=== Headers ===&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;print_json&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;dict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;headers&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;try&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;json&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;except&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;ValueError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;HTTP &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;status_code&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;text&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;error_response&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;handle_error_response&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;raw_json&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;error_response&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;error_response&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;raw_json&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;=== Raw JSON ===&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;print_json&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;rate_limits&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;first_dict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;rate_limit&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;rate_limits&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;rate_limits&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;build_summary_row&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;account_name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;five_hour&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;weekly&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;parse_rate_limits&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;rate_limits&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;build_summary_row&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;account_name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;five_hour&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;weekly&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;parse_args&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;auth_paths&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;get_auth_paths&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;account_dir&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;account_name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;auth_paths&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;No auth files found.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;exit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;exit_code&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;summary_rows&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;list&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;JSONDict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;auth_path&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;auth_paths&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;current_exit_code&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;summary_row&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;fetch_chatgpt_usage&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;auth_path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;exit_code&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;max&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;exit_code&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;current_exit_code&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;summary_row&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;raw_json&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;summary_rows&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;append&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;summary_row&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;summary_rows&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;print_summary_rows&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;summary_rows&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;exit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;exit_code&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;vm&#34;&gt;__name__&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;__main__&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
        </item>
        <item>
        <title>Qué significa `it` en Gemma-4-31B-it</title>
        <link>https://knightli.com/es/2026/04/11/gemma-4-31b-it-meaning/</link>
        <pubDate>Sat, 11 Apr 2026 20:45:34 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/11/gemma-4-31b-it-meaning/</guid>
        <description>&lt;p&gt;En &lt;code&gt;gemma-4-31B-it&lt;/code&gt;, &lt;code&gt;it&lt;/code&gt; significa &lt;code&gt;Instruction Tuned&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Para la mayoría de usuarios, esto quiere decir que esa versión está diseñada para chat, preguntas y respuestas, ayuda con código y otras tareas que siguen instrucciones.&lt;/p&gt;
&lt;h2 id=&#34;qué-significa-it&#34;&gt;Qué significa &lt;code&gt;it&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;Los modelos suelen venir en dos formas comunes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Base / Pre-trained: más cerca de un predictor bruto del siguiente token&lt;/li&gt;
&lt;li&gt;&lt;code&gt;it&lt;/code&gt;: ajustado para seguir instrucciones de usuario con más fiabilidad&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si pides algo como &amp;ldquo;traduce este texto&amp;rdquo; o &amp;ldquo;escribe un script en Python&amp;rdquo;, la versión &lt;code&gt;it&lt;/code&gt; suele comportarse más como un asistente.&lt;/p&gt;
&lt;h2 id=&#34;qué-significa-31b&#34;&gt;Qué significa &lt;code&gt;31B&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;31B&lt;/code&gt; significa que el modelo tiene alrededor de 31 mil millones de parámetros.&lt;/p&gt;
&lt;p&gt;En general:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;más parámetros suelen implicar capacidades más fuertes&lt;/li&gt;
&lt;li&gt;pero también mayores requisitos de VRAM o RAM&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Así que &lt;code&gt;31B&lt;/code&gt; es un modelo relativamente grande y necesita hardware más potente.&lt;/p&gt;
&lt;h2 id=&#34;qué-significa-gemma-4&#34;&gt;Qué significa &lt;code&gt;Gemma-4&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Gemma-4&lt;/code&gt; identifica la familia y la generación del modelo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Gemma&lt;/code&gt;: la familia de modelos abiertos de Google&lt;/li&gt;
&lt;li&gt;&lt;code&gt;4&lt;/code&gt;: la cuarta generación de esa familia&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;cuál-elegir&#34;&gt;Cuál elegir
&lt;/h2&gt;&lt;p&gt;Si tu objetivo es chat, preguntas y respuestas, traducción o programación, la versión &lt;code&gt;-it&lt;/code&gt; suele ser la mejor opción.&lt;/p&gt;
&lt;p&gt;La versión base tiene más sentido para investigación de bajo nivel, fine-tuning o flujos de entrenamiento personalizados.&lt;/p&gt;
&lt;h2 id=&#34;resumen-en-una-línea&#34;&gt;Resumen en una línea
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;gemma-4-31B-it&lt;/code&gt; significa: familia Gemma 4, 31 mil millones de parámetros, ajustado por instrucciones para conversación y ejecución de tareas.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Elegir cuantización GGUF de Llama en Hugging Face: consejos prácticos de Q8 a Q2</title>
        <link>https://knightli.com/es/2026/04/11/llama-gguf-quantization-selection/</link>
        <pubDate>Sat, 11 Apr 2026 20:07:29 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/11/llama-gguf-quantization-selection/</guid>
        <description>&lt;p&gt;Al elegir un modelo Llama GGUF en Hugging Face, puedes pensar en los niveles de cuantización como si fueran resolución: los niveles más bajos usan menos VRAM/RAM, pero la calidad cae gradualmente.&lt;/p&gt;
&lt;h2 id=&#34;entiende-primero-32-16-y-los-niveles-q&#34;&gt;Entiende primero 32, 16 y los niveles Q
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;32&lt;/code&gt;: lo más cercano a la calidad original o sin comprimir, pero con requisitos de hardware extremos.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;16&lt;/code&gt;: todavía muy cerca de la calidad original, con alrededor de la mitad del tamaño de &lt;code&gt;32&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q8&lt;/code&gt;: punto de entrada común para modelos cuantizados, escrito normalmente como &lt;code&gt;Q8_0&lt;/code&gt; o &lt;code&gt;Q8&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q6&lt;/code&gt;, &lt;code&gt;Q5&lt;/code&gt;, &lt;code&gt;Q4&lt;/code&gt;, &lt;code&gt;Q3&lt;/code&gt;, &lt;code&gt;Q2&lt;/code&gt;: cuanto menor es el número, menor es el uso de recursos y mayor el riesgo de pérdida de calidad.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;qué-significa-k_m--k_s&#34;&gt;Qué significa &lt;code&gt;K_M&lt;/code&gt; / &lt;code&gt;K_S&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;K_M&lt;/code&gt; y &lt;code&gt;K_S&lt;/code&gt; son variantes de cuantización mixta:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;la mayoría de pesos se mantienen en el nivel de cuantización objetivo&lt;/li&gt;
&lt;li&gt;algunas partes importantes conservan mayor precisión&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por eso, al mismo nivel, &lt;code&gt;Qx_K_M&lt;/code&gt; o &lt;code&gt;Qx_K_S&lt;/code&gt; suele ser ligeramente mejor que &lt;code&gt;Qx&lt;/code&gt; puro.&lt;/p&gt;
&lt;h2 id=&#34;estrategia-práctica-de-selección&#34;&gt;Estrategia práctica de selección
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Si el hardware lo permite, empieza con &lt;code&gt;Q8&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Si la memoria está justa, baja progresivamente a &lt;code&gt;Q6&lt;/code&gt; / &lt;code&gt;Q5&lt;/code&gt; / &lt;code&gt;Q4&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Intenta no bajar de &lt;code&gt;Q4&lt;/code&gt;; &lt;code&gt;Q4_K_M&lt;/code&gt; es un límite inferior habitual.&lt;/li&gt;
&lt;li&gt;Por debajo de &lt;code&gt;Q4&lt;/code&gt;, la degradación de calidad se vuelve cada vez más visible.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;orden-de-calidad-de-mejor-a-peor&#34;&gt;Orden de calidad, de mejor a peor
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;32&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;16&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;ndash; Por encima de este punto, la calidad es prácticamente igual, pero los requisitos de hardware son extremos &amp;ndash;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Q8&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q6_K_M&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q6_K_S&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q6&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q5_K_M&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q5_K_S&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q5&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;ndash; Este es el punto dulce típico &amp;ndash;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Q4_K_M&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q4_K_S&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q4&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;ndash; Por debajo de este punto, la pérdida de calidad empieza a verse &amp;ndash;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Q3_K_M&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q3_K_S&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q3&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q2_K_M&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q2_K_S&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q2&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si quieres una regla corta: empieza con &lt;code&gt;Q8&lt;/code&gt; o &lt;code&gt;Q6_K_M&lt;/code&gt;; baja a &lt;code&gt;Q5&lt;/code&gt; o &lt;code&gt;Q4_K_M&lt;/code&gt; solo cuando sea necesario.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Cómo acceder a una API local de Ollama por LAN en Windows</title>
        <link>https://knightli.com/es/2026/04/11/ollama-api-lan-access-windows/</link>
        <pubDate>Sat, 11 Apr 2026 16:43:52 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/11/ollama-api-lan-access-windows/</guid>
        <description>&lt;p&gt;Si quieres que otros dispositivos de la misma LAN accedan a tu API local de Ollama, sigue estos pasos.&lt;/p&gt;
&lt;h2 id=&#34;configurar-el-host-de-escucha&#34;&gt;Configurar el host de escucha
&lt;/h2&gt;&lt;p&gt;Primero, configura Ollama para escuchar en todas las interfaces de red:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;OLLAMA_HOST=0.0.0.0:11434&lt;/code&gt;&lt;/p&gt;
&lt;h2 id=&#34;abrir-el-firewall&#34;&gt;Abrir el firewall
&lt;/h2&gt;&lt;p&gt;En la configuración avanzada de Windows Firewall, crea una regla de entrada y permite el puerto objetivo, por ejemplo &lt;code&gt;8080&lt;/code&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Pulsa Win + S, busca y abre &amp;ldquo;Windows Defender Firewall&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;Haz clic en &amp;ldquo;Advanced settings&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;Selecciona &amp;ldquo;Inbound Rules&amp;rdquo; -&amp;gt; &amp;ldquo;New Rule&amp;hellip;&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;Elige &amp;ldquo;Port&amp;rdquo; y haz clic en &amp;ldquo;Next&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;Selecciona el protocolo, normalmente TCP, introduce el puerto en &amp;ldquo;Specific local ports&amp;rdquo;, por ejemplo &lt;code&gt;8080&lt;/code&gt;, y haz clic en &amp;ldquo;Next&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;Elige &amp;ldquo;Allow the connection&amp;rdquo; y haz clic en &amp;ldquo;Next&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;En &amp;ldquo;Profile&amp;rdquo;, selecciona Domain, Private y Public, y haz clic en &amp;ldquo;Next&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;Pon un nombre a la regla, por ejemplo &lt;code&gt;OpenPort8080&lt;/code&gt;, y haz clic en &amp;ldquo;Finish&amp;rdquo;.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;ejecutar-ollama&#34;&gt;Ejecutar Ollama
&lt;/h2&gt;&lt;p&gt;Ejecuta el modelo con Ollama.&lt;/p&gt;
&lt;h2 id=&#34;acceder-al-modelo-mediante-la-api&#34;&gt;Acceder al modelo mediante la API
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl http://192.168.x.xxx:11434/api/generate -d &lt;span class=&#34;s1&#34;&gt;&amp;#39;{
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s1&#34;&gt;  &amp;#34;model&amp;#34;: &amp;#34;gemma4&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s1&#34;&gt;  &amp;#34;prompt&amp;#34;: &amp;#34;¿Qué modelo es este?&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s1&#34;&gt;}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
        </item>
        <item>
        <title>Qué modelos impulsan las fotos AI de fnOS: pila de caras, objetos y búsqueda semántica</title>
        <link>https://knightli.com/es/2026/04/11/fnos-ai-photo-model-stack/</link>
        <pubDate>Sat, 11 Apr 2026 08:27:57 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/11/fnos-ai-photo-model-stack/</guid>
        <description>&lt;p&gt;La función de fotos AI en Feiniu NAS (fnOS) normalmente se construye integrando modelos open source convencionales, no entrenando desde cero todos los algoritmos principales.&lt;/p&gt;
&lt;h2 id=&#34;1-reconocimiento-facial-insightface&#34;&gt;1) Reconocimiento facial: InsightFace
&lt;/h2&gt;&lt;p&gt;Para las funciones relacionadas con caras, InsightFace suele ser el núcleo.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Método común de aprendizaje de características: ArcFace&lt;/li&gt;
&lt;li&gt;Papel principal: detección de rostros, extracción de embeddings, clustering y reconocimiento de personas&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;2-detección-de-objetos-y-comprensión-de-escenas-familia-yolo&#34;&gt;2) Detección de objetos y comprensión de escenas: familia YOLO
&lt;/h2&gt;&lt;p&gt;La detección de objetos en fotos, como gatos, perros, coches o computadoras, y parte de la comprensión de escenas suelen gestionarse con modelos YOLO, a menudo YOLOv8 o variantes ligeras.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ventaja: buen equilibrio entre precisión y velocidad&lt;/li&gt;
&lt;li&gt;Encaje: entornos NAS de borde con capacidad de cómputo limitada&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;3-búsqueda-semántica-clip--chinese-clip&#34;&gt;3) Búsqueda semántica: CLIP / Chinese-CLIP
&lt;/h2&gt;&lt;p&gt;Una capacidad clave es la búsqueda de fotos con lenguaje natural, por ejemplo &amp;ldquo;un perro en el césped&amp;rdquo; o &amp;ldquo;un hombre con gafas de sol&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;La implementación típica usa CLIP:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;las imágenes y los textos se proyectan al mismo espacio vectorial&lt;/li&gt;
&lt;li&gt;en despliegues chinos, normalmente se combina con Chinese-CLIP o variantes localizadas similares&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Una forma sencilla de ver la pila de fotos AI de fnOS:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;InsightFace para caras&lt;/li&gt;
&lt;li&gt;YOLO para objetos y escenas&lt;/li&gt;
&lt;li&gt;CLIP para alinear lenguaje humano e imagen&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El valor principal está en la integración de ingeniería, la localización y la optimización con aceleración por hardware, más que en inventar modelos base desde cero.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Guía local de Gemma 4: de ejecutarlo con un comando a integrarlo en desarrollo</title>
        <link>https://knightli.com/es/2026/04/10/gemma4-local-runtime-options/</link>
        <pubDate>Fri, 10 Apr 2026 22:54:17 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/10/gemma4-local-runtime-options/</guid>
        <description>&lt;p&gt;Si quieres ejecutar Gemma 4 en local, puedes elegir entre cuatro rutas prácticas según tu objetivo y tu hardware.&lt;/p&gt;
&lt;h2 id=&#34;1-inicio-más-rápido-ollama-recomendado&#34;&gt;1) Inicio más rápido: Ollama (recomendado)
&lt;/h2&gt;&lt;p&gt;Es la opción con menos fricción para pruebas rápidas, chat diario y uso de API local.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama run gemma4
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Puntos clave:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Funciona en Windows, macOS y Linux&lt;/li&gt;
&lt;li&gt;Gestiona automáticamente la aceleración por hardware&lt;/li&gt;
&lt;li&gt;Ofrece una API local compatible con el estilo de OpenAI&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;2-flujo-con-interfaz-gráfica-lm-studio--unsloth-studio&#34;&gt;2) Flujo con interfaz gráfica: LM Studio / Unsloth Studio
&lt;/h2&gt;&lt;p&gt;Si prefieres una UI de escritorio en lugar de comandos de terminal:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;LM Studio: permite buscar y ejecutar variantes cuantizadas de Gemma 4 desde Hugging Face, por ejemplo 4-bit u 8-bit, con visibilidad del uso de recursos.&lt;/li&gt;
&lt;li&gt;Unsloth Studio: soporta inferencia y fine-tuning con poca VRAM, a menudo más cómodo para GPUs de 6GB-8GB.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;3-equipos-modestos-y-máximo-control-llamacpp&#34;&gt;3) Equipos modestos y máximo control: llama.cpp
&lt;/h2&gt;&lt;p&gt;Buena opción para hardware antiguo, escenarios centrados en CPU o usuarios que quieren controlar más parámetros de inferencia.&lt;/p&gt;
&lt;p&gt;Con archivos de modelo &lt;code&gt;.gguf&lt;/code&gt; y cuantización, Gemma 4 puede funcionar con presupuestos de hardware mucho más bajos.&lt;/p&gt;
&lt;h2 id=&#34;4-integración-de-desarrollo-transformers--vllm&#34;&gt;4) Integración de desarrollo: Transformers / vLLM
&lt;/h2&gt;&lt;p&gt;Si necesitas integrar Gemma 4 en tu propia aplicación:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Transformers: integración directa en proyectos Python&lt;/li&gt;
&lt;li&gt;vLLM: inferencia de alto rendimiento para entornos GPU más potentes&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;selección-rápida&#34;&gt;Selección rápida
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Necesidad&lt;/th&gt;
          &lt;th&gt;Herramientas recomendadas&lt;/th&gt;
          &lt;th&gt;Requisito de hardware&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Solo quiero ejecutarlo ya&lt;/td&gt;
          &lt;td&gt;Ollama&lt;/td&gt;
          &lt;td&gt;Bajo&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Prefiero una interfaz tipo ChatGPT&lt;/td&gt;
          &lt;td&gt;LM Studio&lt;/td&gt;
          &lt;td&gt;Medio&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Tengo VRAM limitada (6GB-8GB)&lt;/td&gt;
          &lt;td&gt;Unsloth / llama.cpp&lt;/td&gt;
          &lt;td&gt;Bajo&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Estoy creando aplicaciones locales de AI&lt;/td&gt;
          &lt;td&gt;Ollama / Transformers / vLLM&lt;/td&gt;
          &lt;td&gt;Medio a alto&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Necesito fine-tuning&lt;/td&gt;
          &lt;td&gt;Unsloth Studio&lt;/td&gt;
          &lt;td&gt;Medio a alto&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;sugerencia-de-tamaño-de-modelo&#34;&gt;Sugerencia de tamaño de modelo
&lt;/h2&gt;&lt;p&gt;Gemma 4 llega en varios tamaños, por ejemplo E2B, E4B y 31B.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;En portátiles comunes, empieza por E2B/E4B cuantizados&lt;/li&gt;
&lt;li&gt;Prueba variantes más grandes solo cuando tu flujo base ya sea estable&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>¿Abandonar MCP? Por qué CLI se está convirtiendo en la capa de herramientas predeterminada para agentes</title>
        <link>https://knightli.com/es/2026/04/10/mcp-vs-cli-for-agents/</link>
        <pubDate>Fri, 10 Apr 2026 21:55:12 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/10/mcp-vs-cli-for-agents/</guid>
        <description>&lt;p&gt;Durante el último año, el debate sobre las cadenas de herramientas para agentes se ha concentrado cada vez más en una pregunta:&lt;/p&gt;
&lt;p&gt;¿MCP (Model Context Protocol) simplifica las llamadas a herramientas, o vuelve más complejas tareas que antes eran simples?&lt;/p&gt;
&lt;p&gt;Para la mayoría de tareas cotidianas de ingeniería, CLI se está convirtiendo en la opción predeterminada más práctica.&lt;/p&gt;
&lt;h2 id=&#34;la-diferencia-de-coste-no-es-un-problema-de-ux-sino-de-orden-de-magnitud&#34;&gt;La diferencia de coste no es un problema de UX, sino de orden de magnitud
&lt;/h2&gt;&lt;p&gt;La mayor presión práctica de MCP es el gasto de tokens.&lt;/p&gt;
&lt;p&gt;En escenarios comunes, MCP suele tener que cargar grandes esquemas de herramientas antes de ejecutar la tarea real. Tomando como ejemplo un GitHub MCP Server, solo la inicialización puede consumir decenas de miles de tokens. En tareas largas, esto reduce directamente el presupuesto de contexto.&lt;/p&gt;
&lt;p&gt;Las pruebas de la comunidad apuntan una y otra vez a la misma conclusión:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;una llamada MCP suele costar varias veces, o incluso decenas de veces, más que CLI&lt;/li&gt;
&lt;li&gt;la recuperación tras fallos también es más cara, porque hay que reconectar y recargar contexto&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto no es simplemente &amp;ldquo;un poco más lento&amp;rdquo;. Escala hasta convertirse en problemas de coste de API, latencia y estabilidad.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-los-modelos-son-naturalmente-mejores-usando-cli&#34;&gt;Por qué los modelos son naturalmente mejores usando CLI
&lt;/h2&gt;&lt;p&gt;Un hecho que se pasa por alto con frecuencia es la distribución de entrenamiento.&lt;/p&gt;
&lt;p&gt;Los LLM han visto enormes cantidades de texto de terminal durante el entrenamiento: comandos, salidas, errores, scripts y man pages. En otras palabras, la interacción por CLI ya está cerca del patrón de entrada nativo del modelo.&lt;/p&gt;
&lt;p&gt;En cambio, el estilo JSON-RPC y los tool schemas de MCP solo se popularizaron a gran escala en los últimos años. Los modelos pueden aprenderlo, por supuesto, pero la familiaridad y la eficiencia de compresión suelen ser peores que en patrones CLI con décadas de corpus histórico.&lt;/p&gt;
&lt;p&gt;Esto también explica por qué muchas veces:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;para el mismo objetivo, los comandos CLI son más cortos&lt;/li&gt;
&lt;li&gt;la salida es más fácil de usar para seguir razonando&lt;/li&gt;
&lt;li&gt;las rutas de recuperación de errores son más estables&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;seguridad-y-aislamiento-mcp-aún-tiene-tarea-pendiente&#34;&gt;Seguridad y aislamiento: MCP aún tiene tarea pendiente
&lt;/h2&gt;&lt;p&gt;MCP no es incapaz de ser seguro, pero su ecosistema todavía está en una etapa temprana.&lt;/p&gt;
&lt;p&gt;Las preocupaciones habituales incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tool Poisoning en descripciones&lt;/li&gt;
&lt;li&gt;deriva de comportamiento del servicio, o Rug Pull&lt;/li&gt;
&lt;li&gt;sobrescritura por herramientas con el mismo nombre, o Shadowing&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;CLI también tiene riesgos de seguridad, como inyección, abuso de privilegios y riesgos de rutas. Pero su modelo de procesos, límites de permisos y cadena de auditoría han sido validados durante décadas de práctica de ingeniería. En producción, esa previsibilidad importa.&lt;/p&gt;
&lt;h2 id=&#34;esto-no-significa-que-mcp-no-tenga-valor&#34;&gt;Esto no significa que MCP no tenga valor
&lt;/h2&gt;&lt;p&gt;No creo que MCP deba abandonarse.&lt;/p&gt;
&lt;p&gt;Una posición más razonable es:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CLI se encarga de la capa de ejecución: local, baja latencia y llamadas frecuentes&lt;/li&gt;
&lt;li&gt;MCP se encarga de la capa de conexión: descubrimiento de servicios remotos, autenticación unificada, auditoría y multitenencia&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Es la arquitectura híbrida que suele resumirse como &lt;code&gt;CLI + MCP Gateway&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Cuando hay que integrar muchos sistemas remotos y aplicar gobierno de permisos y auditoría de cumplimiento, MCP sigue teniendo un valor claro. Pero para &amp;ldquo;ayudar a un Agent a completar tareas de desarrollo rápidamente&amp;rdquo;, CLI-first suele encajar mejor con los límites actuales de capacidad de los modelos.&lt;/p&gt;
&lt;p&gt;En la realidad de ingeniería actual, CLI se parece más al idioma de trabajo nativo de un Agent; MCP encaja mejor como protocolo de conexión que como único protocolo de ejecución.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Guia rapida de PersonaPlex: habla conversacional full-duplex con control de persona y voz</title>
        <link>https://knightli.com/es/2026/04/10/personaplex-full-duplex-speech-model-guide/</link>
        <pubDate>Fri, 10 Apr 2026 11:34:38 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/10/personaplex-full-duplex-speech-model-guide/</guid>
        <description>&lt;p&gt;PersonaPlex es un modelo conversacional de voz a voz en tiempo real y full-duplex. Ofrece dos dimensiones principales de control:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;prompts de texto para controlar el rol o la persona&lt;/li&gt;
&lt;li&gt;condicionamiento de audio para controlar el estilo de voz&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esta construido sobre la arquitectura y los pesos de Moshi, con el objetivo de lograr interacciones habladas de baja latencia, mas naturales y con un comportamiento de persona consistente.&lt;/p&gt;
&lt;h2 id=&#34;para-que-sirve&#34;&gt;Para Que Sirve
&lt;/h2&gt;&lt;p&gt;Los casos de uso comunes incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;asistentes de voz en tiempo real&lt;/li&gt;
&lt;li&gt;interacciones de rol tipo atencion al cliente&lt;/li&gt;
&lt;li&gt;demos conversacionales de baja latencia&lt;/li&gt;
&lt;li&gt;experimentos de control de persona + voz&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;requisitos-previos&#34;&gt;Requisitos Previos
&lt;/h2&gt;&lt;p&gt;Instala la biblioteca de desarrollo del codec de audio Opus:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Ubuntu/Debian&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install libopus-dev
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Fedora/RHEL&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo dnf install opus-devel
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;instalacion-y-entorno&#34;&gt;Instalacion y Entorno
&lt;/h2&gt;&lt;p&gt;Instala desde el repositorio:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install moshi/.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Para GPU Blackwell, se puede usar un paso adicional:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu130
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Despues de aceptar la licencia del modelo PersonaPlex en Hugging Face, configura tu token:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;HF_TOKEN&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&amp;lt;YOUR_HUGGINGFACE_TOKEN&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;lanzar-el-servidor-en-vivo&#34;&gt;Lanzar el Servidor en Vivo
&lt;/h2&gt;&lt;p&gt;Arranque estandar (SSL temporal):&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;SSL_DIR&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;mktemp -d&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; python -m moshi.server --ssl &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$SSL_DIR&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si la memoria de la GPU es limitada, activa la descarga a CPU (&lt;code&gt;accelerate&lt;/code&gt; requerido):&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install accelerate
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;SSL_DIR&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;mktemp -d&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; python -m moshi.server --ssl &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$SSL_DIR&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; --cpu-offload
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Usa &lt;code&gt;localhost:8998&lt;/code&gt; para ejecuciones locales, o el enlace de acceso impreso para entornos remotos.&lt;/p&gt;
&lt;h2 id=&#34;evaluacion-offline&#34;&gt;Evaluacion Offline
&lt;/h2&gt;&lt;p&gt;El script offline consume un wav de entrada y genera un wav de salida con la misma duracion:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;HF_TOKEN&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&amp;lt;TOKEN&amp;gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python -m moshi.offline &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --voice-prompt &lt;span class=&#34;s2&#34;&gt;&amp;#34;NATF2.pt&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --input-wav &lt;span class=&#34;s2&#34;&gt;&amp;#34;assets/test/input_assistant.wav&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --seed &lt;span class=&#34;m&#34;&gt;42424242&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --output-wav &lt;span class=&#34;s2&#34;&gt;&amp;#34;output.wav&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --output-text &lt;span class=&#34;s2&#34;&gt;&amp;#34;output.json&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;HF_TOKEN&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&amp;lt;TOKEN&amp;gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python -m moshi.offline &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --voice-prompt &lt;span class=&#34;s2&#34;&gt;&amp;#34;NATM1.pt&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --text-prompt &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;cat assets/test/prompt_service.txt&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --input-wav &lt;span class=&#34;s2&#34;&gt;&amp;#34;assets/test/input_service.wav&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --seed &lt;span class=&#34;m&#34;&gt;42424242&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --output-wav &lt;span class=&#34;s2&#34;&gt;&amp;#34;output.wav&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --output-text &lt;span class=&#34;s2&#34;&gt;&amp;#34;output.json&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;etiquetas-de-voz-integradas&#34;&gt;Etiquetas de Voz Integradas
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Natural(female): NATF0, NATF1, NATF2, NATF3&lt;/li&gt;
&lt;li&gt;Natural(male): NATM0, NATM1, NATM2, NATM3&lt;/li&gt;
&lt;li&gt;Variety(female): VARF0, VARF1, VARF2, VARF3, VARF4&lt;/li&gt;
&lt;li&gt;Variety(male): VARM0, VARM1, VARM2, VARM3, VARM4&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;consejos-para-prompts&#34;&gt;Consejos Para Prompts
&lt;/h2&gt;&lt;p&gt;La cobertura de entrenamiento incluye principalmente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;rol de asistente&lt;/li&gt;
&lt;li&gt;roles de atencion al cliente&lt;/li&gt;
&lt;li&gt;conversaciones informales&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Consejos practicos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;define primero la identidad del rol y luego agrega el contexto de la tarea&lt;/li&gt;
&lt;li&gt;manten los prompts concisos para reducir la deriva de persona&lt;/li&gt;
&lt;li&gt;reutiliza el mismo voice prompt para comparaciones estables&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;PersonaPlex destaca no porque entregue una respuesta mas inteligente, sino porque mantiene un comportamiento de persona y voz mas consistente en interacciones de voz en tiempo real.&lt;/p&gt;
&lt;p&gt;Para agentes de voz full-duplex, es una opcion practica que vale la pena probar y comparar.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>La idea de Harness de Anthropic: la infraestructura de agentes avanza hacia un Agent OS</title>
        <link>https://knightli.com/es/2026/04/10/anthropic-harness-agent-os/</link>
        <pubDate>Fri, 10 Apr 2026 09:22:56 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/10/anthropic-harness-agent-os/</guid>
        <description>&lt;p&gt;Anthropic publicó recientemente una práctica de ingeniería sobre Harness. En la superficie habla de implementación de producto, pero en realidad responde a una pregunta de más largo plazo:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Cuando las capacidades de los modelos cambian continuamente, ¿qué capas de un sistema Agent deben permanecer estables y cuáles deberían poder reemplazarse con rapidez?&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;juicio-central&#34;&gt;Juicio Central
&lt;/h2&gt;&lt;p&gt;Mi lectura principal de este artículo es que la infraestructura de agentes se parecerá cada vez más a un &lt;strong&gt;Agent OS&lt;/strong&gt; ligero.&lt;/p&gt;
&lt;p&gt;El punto no es &amp;ldquo;fijar en código el mejor flujo de hoy&amp;rdquo;, sino &amp;ldquo;definir abstracciones de sistema estables a largo plazo&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-esto-importa&#34;&gt;Por Qué Esto Importa
&lt;/h2&gt;&lt;p&gt;Muchos frameworks de agentes suelen tener estos problemas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;convierten carencias temporales del modelo en arquitectura permanente&lt;/li&gt;
&lt;li&gt;confunden la ingeniería de prompts con límites del sistema&lt;/li&gt;
&lt;li&gt;convierten un parche útil una vez en una dependencia de largo plazo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Los modelos se harán más fuertes. Un parche razonable hoy puede ser deuda técnica mañana.&lt;/p&gt;
&lt;h2 id=&#34;la-solución-de-anthropic-de-un-harness-concreto-a-un-meta-harness&#34;&gt;La Solución de Anthropic: de un Harness Concreto a un Meta-Harness
&lt;/h2&gt;&lt;p&gt;Esta idea no promete una forma fija de orquestación, sino que abstrae tres interfaces estables:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;session&lt;/code&gt;: historial recuperable de eventos y estado&lt;/li&gt;
&lt;li&gt;&lt;code&gt;harness&lt;/code&gt;: bucle de razonamiento y planificación (brain)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sandbox&lt;/code&gt;: entorno de ejecución y capacidades de herramientas (hands)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Una vez separadas, el sistema es más fácil de reemplazar, recuperar y ampliar.&lt;/p&gt;
&lt;h2 id=&#34;1-session-no-es-la-ventana-de-contexto&#34;&gt;1) Session No Es la Ventana de Contexto
&lt;/h2&gt;&lt;p&gt;Una idea clave es: &lt;strong&gt;Session no equivale al contexto del modelo.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Session debería ser un registro de eventos consultable, reproducible y recuperable, no una concatenación del historial que se introduce directamente en el modelo.&lt;/p&gt;
&lt;p&gt;El valor de hacerlo así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;trimming no significa que la historia desaparezca&lt;/li&gt;
&lt;li&gt;compaction no significa que los hechos se pierdan&lt;/li&gt;
&lt;li&gt;la recuperación tras un fallo puede volver a la capa de eventos, en vez de depender de una memoria resumida&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;2-harness-es-una-capa-de-orquestación-reemplazable&#34;&gt;2) Harness Es una Capa de Orquestación Reemplazable
&lt;/h2&gt;&lt;p&gt;Harness debería centrarse en la planificación y la ejecución, no en poseer estado de negocio.&lt;/p&gt;
&lt;p&gt;Una interfaz ideal se parece más a:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;execute(name, input) -&amp;gt; string&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Esto significa que el modelo solo necesita saber &amp;ldquo;qué capacidad puedo invocar&amp;rdquo;, sin quedar atado a un dispositivo, contenedor o sistema operativo concreto.&lt;/p&gt;
&lt;h2 id=&#34;3-sandbox-son-las-manos-no-el-cerebro&#34;&gt;3) Sandbox Son las &amp;ldquo;Manos&amp;rdquo;, No el &amp;ldquo;Cerebro&amp;rdquo;
&lt;/h2&gt;&lt;p&gt;Cuando brain y hands están desacoplados:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;el entorno de herramientas puede evolucionar de forma independiente&lt;/li&gt;
&lt;li&gt;distintas infraestructuras pueden conectarse en paralelo&lt;/li&gt;
&lt;li&gt;no hace falta precalentar un entorno de ejecución completo para cada sesión&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto mejora directamente el arranque y la capacidad de escalar.&lt;/p&gt;
&lt;h2 id=&#34;ideas-sobre-rendimiento-y-seguridad&#34;&gt;Ideas Sobre Rendimiento y Seguridad
&lt;/h2&gt;&lt;p&gt;Esta separación normalmente mejora a la vez el rendimiento y la seguridad.&lt;/p&gt;
&lt;p&gt;En rendimiento:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;se puede iniciar primero el brain y levantar las hands bajo demanda&lt;/li&gt;
&lt;li&gt;se reduce la latencia hasta el primer token (TTFT)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En seguridad:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;no se exponen credenciales de alto valor directamente al modelo&lt;/li&gt;
&lt;li&gt;se usan proxy / vault controlados para acceso indirecto a credenciales&lt;/li&gt;
&lt;li&gt;los límites de seguridad se construyen sobre restricciones del sistema, no sobre &amp;ldquo;el modelo no debería poder hacerlo&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;enlaces-relacionados&#34;&gt;Enlaces Relacionados
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://claude.com/blog/claude-managed-agents&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Usage patterns and customer examples&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.anthropic.com/engineering/managed-agents&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;The design of Claude Managed Agents&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://platform.claude.com/docs/en/managed-agents/quickstart&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Onboarding, quickstart, overview of the CLI and SKDs &lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>OpenClaw y Agent Harness: por qué parece AGI</title>
        <link>https://knightli.com/es/2026/04/10/openclaw-agent-architecture-enterprise-ai/</link>
        <pubDate>Fri, 10 Apr 2026 09:16:17 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/10/openclaw-agent-architecture-enterprise-ai/</guid>
        <description>&lt;p&gt;Mucha gente, al entrar en contacto por primera vez con OpenClaw, siente que &amp;ldquo;se parece más a un compañero que hace cosas que a un chatbot&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Esa sensación no es misteriosa. La clave está en que OpenClaw no es un salto de capacidad de un único modelo, sino un &lt;strong&gt;Agent Harness&lt;/strong&gt; completo.&lt;/p&gt;
&lt;h2 id=&#34;conclusión-primero&#34;&gt;Conclusión primero
&lt;/h2&gt;&lt;p&gt;La esencia de OpenClaw puede resumirse así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El modelo se encarga de entender y decidir&lt;/li&gt;
&lt;li&gt;El Harness se encarga de memoria, herramientas, disparadores, ejecución y salida&lt;/li&gt;
&lt;li&gt;Ambos colaboran mediante un bucle, generando la experiencia de &amp;ldquo;acción continua&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por eso la razón central de que &amp;ldquo;parezca AGI&amp;rdquo; no es que el modelo se haya vuelto omnipotente de pronto, sino que la ingeniería del sistema amplifica la ejecutabilidad del modelo.&lt;/p&gt;
&lt;h2 id=&#34;qué-es-harness&#34;&gt;Qué es Harness
&lt;/h2&gt;&lt;p&gt;Puedes entender Harness como un &amp;ldquo;exoesqueleto&amp;rdquo; puesto sobre el modelo.&lt;/p&gt;
&lt;p&gt;Un LLM por sí solo normalmente solo puede dar una respuesta dentro de una solicitud. El Harness completa estas capacidades:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Gestión de sesión y estado: conecta tareas de varias rondas&lt;/li&gt;
&lt;li&gt;Mecanismo de memoria: guarda y recupera contexto según necesidad&lt;/li&gt;
&lt;li&gt;Sistema de herramientas: llama navegador, terminal, archivos y APIs externas&lt;/li&gt;
&lt;li&gt;Mecanismo de disparo: se despierta por temporizador o evento, sin tener que esperar siempre una pregunta humana&lt;/li&gt;
&lt;li&gt;Canal de salida: escribe resultados de vuelta al sistema, no solo devuelve un texto&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Cuando estas capacidades se integran en un mismo bucle, el modelo pasa de &amp;ldquo;respondedor&amp;rdquo; a &amp;ldquo;ejecutor&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-openclaw-parece-distinto&#34;&gt;Por qué OpenClaw parece distinto
&lt;/h2&gt;&lt;p&gt;El chatbot tradicional es &amp;ldquo;preguntas una vez, responde una vez&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;OpenClaw se parece más a &amp;ldquo;observa -&amp;gt; llama herramientas -&amp;gt; mira resultados -&amp;gt; decide de nuevo&amp;rdquo;. Una vez que el bucle se establece, muestra capacidad de avanzar tareas de forma continua.&lt;/p&gt;
&lt;p&gt;Esto también es lo más valioso para aprender de OpenClaw:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Demuestra que la experiencia Agent viene principalmente del diseño de arquitectura&lt;/li&gt;
&lt;li&gt;Divide la &amp;ldquo;autonomía&amp;rdquo; en módulos que pueden construirse con ingeniería&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;valor-y-límites&#34;&gt;Valor y límites
&lt;/h2&gt;&lt;p&gt;La ventaja de OpenClaw es ser general y flexible, pero el coste también es claro:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cuanto más contexto y definiciones de herramientas haya, mayor será el coste&lt;/li&gt;
&lt;li&gt;Cuanto más general sea el sistema, más complejos serán el debugging y la gobernanza&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En escenarios de producción, muchos equipos elegirán Agent más pequeños y especializados, no un &amp;ldquo;agente todopoderoso&amp;rdquo;.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Compartir un Agent Skill para recortar y normalizar imágenes de producto de e-commerce</title>
        <link>https://knightli.com/es/2026/04/09/product-cutout-normalize-agent-skill-guide/</link>
        <pubDate>Thu, 09 Apr 2026 21:43:50 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/09/product-cutout-normalize-agent-skill-guide/</guid>
        <description>&lt;p&gt;&lt;code&gt;product-cutout-normalize&lt;/code&gt; es un Agent Skill para imágenes de producto.&lt;/p&gt;
&lt;p&gt;Procesa imágenes originales y las convierte en imágenes cuadradas con fondo transparente y especificaciones uniformes. Sus reglas predeterminadas son:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Lienzo &lt;code&gt;1024x1024&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Fondo transparente&lt;/li&gt;
&lt;li&gt;Conservar el sujeto lo más completo posible&lt;/li&gt;
&lt;li&gt;Convertir automáticamente sujetos verticales a orientación horizontal&lt;/li&gt;
&lt;li&gt;Centrar el sujeto&lt;/li&gt;
&lt;li&gt;Normalizar el ancho visible del sujeto a &lt;code&gt;820px&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Es adecuado para materiales de e-commerce, bibliotecas de producto y preprocesamiento de imágenes para páginas de detalle.&lt;/p&gt;
&lt;h2 id=&#34;qué-problema-resuelve-este-skill&#34;&gt;Qué problema resuelve este skill
&lt;/h2&gt;&lt;p&gt;Después de un recorte básico, muchas imágenes de producto todavía tienen estos problemas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Restos de borde blanco o fondo gris claro&lt;/li&gt;
&lt;li&gt;Orientación horizontal/vertical del sujeto inconsistente&lt;/li&gt;
&lt;li&gt;Tamaño de lienzo inconsistente&lt;/li&gt;
&lt;li&gt;Tamaño del sujeto muy variable&lt;/li&gt;
&lt;li&gt;Pequeños puntos de ruido en áreas transparentes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Este skill procesa con un flujo fijo:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Recorte con Gemini&lt;/li&gt;
&lt;li&gt;Limpieza de fondo claro en los bordes&lt;/li&gt;
&lt;li&gt;Eliminación de pequeños fragmentos de ruido&lt;/li&gt;
&lt;li&gt;Rotación de imágenes verticales a horizontales&lt;/li&gt;
&lt;li&gt;Escalado según ancho objetivo&lt;/li&gt;
&lt;li&gt;Colocación en el centro de un lienzo transparente uniforme&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Las imágenes exportadas quedan más ordenadas y son más adecuadas para uso por lotes.&lt;/p&gt;
&lt;h2 id=&#34;escenarios-adecuados&#34;&gt;Escenarios adecuados
&lt;/h2&gt;&lt;p&gt;Encaja con estas necesidades:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Procesar fotos de producto por lotes&lt;/li&gt;
&lt;li&gt;Exportar PNG con fondo transparente de forma uniforme&lt;/li&gt;
&lt;li&gt;Unificar el tamaño visual principal&lt;/li&gt;
&lt;li&gt;Necesitar un flujo estable y repetible&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si solo procesas pocas imágenes, o si cada imagen necesita ajustar manualmente la composición, quizá no sea la herramienta más adecuada.&lt;/p&gt;
&lt;h2 id=&#34;inicio-rápido&#34;&gt;Inicio rápido
&lt;/h2&gt;&lt;p&gt;La forma más directa de ejecución:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.\.venv\Scripts\python.exe&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.codex\skills\product-cutout-normalize\scripts\run_pipeline.py&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;input_dir&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;output_dir&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;-overwrite&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Antes de ejecutar necesitas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GEMINI_API_KEY&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;google-genai&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Pillow&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Instalar dependencias:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;.\.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;venv&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Scripts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;python&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;exe&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-m&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;pip&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;install&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;google-genai&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;pillow&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Configurar variable de entorno:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$env:GEMINI_API_KEY&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;your_api_key&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;reglas-de-salida&#34;&gt;Reglas de salida
&lt;/h2&gt;&lt;p&gt;Salida predeterminada:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;PNG&lt;/code&gt; con fondo transparente&lt;/li&gt;
&lt;li&gt;Lienzo &lt;code&gt;1024x1024&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Ancho del sujeto &lt;code&gt;820px&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Sujeto centrado&lt;/li&gt;
&lt;li&gt;Se limpian pequeños puntos de ruido&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Así que no es solo un script de quitar fondo, sino más bien un script de organización de imágenes de producto.&lt;/p&gt;
&lt;h2 id=&#34;parámetros-principales&#34;&gt;Parámetros principales
&lt;/h2&gt;&lt;p&gt;Parámetros habituales:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;--model&lt;/code&gt;
Predeterminado: &lt;code&gt;gemini-2.5-flash-image&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--canvas-size&lt;/code&gt;
Tamaño del lienzo cuadrado de salida, predeterminado &lt;code&gt;1024&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--target-width&lt;/code&gt;
Ancho visible del sujeto, predeterminado &lt;code&gt;820&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--min-component-pixels&lt;/code&gt;
Fragmentos transparentes con menos píxeles que este valor se eliminan, predeterminado &lt;code&gt;500&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--overwrite&lt;/code&gt;
Sobrescribe directamente si el archivo de salida ya existe&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.\.venv\Scripts\python.exe&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.codex\skills\product-cutout-normalize\scripts\run_pipeline.py&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.\input&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.\output&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;-canvas-size&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;1280&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;-target-width&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;960&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;-overwrite&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;flujo-de-procesamiento&#34;&gt;Flujo de procesamiento
&lt;/h2&gt;&lt;p&gt;El flujo es simple:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Recorte con Gemini&lt;/li&gt;
&lt;li&gt;Limpieza de fondo claro en los bordes&lt;/li&gt;
&lt;li&gt;Eliminación de pequeños fragmentos de ruido&lt;/li&gt;
&lt;li&gt;Rotación de imágenes verticales a horizontales&lt;/li&gt;
&lt;li&gt;Escalado según ancho objetivo&lt;/li&gt;
&lt;li&gt;Colocación en el centro de un lienzo transparente uniforme&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;diferencia-frente-a-scripts-comunes-de-recorte&#34;&gt;Diferencia frente a scripts comunes de recorte
&lt;/h2&gt;&lt;p&gt;Comparado con un script común de eliminación de fondo, también trata:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Orientación uniforme del sujeto&lt;/li&gt;
&lt;li&gt;Tamaño uniforme del sujeto&lt;/li&gt;
&lt;li&gt;Tamaño uniforme del lienzo&lt;/li&gt;
&lt;li&gt;Limpieza de pequeños fragmentos de ruido&lt;/li&gt;
&lt;li&gt;Resultados más adecuados para colocarse directamente en una biblioteca de materiales&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;código-fuente-de-skillmd&#34;&gt;Código fuente de SKILL.md
&lt;/h2&gt;&lt;p&gt;Abajo se conserva el código fuente completo de &lt;code&gt;SKILL.md&lt;/code&gt;, sin cambios:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;42
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;43
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;44
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;45
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;46
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;47
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;48
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;49
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;50
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;51
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;52
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;53
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;54
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;name: product-cutout-normalize
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;description: Run a reusable Gemini product-image pipeline that removes backgrounds, preserves the full subject, rotates tall products to a horizontal orientation, centers them on a 1024x1024 transparent canvas, and normalizes the visible subject width to 820px. Use when the user wants a repeatable cutout-and-normalize workflow for product photos or asks to batch-process product images into standardized square PNG assets.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gh&#34;&gt;# Product Cutout Normalize
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Use this skill when product photos need the same deterministic finishing pipeline:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Gemini cutout from the original photo
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; border cleanup to transparent
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; preserve the full subject
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; rotate to horizontal when the subject is taller than it is wide
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; center on a &lt;span class=&#34;sb&#34;&gt;`1024x1024`&lt;/span&gt; transparent canvas
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; normalize the visible subject width to &lt;span class=&#34;sb&#34;&gt;`820px`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## Quick Start
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Run the bundled script:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;```powershell
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.\.venv\Scripts\python.exe&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.codex\skills\product-cutout-normalize\scripts\run_pipeline.py&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;input_dir&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;output_dir&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;-overwrite&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;```&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Required environment:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`GEMINI_API_KEY`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`google-genai`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`Pillow`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## Workflow
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;1.&lt;/span&gt; Confirm the request matches this standard pipeline. If the user asks for a different canvas size, subject width, or layout rule, pass explicit flags instead of changing the script.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;2.&lt;/span&gt; Run the bundled script on the input directory.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;3.&lt;/span&gt; If a result looks misaligned, inspect the alpha bounding box and small detached artifacts first; this pipeline already removes tiny alpha components by default.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;4.&lt;/span&gt; Report the exact input and output directories used, plus any non-default flags.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## Script
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Primary entry point:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`scripts/run_pipeline.py`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Key flags:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`--model`&lt;/span&gt;: Gemini image model, default &lt;span class=&#34;sb&#34;&gt;`gemini-2.5-flash-image`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`--canvas-size`&lt;/span&gt;: output square size, default &lt;span class=&#34;sb&#34;&gt;`1024`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`--target-width`&lt;/span&gt;: visible subject width after normalization, default &lt;span class=&#34;sb&#34;&gt;`820`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`--min-component-pixels`&lt;/span&gt;: remove detached alpha specks smaller than this, default &lt;span class=&#34;sb&#34;&gt;`500`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`--overwrite`&lt;/span&gt;: replace existing outputs in the destination directory
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## Repo Integration
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;If the current project already has [&lt;span class=&#34;nt&#34;&gt;`scripts/nano_banana_cutout.py`&lt;/span&gt;](&lt;span class=&#34;na&#34;&gt;/c:/Work/my_shop/scripts/nano_banana_cutout.py&lt;/span&gt;), prefer that repo script when the user wants the same pipeline inside this repository. Use the bundled skill script when the task is cross-project reuse or when you want the workflow to stay self-contained inside the skill.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;código-fuente-de-scriptsrun_pipelinepy&#34;&gt;Código fuente de scripts/run_pipeline.py
&lt;/h2&gt;&lt;p&gt;Abajo se conserva el código fuente completo de &lt;code&gt;scripts/run_pipeline.py&lt;/code&gt;, sin cambios:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;  1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 42
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 43
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 44
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 45
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 46
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 47
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 48
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 49
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 50
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 51
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 52
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 53
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 54
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 55
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 56
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 57
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 58
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 59
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 60
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 61
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 62
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 63
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 64
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 65
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 66
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 67
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 68
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 69
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 70
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 71
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 72
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 73
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 74
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 75
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 76
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 77
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 78
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 79
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 80
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 81
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 82
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 83
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 84
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 85
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 86
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 87
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 88
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 89
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 90
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 91
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 92
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 93
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 94
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 95
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 96
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 97
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 98
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 99
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;100
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;101
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;102
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;103
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;104
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;105
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;106
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;107
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;108
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;109
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;110
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;111
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;112
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;113
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;114
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;115
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;116
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;117
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;118
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;119
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;120
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;121
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;122
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;123
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;124
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;125
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;126
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;127
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;128
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;129
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;130
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;131
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;132
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;133
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;134
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;135
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;136
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;137
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;138
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;139
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;140
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;141
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;142
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;143
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;144
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;145
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;146
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;147
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;148
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;149
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;150
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;151
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;152
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;153
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;154
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;155
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;156
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;157
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;158
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;159
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;160
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;161
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;162
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;163
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;164
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;165
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;166
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;167
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;168
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;169
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;170
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;171
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;172
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;173
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;174
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;175
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;176
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;177
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;178
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;179
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;180
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;181
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;182
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;183
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;184
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;185
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;186
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;187
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;188
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;189
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;190
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;191
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;192
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;193
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;194
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;195
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;196
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;197
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;198
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;199
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;200
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;201
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;202
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;203
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;204
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;205
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;206
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;207
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;208
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;209
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;210
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;211
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;212
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;213
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;214
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;215
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;216
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;217
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;218
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;219
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;220
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;221
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;222
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;223
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;224
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;225
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;226
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;227
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;228
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;229
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;230
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;231
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;232
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;233
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;234
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;235
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;236
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;237
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;238
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;239
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;240
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;241
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;242
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;243
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;244
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;245
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;246
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;247
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;248
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;249
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;250
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;251
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;252
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;253
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;254
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;255
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;256
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;257
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;258
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;259
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;260
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;261
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;262
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;263
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;264
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;265
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;266
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;267
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;268
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;269
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;270
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;271
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;272
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;273
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;274
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;275
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;276
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;277
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;278
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;279
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;280
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;281
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;282
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;283
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;284
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;285
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;286
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;287
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;288
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;289
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;290
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;291
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;__future__&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;annotations&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;argparse&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;os&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;collections&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;deque&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;pathlib&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;PIL&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;try&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;google&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;genai&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;except&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;ImportError&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;exc&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;  &lt;span class=&#34;c1&#34;&gt;# pragma: no cover&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;raise&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;SystemExit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;Missing dependency: google-genai. Install it with &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;sa&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;#39;.\.venv\Scripts\python.exe -m pip install google-genai&amp;#39;.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;exc&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;PROMPT&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;Remove the entire background from this product photo and return only the product &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;on a fully transparent background as a PNG. Keep the full product intact, preserve &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;thin cable details, clean the inner loops and holes, and do not add any new objects &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;or shadows.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;DEFAULT_CANVAS_SIZE&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1024&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;DEFAULT_TARGET_WIDTH&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;820&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;DEFAULT_MIN_COMPONENT_PIXELS&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;500&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;SUPPORTED_EXTENSIONS&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;.jpg&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.jpeg&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.png&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.webp&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;is_light_background_pixel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;bool&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;brightness&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;r&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;g&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;spread&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;max&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;min&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;brightness&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;170&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;spread&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;35&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;to_pil_image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;image_obj&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;isinstance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;image_obj&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;image_obj&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;pil_image&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;getattr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;image_obj&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;_pil_image&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;isinstance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;pil_image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;pil_image&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;as_pil&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;getattr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;image_obj&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;pil_image&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;isinstance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;as_pil&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;as_pil&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;raise&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;TypeError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Unsupported image object type: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;type&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;image_obj&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;!r}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;make_transparent_from_borders&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;rgba&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;convert&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;RGBA&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;height&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;rgba&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;size&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;pixels&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;rgba&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;load&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;visited&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;tuple&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;queue&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;deque&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;tuple&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;deque&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;push_if_bg&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;visited&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;_&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;pixels&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;is_light_background_pixel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;visited&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;queue&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;append&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;x&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;range&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;push_if_bg&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;push_if_bg&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;height&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;range&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;height&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;push_if_bg&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;push_if_bg&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;width&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;while&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;queue&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;queue&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;popleft&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;nx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ny&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;nx&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;width&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ny&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;height&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;push_if_bg&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;nx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ny&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;visited&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;pixels&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;rgba&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;remove_small_components&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;min_component_pixels&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;min_component_pixels&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;rgba&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;convert&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;RGBA&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;alpha&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;rgba&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;getchannel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;A&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;height&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;rgba&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;size&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;alpha_pixels&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;alpha&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;load&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;rgba_pixels&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;rgba&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;load&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;visited&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;tuple&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;range&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;height&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;x&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;range&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;alpha_pixels&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;or&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;visited&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;k&#34;&gt;continue&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;queue&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;deque&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;tuple&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;deque&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;([(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;visited&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;component&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;list&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;tuple&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;while&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;queue&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;cx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;cy&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;queue&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;popleft&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;component&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;append&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;cx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;cy&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;nx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ny&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;cx&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;cy&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;cx&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;cy&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;cx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;cy&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;cx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;cy&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;nx&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;width&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ny&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;height&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;alpha_pixels&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;nx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ny&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;or&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;nx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ny&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;visited&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                            &lt;span class=&#34;k&#34;&gt;continue&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                        &lt;span class=&#34;n&#34;&gt;visited&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;nx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ny&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                        &lt;span class=&#34;n&#34;&gt;queue&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;append&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;nx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ny&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;len&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;component&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;min_component_pixels&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;px&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;py&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;component&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;n&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;_&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;rgba_pixels&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;px&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;py&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;n&#34;&gt;rgba_pixels&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;px&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;py&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;rgba&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;normalize_product_image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;target_width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;rgba&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;convert&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;RGBA&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;bbox&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;rgba&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;getchannel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;A&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;getbbox&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;bbox&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;new&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;RGBA&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;subject&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;rgba&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;crop&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;bbox&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;subject&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;height&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;subject&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;subject&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;subject&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;rotate&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;90&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;expand&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;resample&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Resampling&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;BICUBIC&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;rotated_bbox&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;subject&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;getchannel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;A&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;getbbox&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;rotated_bbox&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;subject&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;subject&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;crop&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;rotated_bbox&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;scale&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;target_width&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;subject&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;width&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;subject&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;subject&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;resize&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;target_width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;max&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;round&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;subject&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;height&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;scale&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)))),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Resampling&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;LANCZOS&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;canvas&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;new&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;RGBA&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;offset_x&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;subject&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;//&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;offset_y&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;subject&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;height&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;//&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;canvas&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;alpha_composite&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;subject&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;offset_x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;offset_y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;canvas&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;finalize_product_image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;target_width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;min_component_pixels&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;transparent&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;make_transparent_from_borders&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;cleaned&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;remove_small_components&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;transparent&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;min_component_pixels&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;normalize_product_image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;cleaned&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;target_width&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;target_width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;save_first_image_part&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;target_width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;min_component_pixels&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parts&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;getattr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;parts&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;parts&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;getattr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;candidates&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;parts&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;candidates&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;parts&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;parts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;raise&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;RuntimeError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Model returned no content parts.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;part&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;parts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;inline_data&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;getattr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;part&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;inline_data&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;inline_data&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;isinstance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;part&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;dict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;inline_data&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;part&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;inline_data&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;inline_data&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;continue&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;hasattr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;part&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;as_image&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;image&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;to_pil_image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;part&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;as_image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;parent&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;mkdir&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;parents&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;exist_ok&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;finalize_product_image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;target_width&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;target_width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;min_component_pixels&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;min_component_pixels&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;save&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;getattr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;inline_data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;data&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;parent&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;mkdir&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;parents&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;exist_ok&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;with&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;open&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;wb&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;handle&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;handle&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;write&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;with&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;open&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;processed&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;finalize_product_image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;n&#34;&gt;target_width&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;target_width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;n&#34;&gt;min_component_pixels&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;min_component_pixels&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;processed&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;save&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;with_suffix&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;.png&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;suffix&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;lower&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;!=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.png&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;unlink&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;missing_ok&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;raise&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;RuntimeError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Model returned text only and no edited image.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;process_image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;src&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;target_width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;min_component_pixels&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;with&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;open&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;src&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;convert&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;RGBA&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;response&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;models&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;generate_content&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;contents&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;PROMPT&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;save_first_image_part&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;target_width&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;target_width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;min_component_pixels&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;min_component_pixels&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;parse_args&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;argparse&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Namespace&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;argparse&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ArgumentParser&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;description&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Cut out product images with Gemini and normalize them to square transparent PNGs.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add_argument&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;input_dir&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;type&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add_argument&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;output_dir&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;type&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add_argument&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;--model&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;default&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;gemini-2.5-flash-image&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add_argument&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;--canvas-size&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;type&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;default&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;DEFAULT_CANVAS_SIZE&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add_argument&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;--target-width&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;type&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;default&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;DEFAULT_TARGET_WIDTH&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add_argument&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;--min-component-pixels&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;type&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;default&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;DEFAULT_MIN_COMPONENT_PIXELS&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add_argument&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;--overwrite&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;action&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;store_true&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;parse_args&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;parse_args&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;api_key&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;os&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;environ&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;GEMINI_API_KEY&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;api_key&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;raise&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;SystemExit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Missing GEMINI_API_KEY environment variable.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;input_dir&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;is_dir&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;():&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;raise&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;SystemExit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Input directory does not exist: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;input_dir&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;raise&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;SystemExit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;--canvas-size must be positive.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;target_width&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;or&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;target_width&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;raise&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;SystemExit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;--target-width must be positive and no larger than --canvas-size.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;min_component_pixels&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;raise&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;SystemExit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;--min-component-pixels must be &amp;gt;= 0.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;output_dir&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;mkdir&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;parents&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;exist_ok&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;genai&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Client&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;api_key&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;api_key&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;src&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;sorted&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;input_dir&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;iterdir&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;src&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;is_file&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;or&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;src&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;suffix&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;lower&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;SUPPORTED_EXTENSIONS&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;continue&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;output_dir&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt; &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;src&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stem&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;.png&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;exists&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;overwrite&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;skip &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;continue&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;process_image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;src&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;canvas_size&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;target_width&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;target_width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;min_component_pixels&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;min_component_pixels&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;vm&#34;&gt;__name__&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;__main__&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Descargar adjunto:
&lt;a class=&#34;link&#34; href=&#34;product-cutout-normalize.7z&#34; &gt;product-cutout-normalize.7z&lt;/a&gt;&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Cómo llamar a Google Nano Banana para recortar fondos de imágenes</title>
        <link>https://knightli.com/es/2026/04/09/google-nano-banana-cutout-guide/</link>
        <pubDate>Thu, 09 Apr 2026 20:10:48 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/09/google-nano-banana-cutout-guide/</guid>
        <description>&lt;p&gt;Este artículo usa un script Python realmente ejecutable para demostrar cómo llamar a la capacidad de edición de imágenes &lt;code&gt;Nano Banana&lt;/code&gt; de Google y recortar fondos de imágenes de producto.&lt;/p&gt;
&lt;p&gt;El objetivo de esta implementación es muy claro:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Leer imágenes de producto desde un directorio&lt;/li&gt;
&lt;li&gt;Llamar al modelo de imagen de Google para eliminar el fondo&lt;/li&gt;
&lt;li&gt;Hacer una limpieza local adicional del fondo transparente sobre la imagen devuelta&lt;/li&gt;
&lt;li&gt;Exportar finalmente como &lt;code&gt;PNG&lt;/code&gt; con fondo transparente&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si ya tienes un lote de imágenes de producto con fondo blanco, fotos de auriculares o cables, y quieres generar rápidamente imágenes de fondo transparente aptas para e-commerce, esta forma es bastante directa.&lt;/p&gt;
&lt;h2 id=&#34;qué-hace-este-código&#34;&gt;Qué hace este código
&lt;/h2&gt;&lt;p&gt;Este script se divide principalmente en 4 partes:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Definir el prompt para que el modelo sepa que debe &amp;ldquo;quitar fondo, conservar sujeto, no añadir sombras&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Llamar a la interfaz de generación de imágenes de &lt;code&gt;google-genai&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Extraer el resultado de imagen desde la respuesta del modelo&lt;/li&gt;
&lt;li&gt;Usar lógica local para convertir fondos claros de los bordes en transparencia, reduciendo restos de borde&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Es decir, no se limita a enviar una imagen al modelo y terminar, sino que encadena &amp;ldquo;edición con modelo + posprocesamiento local&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;preparación-antes-de-ejecutar&#34;&gt;Preparación antes de ejecutar
&lt;/h2&gt;&lt;p&gt;Primero instala dependencias:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;.&lt;span class=&#34;se&#34;&gt;\.&lt;/span&gt;venv&lt;span class=&#34;se&#34;&gt;\S&lt;/span&gt;cripts&lt;span class=&#34;se&#34;&gt;\p&lt;/span&gt;ython.exe -m pip install google-genai pillow
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;cómo-obtener-gemini_api_key&#34;&gt;Cómo obtener GEMINI_API_KEY
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;GEMINI_API_KEY&lt;/code&gt; es la clave usada para llamar a Gemini API. Según el quickstart oficial de Google, si todavía no tienes una key, puedes crearla directamente en Google AI Studio.&lt;/p&gt;
&lt;p&gt;Pasos:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Abre Google AI Studio.&lt;/li&gt;
&lt;li&gt;Inicia sesión con tu cuenta de Google.&lt;/li&gt;
&lt;li&gt;Busca la página &lt;code&gt;Get API key&lt;/code&gt; o &lt;code&gt;API keys&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Crea una nueva API key.&lt;/li&gt;
&lt;li&gt;Copia la key generada.&lt;/li&gt;
&lt;li&gt;Configúrala como variable de entorno local para que el script pueda leerla.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si la página todavía no tiene un proyecto disponible, normalmente hay que completar primero la inicialización del proyecto y después volver a la página de API Key para crear la clave.&lt;/p&gt;
&lt;p&gt;Después de obtener la key, configura la variable de entorno:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$env&lt;/span&gt;:GEMINI_API_KEY&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;your_api_key&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si usas &lt;code&gt;cmd&lt;/code&gt;, puedes escribir:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;GEMINI_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_api_key
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si configuras a la vez &lt;code&gt;GEMINI_API_KEY&lt;/code&gt; y &lt;code&gt;GOOGLE_API_KEY&lt;/code&gt;, en ejecución normalmente se leerá primero &lt;code&gt;GOOGLE_API_KEY&lt;/code&gt;, así que se recomienda conservar solo una para evitar confusión.&lt;/p&gt;
&lt;h2 id=&#34;ejemplo-de-estructura-de-directorios&#34;&gt;Ejemplo de estructura de directorios
&lt;/h2&gt;&lt;p&gt;El script recibe dos parámetros:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;input_dir&lt;/code&gt;: directorio de imágenes de entrada&lt;/li&gt;
&lt;li&gt;&lt;code&gt;output_dir&lt;/code&gt;: directorio de imágenes de salida&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;images/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  product1.jpg
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  product2.png
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;output/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;cómo-ejecutarlo&#34;&gt;Cómo ejecutarlo
&lt;/h2&gt;&lt;p&gt;Suponiendo que el script se llame &lt;code&gt;cutout.py&lt;/code&gt;, se ejecuta así:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;.&lt;span class=&#34;se&#34;&gt;\.&lt;/span&gt;venv&lt;span class=&#34;se&#34;&gt;\S&lt;/span&gt;cripts&lt;span class=&#34;se&#34;&gt;\p&lt;/span&gt;ython.exe .&lt;span class=&#34;se&#34;&gt;\c&lt;/span&gt;utout.py .&lt;span class=&#34;se&#34;&gt;\i&lt;/span&gt;mages .&lt;span class=&#34;se&#34;&gt;\o&lt;/span&gt;utput
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si quieres cambiar de modelo, también puedes pasar el parámetro explícitamente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;.&lt;span class=&#34;se&#34;&gt;\.&lt;/span&gt;venv&lt;span class=&#34;se&#34;&gt;\S&lt;/span&gt;cripts&lt;span class=&#34;se&#34;&gt;\p&lt;/span&gt;ython.exe .&lt;span class=&#34;se&#34;&gt;\c&lt;/span&gt;utout.py .&lt;span class=&#34;se&#34;&gt;\i&lt;/span&gt;mages .&lt;span class=&#34;se&#34;&gt;\o&lt;/span&gt;utput --model gemini-2.5-flash-image
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El script recorrerá estos formatos dentro del directorio de entrada:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;.jpg&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.jpeg&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.png&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.webp&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Al terminar, generará archivos &lt;code&gt;PNG&lt;/code&gt; con fondo transparente y el mismo nombre en el directorio de salida.&lt;/p&gt;
&lt;h2 id=&#34;flujo-principal-de-llamada&#34;&gt;Flujo principal de llamada
&lt;/h2&gt;&lt;p&gt;La llamada clave a Google Nano Banana está aquí:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;response&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;models&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;generate_content&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;contents&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;PROMPT&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Aquí se pasan dos contenidos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Un prompt de texto &lt;code&gt;PROMPT&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Una imagen &lt;code&gt;PIL.Image&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El prompt le pide al modelo eliminar el fondo completo de la imagen de producto, conservar solo el sujeto y enfatiza varios puntos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Conservar el producto completo&lt;/li&gt;
&lt;li&gt;Conservar detalles de cables y líneas finas&lt;/li&gt;
&lt;li&gt;Limpiar huecos internos y zonas anulares&lt;/li&gt;
&lt;li&gt;No añadir objetos nuevos&lt;/li&gt;
&lt;li&gt;No añadir sombras&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Este tipo de prompt influye mucho en la calidad del recorte, especialmente en detalles como cables de auriculares, bordes transparentes y zonas huecas.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-hacer-otro-posprocesamiento-local&#34;&gt;Por qué hacer otro posprocesamiento local
&lt;/h2&gt;&lt;p&gt;Después de que el modelo devuelve el resultado, el script no lo guarda directamente, sino que ejecuta &lt;code&gt;make_transparent_from_borders(image)&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;La idea de este paso es:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Buscar píxeles de fondo claros desde los bordes de la imagen&lt;/li&gt;
&lt;li&gt;Usar búsqueda en anchura para marcar todas las zonas claras conectadas&lt;/li&gt;
&lt;li&gt;Convertir finalmente esas zonas en transparentes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La ventaja es que puede limpiar mejor algunos bordes blancos residuales, fondos gris claro y zonas de borde poco limpias.&lt;/p&gt;
&lt;p&gt;La condición para decidir &amp;ldquo;si es fondo&amp;rdquo; está aquí:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;is_light_background_pixel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;bool&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;brightness&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;r&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;g&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;spread&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;max&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;min&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;brightness&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;170&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;spread&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;35&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;En términos simples:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El color debe ser suficientemente claro&lt;/li&gt;
&lt;li&gt;La diferencia entre los tres canales RGB no debe ser grande&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto encaja bien con fondos blancos, gris claro o casi de color sólido en imágenes de producto.&lt;/p&gt;
&lt;h2 id=&#34;código-fuente-completo&#34;&gt;Código fuente completo
&lt;/h2&gt;&lt;p&gt;Abajo se conserva el código fuente completo actual, para que puedas reutilizarlo o modificarlo directamente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;  1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;  9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 42
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 43
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 44
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 45
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 46
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 47
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 48
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 49
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 50
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 51
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 52
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 53
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 54
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 55
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 56
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 57
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 58
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 59
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 60
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 61
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 62
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 63
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 64
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 65
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 66
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 67
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 68
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 69
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 70
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 71
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 72
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 73
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 74
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 75
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 76
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 77
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 78
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 79
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 80
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 81
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 82
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 83
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 84
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 85
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 86
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 87
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 88
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 89
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 90
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 91
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 92
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 93
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 94
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 95
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 96
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 97
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 98
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 99
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;100
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;101
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;102
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;103
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;104
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;105
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;106
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;107
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;108
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;109
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;110
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;111
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;112
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;113
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;114
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;115
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;116
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;117
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;118
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;119
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;120
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;121
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;122
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;123
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;124
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;125
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;126
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;127
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;128
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;129
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;130
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;131
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;132
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;133
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;134
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;135
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;136
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;137
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;138
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;139
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;140
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;141
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;142
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;143
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;144
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;145
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;146
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;147
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;148
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;149
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;150
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;__future__&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;annotations&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;argparse&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;os&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;pathlib&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;collections&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;deque&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;PIL&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;try&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;google&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;genai&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;except&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;ImportError&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;exc&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;  &lt;span class=&#34;c1&#34;&gt;# pragma: no cover&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;raise&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;SystemExit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;Missing dependency: google-genai. Install it with &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;sa&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;#39;.\.venv\Scripts\python.exe -m pip install google-genai&amp;#39;.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;exc&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;PROMPT&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;Remove the entire background from this product photo and return only the product &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;on a fully transparent background as a PNG. Keep the full product intact, preserve &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;thin cable details, clean the inner loops and holes, and do not add any new objects &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;or shadows.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;is_light_background_pixel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;bool&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;brightness&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;r&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;g&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;spread&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;max&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;min&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;brightness&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;170&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;spread&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;35&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;to_pil_image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;image_obj&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;isinstance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;image_obj&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;image_obj&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;pil_image&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;getattr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;image_obj&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;_pil_image&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;isinstance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;pil_image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;pil_image&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;as_pil&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;getattr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;image_obj&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;pil_image&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;isinstance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;as_pil&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;as_pil&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;raise&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;TypeError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Unsupported image object type: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;type&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;image_obj&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;!r}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;make_transparent_from_borders&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;rgba&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;convert&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;RGBA&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;height&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;rgba&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;size&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;pixels&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;rgba&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;load&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;visited&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;tuple&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;queue&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;deque&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;tuple&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;deque&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;push_if_bg&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;visited&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;_&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;pixels&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;is_light_background_pixel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;visited&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;queue&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;append&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;x&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;range&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;push_if_bg&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;push_if_bg&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;height&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;range&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;height&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;push_if_bg&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;push_if_bg&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;width&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;while&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;queue&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;queue&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;popleft&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;nx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ny&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;nx&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;width&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ny&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;height&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;push_if_bg&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;nx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ny&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;visited&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;pixels&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;rgba&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;save_first_image_part&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parts&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;getattr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;parts&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;parts&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;getattr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;candidates&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;parts&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;candidates&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;parts&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;parts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;raise&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;RuntimeError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Model returned no content parts.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;part&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;parts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;inline_data&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;getattr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;part&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;inline_data&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;inline_data&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;isinstance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;part&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;dict&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;inline_data&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;part&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;inline_data&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;inline_data&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;continue&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;hasattr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;part&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;as_image&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;image&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;to_pil_image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;part&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;as_image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;parent&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;mkdir&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;parents&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;exist_ok&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;make_transparent_from_borders&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;save&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;getattr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;inline_data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;data&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;mime_type&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;getattr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;inline_data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;mime_type&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;parent&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;mkdir&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;parents&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;exist_ok&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;with&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;open&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;wb&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;handle&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;handle&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;write&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;with&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;open&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;img&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;processed&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;make_transparent_from_borders&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;img&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;processed&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;save&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;with_suffix&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;.png&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;suffix&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;lower&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;!=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.png&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;unlink&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;missing_ok&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;raise&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;RuntimeError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Model returned text only and no edited image.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;process_image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;src&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;with&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;open&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;src&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;convert&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;RGBA&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;response&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;models&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;generate_content&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;contents&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;PROMPT&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;save_first_image_part&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;argparse&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ArgumentParser&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;description&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Use Nano Banana / Gemini image editing to cut out product images.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add_argument&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;input_dir&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;type&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add_argument&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;output_dir&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;type&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add_argument&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;--model&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;default&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;gemini-2.5-flash-image&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;parse_args&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;api_key&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;os&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;environ&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;GEMINI_API_KEY&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;api_key&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;raise&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;SystemExit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Missing GEMINI_API_KEY environment variable.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;genai&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Client&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;api_key&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;api_key&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;exts&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;.jpg&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.jpeg&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.png&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;.webp&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;src&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;sorted&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;input_dir&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;iterdir&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;src&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;is_file&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;or&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;src&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;suffix&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;lower&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;exts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;continue&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;output_dir&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt; &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;src&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stem&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;.png&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;process_image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;src&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dst&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;vm&#34;&gt;__name__&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;__main__&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;qué-conviene-optimizar-después&#34;&gt;Qué conviene optimizar después
&lt;/h2&gt;&lt;p&gt;Si quieres seguir usando este script para producción por lotes, después puedes añadir:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Reintentos ante fallos, para evitar que una sola imagen rompa todo el lote&lt;/li&gt;
&lt;li&gt;Registro de logs, para localizar qué imagen falló&lt;/li&gt;
&lt;li&gt;Umbrales configurables para distintos fondos&lt;/li&gt;
&lt;li&gt;Escaneo recursivo de subdirectorios&lt;/li&gt;
&lt;li&gt;Vista previa comparativa entre imagen original y resultado&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Si solo quieres entender rápido &amp;ldquo;cómo llamar a Google Nano Banana para recortar fondos&amp;rdquo;, el núcleo son tres pasos:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Instalar &lt;code&gt;google-genai&lt;/code&gt; y &lt;code&gt;Pillow&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Configurar &lt;code&gt;GEMINI_API_KEY&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Usar &lt;code&gt;client.models.generate_content()&lt;/code&gt; pasando prompt e imagen&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;El valor de este código está en que no solo llama al modelo, sino que añade posprocesamiento de fondo transparente, por lo que sirve mejor para tareas reales de recorte de imágenes de producto.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Qué son los modelos en la nube de Ollama y cómo usarlos</title>
        <link>https://knightli.com/es/2026/04/09/ollama-cloud-models-guide/</link>
        <pubDate>Thu, 09 Apr 2026 18:42:32 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/09/ollama-cloud-models-guide/</guid>
        <description>&lt;p&gt;Si usas normalmente &lt;code&gt;Ollama&lt;/code&gt; para ejecutar modelos locales, entender los modelos en la nube será sencillo.&lt;/p&gt;
&lt;p&gt;La diferencia central es solo una:&lt;br&gt;
los modelos locales hacen inferencia en tu ordenador; los modelos en la nube hacen inferencia en la nube de Ollama y devuelven el resultado.&lt;/p&gt;
&lt;h2 id=&#34;qué-es-un-modelo-en-la-nube&#34;&gt;Qué es un modelo en la nube
&lt;/h2&gt;&lt;p&gt;Los modelos en la nube de Ollama conservan la forma de llamada de Ollama, pero cambian la ubicación del cálculo de local a la nube.&lt;/p&gt;
&lt;p&gt;Las ventajas son:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Menor presión sobre el hardware local&lt;/li&gt;
&lt;li&gt;Más fácil usar modelos grandes que tu máquina local no puede mover&lt;/li&gt;
&lt;li&gt;Se mantiene el flujo de trabajo familiar de Ollama&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;diferencia-frente-a-modelos-locales&#34;&gt;Diferencia frente a modelos locales
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Comparación&lt;/th&gt;
          &lt;th&gt;Modelo local&lt;/th&gt;
          &lt;th&gt;Modelo en la nube&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Ubicación de ejecución&lt;/td&gt;
          &lt;td&gt;Máquina local&lt;/td&gt;
          &lt;td&gt;Nube&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Requisitos de hardware&lt;/td&gt;
          &lt;td&gt;Altos&lt;/td&gt;
          &lt;td&gt;Bajos&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Latencia&lt;/td&gt;
          &lt;td&gt;Más baja&lt;/td&gt;
          &lt;td&gt;Depende de la red&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Privacidad&lt;/td&gt;
          &lt;td&gt;Más fuerte&lt;/td&gt;
          &lt;td&gt;La solicitud se envía a la nube&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Si te importa más la privacidad, baja latencia y uso offline, el modelo local es más adecuado.&lt;br&gt;
Si tu hardware local no alcanza pero quieres probar modelos más grandes, el modelo en la nube es más cómodo.&lt;/p&gt;
&lt;h2 id=&#34;cómo-reconocer-modelos-en-la-nube&#34;&gt;Cómo reconocer modelos en la nube
&lt;/h2&gt;&lt;p&gt;Actualmente, los modelos en la nube de Ollama suelen llevar el sufijo &lt;code&gt;-cloud&lt;/code&gt;, por ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gpt-oss:120b-cloud
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;La lista de modelos disponibles puede cambiar; toma la página oficial de Ollama como referencia final.&lt;/p&gt;
&lt;h2 id=&#34;cómo-usarlos&#34;&gt;Cómo usarlos
&lt;/h2&gt;&lt;p&gt;Primero inicia sesión:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama signin
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Después ejecuta directamente el modelo en la nube:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama run gpt-oss:120b-cloud
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si lo llamas desde código, también puedes configurar API Key:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;OLLAMA_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_api_key
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Ejemplo en Python:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;os&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;ollama&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Client&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;client&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Client&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;host&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;https://ollama.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;headers&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Authorization&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Bearer &amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;os&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;environ&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;OLLAMA_API_KEY&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;messages&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;role&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;user&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;content&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;为什么天空是蓝色的？&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;part&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;chat&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;gpt-oss:120b-cloud&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;messages&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;messages&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;stream&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;part&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;message&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;][&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;content&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;end&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;flush&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Los modelos en la nube de Ollama pueden entenderse en una frase:&lt;/p&gt;
&lt;p&gt;el comando casi no cambia; solo que el modelo ya no corre en tu máquina local.&lt;/p&gt;
&lt;p&gt;Si tu ordenador no puede mover modelos grandes pero quieres seguir llamando modelos al estilo Ollama, los modelos en la nube son una opción directa.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Descargar modelos GGUF desde Hugging Face e importarlos en Ollama</title>
        <link>https://knightli.com/es/2026/04/09/import-huggingface-gguf-into-ollama/</link>
        <pubDate>Thu, 09 Apr 2026 11:00:07 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/09/import-huggingface-gguf-into-ollama/</guid>
        <description>&lt;p&gt;Si cierto modelo no tiene una versión preparada en la biblioteca oficial de Ollama, o si quieres usar un archivo &lt;code&gt;GGUF&lt;/code&gt; específico de Hugging Face, puedes descargarlo manualmente e importarlo después en Ollama.&lt;/p&gt;
&lt;h2 id=&#34;paso-1-descargar-el-archivo-gguf-desde-hugging-face&#34;&gt;Paso 1: descargar el archivo GGUF desde Hugging Face
&lt;/h2&gt;&lt;p&gt;Primero busca en Hugging Face el archivo &lt;code&gt;GGUF&lt;/code&gt; correspondiente al modelo objetivo. Normalmente verás varias versiones cuantizadas, por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Q4_K_M&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q5_K_M&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q8_0&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Qué versión elegir depende de tu VRAM, memoria y del equilibrio que quieras entre velocidad y calidad. Después de descargarlo, coloca el archivo &lt;code&gt;.gguf&lt;/code&gt; en un directorio fijo para referenciarlo directamente en el &lt;code&gt;Modelfile&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;paso-2-escribir-el-modelfile&#34;&gt;Paso 2: escribir el Modelfile
&lt;/h2&gt;&lt;p&gt;Crea un archivo &lt;code&gt;Modelfile&lt;/code&gt; en el mismo directorio que el modelo. La forma mínima es:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;FROM ./model.gguf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si el nombre del archivo es distinto, cámbialo por el nombre real, por ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;FROM ./gemma-3-12b-it-q4_k_m.gguf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si solo quieres ponerlo en marcha primero, normalmente esta línea &lt;code&gt;FROM&lt;/code&gt; basta.&lt;/p&gt;
&lt;h2 id=&#34;paso-3-importar-a-ollama&#34;&gt;Paso 3: importar a Ollama
&lt;/h2&gt;&lt;p&gt;Después ejecuta:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama create myModelName -f Modelfile
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;myModelName&lt;/code&gt; es el nombre local del modelo que quieres usar dentro de Ollama&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-f Modelfile&lt;/code&gt; indica que se crea el modelo desde este archivo de configuración&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cuando la creación termine correctamente, ese archivo GGUF se convertirá en un modelo local que puede llamarse directamente.&lt;/p&gt;
&lt;h2 id=&#34;paso-4-ejecutar-el-modelo&#34;&gt;Paso 4: ejecutar el modelo
&lt;/h2&gt;&lt;p&gt;Después de crearlo, ejecútalo directamente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama run myModelName
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;A partir de ahí, su uso es básicamente igual al de un modelo descargado con &lt;code&gt;ollama pull&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;cómo-ver-el-modelfile-de-un-modelo-existente&#34;&gt;Cómo ver el Modelfile de un modelo existente
&lt;/h2&gt;&lt;p&gt;Si no estás seguro de cómo escribir el &lt;code&gt;Modelfile&lt;/code&gt;, puedes mirar directamente la configuración de un modelo existente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama show --modelfile llama3.2
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Este comando imprimirá el contenido del &lt;code&gt;Modelfile&lt;/code&gt; de &lt;code&gt;llama3.2&lt;/code&gt;, útil como referencia:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cómo debería escribirse &lt;code&gt;FROM&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Cómo se organizan la plantilla y el system prompt&lt;/li&gt;
&lt;li&gt;Cómo se declaran los parámetros&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;cuándo-conviene-esta-ruta&#34;&gt;Cuándo conviene esta ruta
&lt;/h2&gt;&lt;p&gt;Estos escenarios son adecuados para importar manualmente desde Hugging Face:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La biblioteca oficial de Ollama todavía no tiene el modelo que necesitas&lt;/li&gt;
&lt;li&gt;Quieres usar una versión cuantizada concreta&lt;/li&gt;
&lt;li&gt;Ya descargaste manualmente el archivo &lt;code&gt;GGUF&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Quieres controlar con más detalle la forma de empaquetar el modelo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si ya existe una versión oficial lista, usar &lt;code&gt;pull&lt;/code&gt; suele ser más sencillo; pero cuando necesitas una cuantización específica o empaquetado personalizado, &lt;code&gt;GGUF + Modelfile&lt;/code&gt; es más flexible.&lt;/p&gt;
&lt;h2 id=&#34;precauciones-habituales&#34;&gt;Precauciones habituales
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;La ruta después de &lt;code&gt;FROM&lt;/code&gt; debe coincidir con la ubicación real del archivo &lt;code&gt;.gguf&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Si el nombre de archivo contiene espacios o caracteres especiales, se recomienda renombrarlo a algo más simple.&lt;/li&gt;
&lt;li&gt;Las distintas cuantizaciones &lt;code&gt;GGUF&lt;/code&gt; influyen mucho en memoria y velocidad; importarlo con éxito no significa que vaya a ejecutarse con fluidez.&lt;/li&gt;
&lt;li&gt;Si el modelo es de chat, normalmente tendrás que ajustar después la plantilla de prompt según su formato para obtener resultados más estables.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;conclusión&#34;&gt;Conclusión
&lt;/h2&gt;&lt;p&gt;Descargar un archivo &lt;code&gt;GGUF&lt;/code&gt; desde Hugging Face e importarlo en Ollama no es complicado. Prepara el archivo del modelo, escribe un &lt;code&gt;Modelfile&lt;/code&gt; mínimo y ejecuta &lt;code&gt;ollama create&lt;/code&gt;; con eso puedes conectar modelos &lt;code&gt;GGUF&lt;/code&gt; de terceros a Ollama.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Diagnóstico y soluciones para descargas muy lentas con ollama pull</title>
        <link>https://knightli.com/es/2026/04/09/ollama-download-slow-troubleshooting/</link>
        <pubDate>Thu, 09 Apr 2026 10:42:39 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/09/ollama-download-slow-troubleshooting/</guid>
        <description>&lt;p&gt;&lt;code&gt;ollama pull model_name:tag&lt;/code&gt; puede descargar muy lento en algunas regiones, y el proceso no siempre es estable.&lt;/p&gt;
&lt;p&gt;Si el problema que encuentras es que la descarga de un modelo grande se interrumpe repetidamente a mitad de camino, con errores como &lt;code&gt;TLS handshake timeout&lt;/code&gt; o &lt;code&gt;unexpected EOF&lt;/code&gt;, es muy probable que el problema no esté solo en &lt;code&gt;registry.ollama.ai&lt;/code&gt;, sino en la ruta real de descarga después de la redirección.&lt;/p&gt;
&lt;p&gt;Este artículo registra una idea de diagnóstico simple y directa: primero obtener la dirección real de descarga del archivo del modelo, luego confirmar dónde termina realmente el tráfico y por último optimizar solo los dominios clave.&lt;/p&gt;
&lt;h2 id=&#34;obtener-la-dirección-de-descarga-del-archivo-del-modelo&#34;&gt;Obtener la dirección de descarga del archivo del modelo
&lt;/h2&gt;&lt;p&gt;Puedes usar el siguiente proyecto para extraer directamente el manifest y las direcciones de descarga de blobs correspondientes al modelo de Ollama:&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Gholamrezadar/ollama-direct-downloader&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/Gholamrezadar/ollama-direct-downloader&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Tomando &lt;code&gt;gemma4:latest&lt;/code&gt; como ejemplo, se pueden extraer enlaces parecidos a los siguientes.&lt;/p&gt;
&lt;h3 id=&#34;dirección-del-manifest&#34;&gt;Dirección del manifest
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;https://registry.ollama.ai/v2/library/gemma4/manifests/latest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;direcciones-de-blobs&#34;&gt;Direcciones de blobs
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;https://registry.ollama.ai/v2/library/gemma4/blobs/sha256:f0988ff50a2458c598ff6b1b87b94d0f5c44d73061c2795391878b00b2285e11
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;https://registry.ollama.ai/v2/library/gemma4/blobs/sha256:4c27e0f5b5adf02ac956c7322bd2ee7636fe3f45a8512c9aba5385242cb6e09a
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;https://registry.ollama.ai/v2/library/gemma4/blobs/sha256:7339fa418c9ad3e8e12e74ad0fd26a9cc4be8703f9c110728a992b193be85cb2
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;https://registry.ollama.ai/v2/library/gemma4/blobs/sha256:56380ca2ab89f1f68c283f4d50863c0bcab52ae3f1b9a88e4ab5617b176f71a3
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si solo quieres verificar rápido, también puedes descargar directamente el manifest y los blobs con &lt;code&gt;curl&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -L &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://registry.ollama.ai/v2/library/gemma4/manifests/latest&amp;#34;&lt;/span&gt; -o &lt;span class=&#34;s2&#34;&gt;&amp;#34;latest&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -L &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://registry.ollama.ai/v2/library/gemma4/blobs/sha256:f0988ff50a2458c598ff6b1b87b94d0f5c44d73061c2795391878b00b2285e11&amp;#34;&lt;/span&gt; -o &lt;span class=&#34;s2&#34;&gt;&amp;#34;sha256-f0988ff50a2458c598ff6b1b87b94d0f5c44d73061c2795391878b00b2285e11&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -L &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://registry.ollama.ai/v2/library/gemma4/blobs/sha256:4c27e0f5b5adf02ac956c7322bd2ee7636fe3f45a8512c9aba5385242cb6e09a&amp;#34;&lt;/span&gt; -o &lt;span class=&#34;s2&#34;&gt;&amp;#34;sha256-4c27e0f5b5adf02ac956c7322bd2ee7636fe3f45a8512c9aba5385242cb6e09a&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -L &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://registry.ollama.ai/v2/library/gemma4/blobs/sha256:7339fa418c9ad3e8e12e74ad0fd26a9cc4be8703f9c110728a992b193be85cb2&amp;#34;&lt;/span&gt; -o &lt;span class=&#34;s2&#34;&gt;&amp;#34;sha256-7339fa418c9ad3e8e12e74ad0fd26a9cc4be8703f9c110728a992b193be85cb2&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;dirección-real-después-de-la-redirección&#34;&gt;Dirección real después de la redirección
&lt;/h2&gt;&lt;p&gt;Al intentar descargar uno de los blobs con &lt;code&gt;wget&lt;/code&gt;, verás que la solicitud no se queda siempre en &lt;code&gt;registry.ollama.ai&lt;/code&gt;, sino que redirige a una dirección de almacenamiento de objetos &lt;code&gt;Cloudflare R2&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wget https://registry.ollama.ai/v2/library/gemma4/blobs/sha256:4c27e0f5b5adf02ac956c7322bd2ee7636fe3f45a8512c9aba5385242cb6e09a
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--2026-04-09 09:22:04--  https://registry.ollama.ai/v2/library/gemma4/blobs/sha256:4c27e0f5b5adf02ac956c7322bd2ee7636fe3f45a8512c9aba5385242cb6e09a
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Resolving registry.ollama.ai &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;registry.ollama.ai&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;... 104.21.75.227, 172.67.182.229, 2606:4700:3034::ac43:b6e5, ...
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Connecting to registry.ollama.ai &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;registry.ollama.ai&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;|&lt;/span&gt;104.21.75.227&lt;span class=&#34;p&#34;&gt;|&lt;/span&gt;:443... connected.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;HTTP request sent, awaiting response... &lt;span class=&#34;m&#34;&gt;307&lt;/span&gt; Temporary Redirect
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Location: https://dd20bb891979d25aebc8bec07b2b3bbc.r2.cloudflarestorage.com/ollama/docker/registry/v2/blobs/sha256/4c/4c27e0f5b5adf02ac956c7322bd2ee7636fe3f45a8512c9aba5385242cb6e09a/data?... &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;following&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--2026-04-09 09:22:05--  https://dd20bb891979d25aebc8bec07b2b3bbc.r2.cloudflarestorage.com/ollama/docker/registry/v2/blobs/sha256/4c/4c27e0f5b5adf02ac956c7322bd2ee7636fe3f45a8512c9aba5385242cb6e09a/data?...
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Resolving dd20bb891979d25aebc8bec07b2b3bbc.r2.cloudflarestorage.com &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;dd20bb891979d25aebc8bec07b2b3bbc.r2.cloudflarestorage.com&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;... 172.64.66.1, 2606:4700:2ff9::1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Connecting to dd20bb891979d25aebc8bec07b2b3bbc.r2.cloudflarestorage.com&lt;span class=&#34;p&#34;&gt;|&lt;/span&gt;172.64.66.1&lt;span class=&#34;p&#34;&gt;|&lt;/span&gt;:443... connected.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;HTTP request sent, awaiting response... &lt;span class=&#34;m&#34;&gt;200&lt;/span&gt; OK
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Length: &lt;span class=&#34;m&#34;&gt;9608338848&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;8.9G&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;application/octet-stream&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;En el log se ven varios puntos clave:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;registry.ollama.ai&lt;/code&gt; devuelve &lt;code&gt;307 Temporary Redirect&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;La dirección final cae en &lt;code&gt;*.r2.cloudflarestorage.com&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;La transferencia real del archivo grande la soporta en realidad el dominio de almacenamiento de objetos posterior&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Este paso es importante, porque demuestra que si tu proxy o reglas de routing solo cubren &lt;code&gt;registry.ollama.ai&lt;/code&gt;, pero no tratan &lt;code&gt;*.r2.cloudflarestorage.com&lt;/code&gt;, la descarga seguirá pudiendo ser lenta o interrumpirse repetidamente.&lt;/p&gt;
&lt;h2 id=&#34;ajustar-la-configuración-de-red&#34;&gt;Ajustar la configuración de red
&lt;/h2&gt;&lt;p&gt;Después de confirmar la ruta real de descarga, la dirección de diagnóstico queda mucho más clara.&lt;/p&gt;
&lt;p&gt;Si estás usando proxy, reglas de routing o DNS personalizado, se recomienda revisar primero:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si &lt;code&gt;registry.ollama.ai&lt;/code&gt; y &lt;code&gt;*.r2.cloudflarestorage.com&lt;/code&gt; pasan por la misma ruta estable&lt;/li&gt;
&lt;li&gt;Si las reglas de proxy solo cubren el primero y se olvidan del segundo&lt;/li&gt;
&lt;li&gt;Si la salida actual es adecuada para descargas sostenidas de varios GB o decenas de GB&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La clave de este tipo de problema no es &amp;ldquo;si se puede abrir la web oficial&amp;rdquo;, sino &amp;ldquo;si la ruta de almacenamiento de objetos después de la redirección es estable y puede transferir durante largo tiempo&amp;rdquo;. Muchas veces, lo que de verdad hay que optimizar es la capa &lt;code&gt;Cloudflare R2&lt;/code&gt;, no el dominio registry anterior.&lt;/p&gt;
&lt;h2 id=&#34;comparación-antes-y-después-del-ajuste&#34;&gt;Comparación antes y después del ajuste
&lt;/h2&gt;&lt;p&gt;Abajo hay una descarga real de &lt;code&gt;gemma4:31b-it-q8_0&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Antes del ajuste, la velocidad era baja y aparecía error a mitad de camino:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;PS C:\Users\knightli&amp;gt; ollama run gemma4:31b-it-q8_0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pulling manifest
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pulling a0feadb736f5:  38% ▕██████████████████████                                    ▏  12 GB/ 33 GB  1.2 MB/s   4h40m
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Error: max retries exceeded: unexpected EOF
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Después del ajuste, al descargar de nuevo el mismo modelo, la velocidad y estabilidad mejoraron claramente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;PS C:\Users\knightli&amp;gt; ollama run gemma4:31b-it-q8_0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pulling manifest
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pulling a0feadb736f5:  46% ▕████████████████████████████████████████████████████████████████▏ 15 GB/ 33 GB  8.5 MB/s  35m23s
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Esto no significa que todos los entornos de red obtengan el mismo resultado, pero al menos muestra algo: el cuello de botella probablemente no está en el cliente Ollama, sino en la ruta real de descarga de archivos grandes.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Gemma 4 en Raspberry Pi 5: viable, pero con respuestas lentas</title>
        <link>https://knightli.com/es/2026/04/08/gemma4-on-raspberry-pi5-benchmark/</link>
        <pubDate>Wed, 08 Apr 2026 18:42:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/08/gemma4-on-raspberry-pi5-benchmark/</guid>
        <description>&lt;p&gt;Un intento un poco extremo: ejecutar Gemma 4 en una &lt;code&gt;Raspberry Pi 5 (8GB RAM)&lt;/code&gt;. El objetivo no fue una versión grande del modelo, sino el modelo más pequeño &lt;code&gt;E2B&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;La conclusión primero: puede ejecutarse y es usable, pero encaja mejor en escenarios con poca interacción. No es ideal para una experiencia conversacional con alta exigencia de tiempo real.&lt;/p&gt;
&lt;h2 id=&#34;entorno-de-prueba&#34;&gt;Entorno de prueba
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Dispositivo: Raspberry Pi 5 (CPU de 4 núcleos, 8GB RAM)&lt;/li&gt;
&lt;li&gt;Sistema: Ubuntu Server (sin interfaz gráfica)&lt;/li&gt;
&lt;li&gt;Acceso: SSH&lt;/li&gt;
&lt;li&gt;Forma de ejecución del modelo: LM Studio CLI (solo modo línea de comandos)&lt;/li&gt;
&lt;li&gt;Modelo: Gemma 4 E2B (aprox. 4.5GB)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;paso-1-instalar-e-iniciar-lm-studio-cli&#34;&gt;Paso 1: instalar e iniciar LM Studio CLI
&lt;/h2&gt;&lt;p&gt;Instala la versión CLI de LM Studio, inicia el servicio y consulta los comandos disponibles.&lt;/p&gt;
&lt;p&gt;Como es un entorno puro de línea de comandos, este método de despliegue solo por CLI encaja muy bien con Raspberry Pi.&lt;/p&gt;
&lt;h2 id=&#34;paso-2-mover-el-almacenamiento-de-modelos-a-un-ssd&#34;&gt;Paso 2: mover el almacenamiento de modelos a un SSD
&lt;/h2&gt;&lt;p&gt;Para evitar lecturas y escrituras frecuentes en la tarjeta SD, moví el directorio de descarga de modelos a un SSD externo.&lt;/p&gt;
&lt;p&gt;La experiencia de conectar un SSD a Raspberry Pi 5 es claramente más práctica que en modelos anteriores. Para ejecutar modelos locales durante mucho tiempo, conviene priorizar SSD.&lt;/p&gt;
&lt;h2 id=&#34;paso-3-descargar-y-cargar-gemma-4-e2b&#34;&gt;Paso 3: descargar y cargar Gemma 4 E2B
&lt;/h2&gt;&lt;p&gt;Después de la descarga, el modelo puede cargarse correctamente en memoria.&lt;/p&gt;
&lt;p&gt;Según la información oficial, la serie Gemma 4 cuenta con:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Capacidad de tool calling orientada a escenarios Agent (function calling)&lt;/li&gt;
&lt;li&gt;Capacidades multimodales (incluyendo imagen/video; los modelos pequeños también tienen capacidades relacionadas con voz)&lt;/li&gt;
&lt;li&gt;Ventana de contexto &lt;code&gt;128K&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Licencia Apache 2.0 (usable comercialmente)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Viendo las condiciones de hardware de Raspberry Pi, la variante E2B es la más adecuada para empezar a probar.&lt;/p&gt;
&lt;h2 id=&#34;paso-4-iniciar-la-api-y-abrir-acceso-en-la-red-local&#34;&gt;Paso 4: iniciar la API y abrir acceso en la red local
&lt;/h2&gt;&lt;p&gt;Después de cargar el modelo, primero inicié la API en el puerto local (&lt;code&gt;4000&lt;/code&gt;) y confirmé mediante una petición HTTP que la lista de modelos podía devolverse.&lt;/p&gt;
&lt;p&gt;El problema es que, por defecto, solo escucha en la propia máquina, así que otros dispositivos de la LAN no pueden acceder directamente.&lt;/p&gt;
&lt;p&gt;Como los parámetros de inicio no permitían configurar directamente el host, usé &lt;code&gt;socat&lt;/code&gt; para hacer reenvío de puerto: las peticiones al puerto externo de la Raspberry Pi se puentean al puerto interno de LM Studio, permitiendo acceso por LAN.&lt;/p&gt;
&lt;p&gt;El resultado fue viable: desde un MacBook en la misma red local pude hacer la petición y obtener correctamente la lista de modelos.&lt;/p&gt;
&lt;h2 id=&#34;paso-5-integración-con-editor-zed&#34;&gt;Paso 5: integración con editor (Zed)
&lt;/h2&gt;&lt;p&gt;El servicio local de LM Studio es compatible con la forma de la OpenAI API, por lo que la mayoría de herramientas que soportan &lt;code&gt;base_url&lt;/code&gt; personalizado pueden conectarse directamente.&lt;/p&gt;
&lt;p&gt;En Zed añadí un nuevo LLM provider apuntando a la instancia de Gemma 4 en la Raspberry Pi, y después la prueba de chat dentro del editor funcionó.&lt;/p&gt;
&lt;h2 id=&#34;juicio-de-usabilidad-real&#34;&gt;Juicio de usabilidad real
&lt;/h2&gt;&lt;p&gt;Esta solución encaja con:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Scripts locales de automatización&lt;/li&gt;
&lt;li&gt;Tareas auxiliares de baja concurrencia y baja exigencia de tiempo real&lt;/li&gt;
&lt;li&gt;Aprendizaje personal y experimentos en dispositivos edge&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No encaja tanto con:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Chat interactivo de alta frecuencia&lt;/li&gt;
&lt;li&gt;Escenarios de colaboración de desarrollo sensibles a la latencia&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;conclusión&#34;&gt;Conclusión
&lt;/h2&gt;&lt;p&gt;Ejecutar Gemma 4 (E2B) en &lt;code&gt;Raspberry Pi 5&lt;/code&gt; es viable, y el resultado real fue mejor de lo esperado.&lt;/p&gt;
&lt;p&gt;Si tu objetivo es &amp;ldquo;poder ejecutarlo offline, conectarlo a herramientas y completar tareas ligeras o medias&amp;rdquo;, esta ruta merece probarse. Si el objetivo es interacción fluida en tiempo real, sigue siendo recomendable usar hardware más potente.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Conectar OpenClaw con Gemma 4 local: guía completa de configuración</title>
        <link>https://knightli.com/es/2026/04/08/openclaw-connect-gemma4-local/</link>
        <pubDate>Wed, 08 Apr 2026 18:18:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/08/openclaw-connect-gemma4-local/</guid>
        <description>&lt;p&gt;Este artículo muestra cómo conectar &lt;code&gt;OpenClaw&lt;/code&gt; a un modelo &lt;code&gt;Gemma 4&lt;/code&gt; local, exponiendo la interfaz mediante &lt;code&gt;Ollama&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Si todavía no completaste el despliegue local, puedes consultar primero:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/04/08/run-gemma4-on-laptop/&#34; &gt;Cómo ejecutar Gemma 4 en un portátil: guía de despliegue local en 5 minutos&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;paso-1-iniciar-el-servicio-api-de-ollama&#34;&gt;Paso 1: iniciar el servicio API de Ollama
&lt;/h2&gt;&lt;p&gt;Primero inicia el servicio de Ollama:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Puedes probar rápidamente si la API funciona con el siguiente comando:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl http://localhost:11434/api/generate -d &lt;span class=&#34;s1&#34;&gt;&amp;#39;{
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s1&#34;&gt;  &amp;#34;model&amp;#34;: &amp;#34;gemma4:12b&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s1&#34;&gt;  &amp;#34;prompt&amp;#34;: &amp;#34;你好&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s1&#34;&gt;}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si devuelve salida del modelo, significa que la API local ya está disponible.&lt;/p&gt;
&lt;h2 id=&#34;paso-2-configurar-openclaw-para-acceder-a-ollama&#34;&gt;Paso 2: configurar OpenClaw para acceder a Ollama
&lt;/h2&gt;&lt;p&gt;La ruta habitual del archivo de configuración de OpenClaw es:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;~/.openclaw/config.yaml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Edita &lt;code&gt;config.yaml&lt;/code&gt; y añade una entrada de modelo local dentro de &lt;code&gt;models&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;models&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# 你已有的模型配置...&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;gemma4-local&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;provider&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;ollama&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;base_url&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;http://localhost:11434&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;gemma4:12b&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;timeout&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;120s&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;paso-3-establecer-el-modelo-predeterminado-opcional&#34;&gt;Paso 3: establecer el modelo predeterminado (opcional)
&lt;/h2&gt;&lt;p&gt;Si quieres que Gemma 4 sea el modelo predeterminado, añade:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;default_model&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;gemma4-local&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;paso-4-reiniciar-y-verificar-openclaw&#34;&gt;Paso 4: reiniciar y verificar OpenClaw
&lt;/h2&gt;&lt;p&gt;Reinicia OpenClaw:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openclaw restart
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Consulta la lista de modelos:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openclaw models list
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Inicia una conversación de prueba:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openclaw chat --model gemma4-local &lt;span class=&#34;s2&#34;&gt;&amp;#34;你好&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si la conversación devuelve respuesta con normalidad, OpenClaw ya se conectó correctamente a Gemma 4 local.&lt;/p&gt;
&lt;h2 id=&#34;diagnóstico-habitual&#34;&gt;Diagnóstico habitual
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;connection refused&lt;/code&gt;: confirma primero si &lt;code&gt;ollama serve&lt;/code&gt; está ejecutándose.&lt;/li&gt;
&lt;li&gt;Modelo no encontrado: comprueba que el nombre del modelo coincida con &lt;code&gt;ollama list&lt;/code&gt; (por ejemplo &lt;code&gt;gemma4:12b&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Timeout de respuesta: puedes aumentar &lt;code&gt;timeout&lt;/code&gt; y probar primero con un modelo más pequeño.&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Cómo ejecutar Gemma 4 en un portátil: guía de despliegue local en 5 minutos</title>
        <link>https://knightli.com/es/2026/04/08/run-gemma4-on-laptop/</link>
        <pubDate>Wed, 08 Apr 2026 18:06:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/08/run-gemma4-on-laptop/</guid>
        <description>&lt;p&gt;Si quieres ejecutar Gemma 4 localmente en un portátil, &lt;code&gt;Ollama&lt;/code&gt; es una de las opciones más sencillas actualmente. Incluso sin configurar un entorno complicado, normalmente se puede poner en marcha en unos 5 minutos.&lt;/p&gt;
&lt;h2 id=&#34;paso-1-instalar-ollama&#34;&gt;Paso 1: instalar Ollama
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;Abre &lt;code&gt;https://ollama.com&lt;/code&gt; y descarga el instalador correspondiente a tu sistema.&lt;/li&gt;
&lt;li&gt;Completa la instalación según el sistema:&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;macOS: arrástralo a &lt;code&gt;Applications&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Windows: ejecuta el instalador &lt;code&gt;.exe&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Linux: usa el script de instalación ofrecido en el sitio oficial.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tras la instalación, Ollama se ejecutará como servicio en segundo plano. Salvo durante la instalación inicial, en el uso diario suelen bastar comandos simples.&lt;/p&gt;
&lt;h2 id=&#34;paso-2-descargar-el-modelo-gemma-4&#34;&gt;Paso 2: descargar el modelo Gemma 4
&lt;/h2&gt;&lt;p&gt;Abre una terminal y ejecuta:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama pull gemma4:4b
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si tu equipo tiene más rendimiento, puedes cambiarlo por &lt;code&gt;12b&lt;/code&gt; o &lt;code&gt;27b&lt;/code&gt;. Cuando termine la descarga, el modelo quedará guardado localmente.&lt;/p&gt;
&lt;p&gt;Para ver los modelos descargados:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama list
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;paso-3-iniciar-el-modelo&#34;&gt;Paso 3: iniciar el modelo
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama run gemma4:4b
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Esto abrirá una conversación interactiva en la terminal. Escribe una pregunta y pulsa Enter; para terminar la sesión puedes introducir:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/bye
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si prefieres una interfaz de chat web, puedes usarlo junto con &lt;code&gt;Open WebUI&lt;/code&gt;. Esta herramienta envuelve Ollama en una UI de navegador y normalmente se configura en pocos minutos con Docker.&lt;/p&gt;
&lt;h2 id=&#34;consejos-de-optimización-para-portátiles&#34;&gt;Consejos de optimización para portátiles
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Apple Silicon (M2/M3/M4): por defecto usa Metal y la aceleración suele funcionar muy bien; &lt;code&gt;12B&lt;/code&gt; también puede ofrecer una buena experiencia.&lt;/li&gt;
&lt;li&gt;Tarjeta NVIDIA: cuando detecta una GPU compatible, suele usar CUDA automáticamente. Conviene actualizar los drivers con antelación.&lt;/li&gt;
&lt;li&gt;Inferencia solo con CPU: se puede ejecutar, pero los modelos grandes serán claramente más lentos; en la mayoría de escenarios CPU-only conviene priorizar &lt;code&gt;4B&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Liberar memoria: antes de cargar modelos grandes, cierra en lo posible aplicaciones que consuman mucha memoria. Como referencia práctica, cada mil millones de parámetros suelen necesitar entre &lt;code&gt;0.5GB y 1GB&lt;/code&gt; de memoria.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;cómo-elegir-modelo&#34;&gt;Cómo elegir modelo
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Gemma 4 1B&lt;/code&gt;: adecuado para preguntas y respuestas ligeras, resúmenes básicos y consultas rápidas; su capacidad de razonamiento complejo es limitada.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Gemma 4 4B&lt;/code&gt;: adecuado para la mayoría de tareas diarias (ayuda de escritura, ayuda de código, resumen de materiales), con buen equilibrio entre velocidad y calidad.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Gemma 4 12B&lt;/code&gt;: adecuado para contextos más largos y tareas más complejas; es más estable en escenarios de código y razonamiento.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Gemma 4 27B&lt;/code&gt;: adecuado para tareas exigentes; el resultado se acerca más a modelos grandes en la nube, pero requiere mucho más hardware.&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Instalar y ejecutar Gemma 4 en Android: guía completa de inicio</title>
        <link>https://knightli.com/es/2026/04/08/android-gemma4-install-run-guide/</link>
        <pubDate>Wed, 08 Apr 2026 17:55:53 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/08/android-gemma4-install-run-guide/</guid>
        <description>&lt;p&gt;Si quieres probar Gemma 4 sin conexión en el teléfono, este artículo te lleva paso a paso desde la instalación hasta las funciones prácticas.&lt;/p&gt;
&lt;h2 id=&#34;paso-1-obtener-la-aplicación&#34;&gt;Paso 1: obtener la aplicación
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Google AI Edge Gallery&lt;/code&gt; actualmente no está publicado en Google Play, así que hay que instalarlo mediante sideload de APK.&lt;/p&gt;
&lt;p&gt;En el dispositivo Android, entra en:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Ajustes -&amp;gt; Aplicaciones -&amp;gt; Acceso especial de apps -&amp;gt; Instalar apps desconocidas&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Después:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Busca el navegador que usas (por ejemplo Chrome o Firefox) y activa &amp;ldquo;Permitir desde esta fuente&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;Abre en el navegador del teléfono la página GitHub Releases de &lt;code&gt;Google AI Edge Gallery&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;Dirección: &lt;a class=&#34;link&#34; href=&#34;https://github.com/google-ai-edge/gallery/releases&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/google-ai-edge/gallery/releases&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start=&#34;3&#34;&gt;
&lt;li&gt;Descarga el paquete &lt;code&gt;.apk&lt;/code&gt; más reciente.&lt;/li&gt;
&lt;li&gt;Cuando termine la descarga, abre el instalador desde la barra de notificaciones o el gestor de archivos y completa la instalación siguiendo las indicaciones.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Con una red normal, este paso suele completarse en unos 2 minutos.&lt;/p&gt;
&lt;h2 id=&#34;paso-2-primer-inicio-y-permisos&#34;&gt;Paso 2: primer inicio y permisos
&lt;/h2&gt;&lt;p&gt;Al abrir &lt;code&gt;AI Edge Gallery&lt;/code&gt; por primera vez, la aplicación solicitará permiso de almacenamiento para guardar los archivos de modelos. Se recomienda permitirlo directamente; de lo contrario, la aplicación no podrá descargar ni cargar modelos.&lt;/p&gt;
&lt;p&gt;En la página principal suelen aparecer estas entradas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Ask Image&lt;/code&gt;: tareas de comprensión de imágenes (describir imágenes o responder preguntas relacionadas con ellas)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AI Chat&lt;/code&gt;: conversación de texto general&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Summarize&lt;/code&gt;: pegar texto y generar un resumen&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Smart Reply&lt;/code&gt;: generar sugerencias de respuesta&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La opción más usada por la mayoría de usuarios es &lt;code&gt;AI Chat&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;paso-3-descargar-el-modelo-gemma-4&#34;&gt;Paso 3: descargar el modelo Gemma 4
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;Entra en &lt;code&gt;AI Chat&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Haz clic en &lt;code&gt;Get Models&lt;/code&gt; cuando aparezca la indicación.&lt;/li&gt;
&lt;li&gt;Selecciona una versión de Gemma 4 en la lista de modelos (se mostrará su tamaño).&lt;/li&gt;
&lt;li&gt;Elige el modelo según el rendimiento del dispositivo; si tu teléfono tiene &lt;code&gt;8GB RAM&lt;/code&gt;, puedes empezar por &lt;code&gt;Gemma 4 4B&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Pulsa &lt;code&gt;Download&lt;/code&gt; y la descarga comenzará en segundo plano.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Nota: cuanto más grande sea el modelo, más tardará la descarga. También puedes descargar varios modelos y cambiarlos después cuando lo necesites. Los modelos descargados se guardan localmente y no hace falta volver a descargarlos.&lt;/p&gt;
&lt;h2 id=&#34;paso-4-empezar-a-conversar&#34;&gt;Paso 4: empezar a conversar
&lt;/h2&gt;&lt;p&gt;Cuando termine la descarga del modelo:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Pulsa el nombre del modelo para cargarlo (la primera carga suele tardar entre 10 y 30 segundos, según el tamaño del modelo y el rendimiento del dispositivo).&lt;/li&gt;
&lt;li&gt;Escribe una pregunta en el cuadro de chat y envíala.&lt;/li&gt;
&lt;li&gt;El modelo generará la respuesta localmente; los datos no se subirán a la nube.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Normalmente la primera respuesta será algo más lenta. Es un fenómeno normal de calentamiento del modelo; las respuestas siguientes dentro de la misma conversación suelen ser más rápidas.&lt;/p&gt;
&lt;h2 id=&#34;paso-5-probar-capacidades-visuales-gemma-4-multimodal&#34;&gt;Paso 5: probar capacidades visuales (Gemma 4 multimodal)
&lt;/h2&gt;&lt;p&gt;Si descargaste una versión multimodal de Gemma 4:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Vuelve al menú principal y entra en &lt;code&gt;Ask Image&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Selecciona una imagen o toma una foto directamente.&lt;/li&gt;
&lt;li&gt;Escribe la pregunta que quieres hacer, por ejemplo &amp;ldquo;¿Qué hay en esta imagen?&amp;rdquo; o &amp;ldquo;¿Qué texto importante aparece en la imagen?&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;Espera a que el modelo analice la imagen localmente y devuelva el resultado.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Esta función puede usarse sin conexión y el contenido de la imagen tampoco se enviará a servidores externos.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Usar Agent Skills para sustituir la función de Copilot en VS Code que genera mensajes de commit</title>
        <link>https://knightli.com/es/2026/04/06/replace-vscode-generate-commit-message-after-copilot-quota/</link>
        <pubDate>Mon, 06 Apr 2026 13:09:49 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/06/replace-vscode-generate-commit-message-after-copilot-quota/</guid>
        <description>&lt;p&gt;La función &amp;ldquo;generar mensaje de commit&amp;rdquo; de GitHub Copilot en VS Code es muy práctica. Cuando se agota la cuota, el ciclo de reinicio puede ser muy largo.
Este artículo es un intento de sustituir esa función usando Agent Skills locales.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/04/06/replace-vscode-generate-commit-message-after-copilot-quota/1.png&#34;
	width=&#34;645&#34;
	height=&#34;194&#34;
	srcset=&#34;https://knightli.com/2026/04/06/replace-vscode-generate-commit-message-after-copilot-quota/1_hu_6b81e604b29d8606.png 480w, https://knightli.com/2026/04/06/replace-vscode-generate-commit-message-after-copilot-quota/1_hu_5f11e2ea13cbceb8.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Generar mensaje de commit&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;332&#34;
		data-flex-basis=&#34;797px&#34;
	
&gt;&lt;/p&gt;
&lt;h2 id=&#34;problema-y-objetivo&#34;&gt;Problema y objetivo
&lt;/h2&gt;&lt;p&gt;El objetivo de este artículo es ofrecer una alternativa que se pueda aplicar directamente: usar el skill agent &lt;code&gt;git-commit-push-zh&lt;/code&gt; para completar commits y push estandarizados.&lt;/p&gt;
&lt;h2 id=&#34;alternativa-git-commit-push-zh&#34;&gt;Alternativa: &lt;code&gt;git-commit-push-zh&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;Este skill convierte los &amp;ldquo;cambios actuales&amp;rdquo; en un flujo fijo:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Revisar el estado de los cambios.&lt;/li&gt;
&lt;li&gt;Confirmar la rama actual.&lt;/li&gt;
&lt;li&gt;Añadir los cambios al área de staging.&lt;/li&gt;
&lt;li&gt;Generar un mensaje de commit en chino.&lt;/li&gt;
&lt;li&gt;Ejecutar commit.&lt;/li&gt;
&lt;li&gt;Hacer push a la rama remota.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Los comandos correspondientes son:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git status --short
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git branch --show-current
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git add -A
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git commit -m &lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;lt;中文提交信息&amp;gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git push origin &amp;lt;当前分支&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;convención-recomendada-para-mensajes-de-commit&#34;&gt;Convención recomendada para mensajes de commit
&lt;/h2&gt;&lt;p&gt;Se recomienda usar un formato unificado:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;类型&amp;gt;(&amp;lt;范围&amp;gt;): &amp;lt;中文摘要&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Ejemplos de tipo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;feat&lt;/code&gt;: nueva funcionalidad&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fix&lt;/code&gt;: corrección de problema&lt;/li&gt;
&lt;li&gt;&lt;code&gt;docs&lt;/code&gt;: actualización de documentación&lt;/li&gt;
&lt;li&gt;&lt;code&gt;refactor&lt;/code&gt;: refactorización de código&lt;/li&gt;
&lt;li&gt;&lt;code&gt;chore&lt;/code&gt;: cambios de mantenimiento&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ejemplos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;feat(site): 新增全站 head 广告脚本注入&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fix(i18n): 修正 relref 相关文章链接路径&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;chore(content): 合并 AI 工作流分类到 AI工具&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;fallos-habituales&#34;&gt;Fallos habituales
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;nothing to commit&lt;/code&gt;: no hay cambios para commit; basta con detener el push.&lt;/li&gt;
&lt;li&gt;Fallo en &lt;code&gt;push&lt;/code&gt;: revisa primero permisos, estado de la rama remota y conflictos.&lt;/li&gt;
&lt;li&gt;Excepción de SSH/permisos: confirma credenciales y permisos antes de reintentar.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;apéndice-skillmd-original&#34;&gt;Apéndice: &lt;code&gt;SKILL.md&lt;/code&gt; original
&lt;/h2&gt;&lt;p&gt;El siguiente contenido es la documentación original de &lt;code&gt;git-commit-push-zh&lt;/code&gt;, conservada tal cual para facilitar su reutilización y mantenimiento posteriores.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;42
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;name: git-commit-push-zh
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;description: 在当前 Git 仓库中将“当前更改”完成一次标准提交流程：检查状态、暂存变更、生成中文提交信息、执行 commit 并 push 到当前分支对应远端。用户提出“提交代码”“提交当前更改”“生成中文提交信息并推送”“git commit push 中文说明”等请求时使用。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gh&#34;&gt;# 中文提交并推送
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;使用此技能将当前仓库改动一次性提交并推送到远端。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## 工作流程
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;1.&lt;/span&gt; 查看变更状态：&lt;span class=&#34;sb&#34;&gt;`git status --short`&lt;/span&gt;。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;2.&lt;/span&gt; 确认当前分支：&lt;span class=&#34;sb&#34;&gt;`git branch --show-current`&lt;/span&gt;。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;3.&lt;/span&gt; 暂存当前变更：&lt;span class=&#34;sb&#34;&gt;`git add -A`&lt;/span&gt;。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;4.&lt;/span&gt; 生成中文提交信息（简洁、可检索）。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;5.&lt;/span&gt; 执行提交：&lt;span class=&#34;sb&#34;&gt;`git commit -m &amp;#34;&amp;lt;中文提交信息&amp;gt;&amp;#34;`&lt;/span&gt;。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;6.&lt;/span&gt; 执行推送：&lt;span class=&#34;sb&#34;&gt;`git push origin &amp;lt;当前分支&amp;gt;`&lt;/span&gt;。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## 提交信息规范（中文）
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;1.&lt;/span&gt; 建议格式：&lt;span class=&#34;sb&#34;&gt;`&amp;lt;类型&amp;gt;(&amp;lt;范围&amp;gt;): &amp;lt;中文摘要&amp;gt;`&lt;/span&gt;。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;2.&lt;/span&gt; 类型示例：&lt;span class=&#34;sb&#34;&gt;`feat`&lt;/span&gt;、&lt;span class=&#34;sb&#34;&gt;`fix`&lt;/span&gt;、&lt;span class=&#34;sb&#34;&gt;`chore`&lt;/span&gt;、&lt;span class=&#34;sb&#34;&gt;`docs`&lt;/span&gt;、&lt;span class=&#34;sb&#34;&gt;`refactor`&lt;/span&gt;。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;3.&lt;/span&gt; 摘要要求：准确描述本次改动，不写空话。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;4.&lt;/span&gt; 若仅少量变更，也保持可读性与可检索性。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;示例：
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`feat(site): 新增全站 head 广告脚本注入`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`fix(i18n): 修正 relref 相关文章链接路径`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`chore(content): 合并 AI 工作流分类到 AI工具`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## 错误处理
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;1.&lt;/span&gt; 若无可提交变更（nothing to commit），明确告知并停止 push。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;2.&lt;/span&gt; 若 push 失败，先回报关键错误（权限、远端不存在、冲突等）。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;3.&lt;/span&gt; 常见 SSH/权限问题可在用户确认后重试高权限环境。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## 输出约定
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;1.&lt;/span&gt; 汇报提交哈希、分支名、提交信息。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;2.&lt;/span&gt; 汇报 push 结果（成功或失败原因）。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;3.&lt;/span&gt; 仅在确有失败时提供下一步最小操作建议。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
        </item>
        <item>
        <title>Cómo comprobar si un modelo de Ollama ya se cargó en la GPU</title>
        <link>https://knightli.com/es/2026/04/06/check-ollama-model-loaded-on-gpu/</link>
        <pubDate>Mon, 06 Apr 2026 10:15:18 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/06/check-ollama-model-loaded-on-gpu/</guid>
        <description>&lt;p&gt;Si quieres confirmar si un modelo de Ollama se está ejecutando realmente en la GPU, el método más directo es revisar la información de uso de procesador de los modelos cargados actualmente.&lt;/p&gt;
&lt;h2 id=&#34;comando&#34;&gt;Comando
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama ps
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;salida-de-ejemplo&#34;&gt;Salida de ejemplo
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;NAME        ID            SIZE    PROCESSOR   UNTIL
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;llama3:70b  bcfb190ca3a7  42 GB   100% GPU    4 minutes from now
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;cómo-interpretar-la-columna-processor&#34;&gt;Cómo interpretar la columna &lt;code&gt;PROCESSOR&lt;/code&gt;
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;100% GPU&lt;/code&gt;: el modelo está cargado por completo en la memoria de la GPU.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;100% CPU&lt;/code&gt;: el modelo está cargado por completo en la memoria del sistema (no usa GPU para inferencia).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;48%/52% CPU/GPU&lt;/code&gt;: una parte del modelo está en memoria del sistema y otra en memoria de GPU; es una carga mixta.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;consejos-prácticos&#34;&gt;Consejos prácticos
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;Si esperas usar GPU pero ves &lt;code&gt;100% CPU&lt;/code&gt;, revisa primero el driver de la tarjeta gráfica, el entorno CUDA/ROCm y los parámetros de ejecución de Ollama.&lt;/li&gt;
&lt;li&gt;Cuando el modelo es grande y la memoria de GPU no alcanza, suele aparecer una carga mixta CPU/GPU.&lt;/li&gt;
&lt;li&gt;Al diagnosticar problemas de rendimiento, ejecuta primero &lt;code&gt;ollama ps&lt;/code&gt; y luego mira los datos de velocidad; así podrás ubicar antes el cuello de botella.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;ollama ps&lt;/code&gt; es el primer paso para saber si un modelo está usando realmente la GPU. Basta con fijarse en la columna &lt;code&gt;PROCESSOR&lt;/code&gt; para confirmar rápidamente dónde está cargado el modelo y decidir la siguiente dirección de optimización.&lt;/p&gt;
&lt;!-- ollama-related-links:start --&gt;
</description>
        </item>
        <item>
        <title>Uso de las habilidades de los agentes de IA para mantener un blog multilingüe de Hugo</title>
        <link>https://knightli.com/es/2026/04/06/agent-skill-sync-post-translations-guide/</link>
        <pubDate>Mon, 06 Apr 2026 10:00:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/06/agent-skill-sync-post-translations-guide/</guid>
        <description>&lt;p&gt;Si mantiene un blog multilingüe de Hugo, probablemente se encuentre con un problema frecuente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Después de terminar el contenido en chino, aún necesitarás las versiones sincronizadas en inglés y chino tradicional.&lt;/li&gt;
&lt;li&gt;Todos los archivos de idioma deben mantener la misma estructura.&lt;/li&gt;
&lt;li&gt;La portada debe traducirse respetando las reglas del formato Hugo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;sync-post-translations&lt;/code&gt; está diseñado exactamente para este escenario.&lt;/p&gt;
&lt;h2 id=&#34;qué-problema-resuelve-esta-habilidad&#34;&gt;¿Qué problema resuelve esta habilidad?
&lt;/h2&gt;&lt;p&gt;El posicionamiento de &lt;code&gt;sync-post-translations&lt;/code&gt; es sencillo:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Utilice &lt;code&gt;index.zh-cn.md&lt;/code&gt; como archivo fuente&lt;/li&gt;
&lt;li&gt;Genere o actualice &lt;code&gt;index.en.md&lt;/code&gt; e &lt;code&gt;index.zh-tw.md&lt;/code&gt; en el mismo directorio&lt;/li&gt;
&lt;li&gt;Mantenga coherente la estructura de Markdown&lt;/li&gt;
&lt;li&gt;Aplique reglas explícitas al principio (especialmente &amp;ldquo;fecha&amp;rdquo; y &amp;ldquo;slug&amp;rdquo;)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Ejemplos de frases desencadenantes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;Sincronizar traducción al inglés y chino tradicional&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&amp;ldquo;Traducir esta publicación al inglés y chino tradicional&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;estructura-del-directorio-de-habilidades&#34;&gt;Estructura del directorio de habilidades
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;.\sync-post-translations\
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├─ SKILL.md
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;└─ agents\
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   └─ openai.yaml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;código-central-1-skillmd&#34;&gt;Código central 1: SKILL.md
&lt;/h2&gt;&lt;p&gt;A continuación se muestra el archivo de reglas básicas de esta habilidad:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;37
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;name: sync-post-translations
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;description: 将 Hugo 文章从简体中文源文件（&lt;span class=&#34;sb&#34;&gt;`index.zh-cn.md`&lt;/span&gt;）同步翻译为英文（&lt;span class=&#34;sb&#34;&gt;`index.en.md`&lt;/span&gt;）和繁体中文（&lt;span class=&#34;sb&#34;&gt;`index.zh-tw.md`&lt;/span&gt;）。当用户提出“en 繁体”“同步翻译英文繁体”或要求同时生成/更新两种语言版本且需保持 front matter 与 Markdown 结构一致时使用。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gh&#34;&gt;# 同步文章翻译
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;使用此技能为同一篇文章生成或更新多语言版本。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## 工作流程
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;1.&lt;/span&gt; 在目标文章目录中定位源文件 &lt;span class=&#34;sb&#34;&gt;`index.zh-cn.md`&lt;/span&gt;。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;2.&lt;/span&gt; 读取完整 front matter 与正文内容。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;3.&lt;/span&gt; 在同目录创建或更新 &lt;span class=&#34;sb&#34;&gt;`index.en.md`&lt;/span&gt; 与 &lt;span class=&#34;sb&#34;&gt;`index.zh-tw.md`&lt;/span&gt;。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;4.&lt;/span&gt; 确保三语结构对齐后执行 Hugo 构建检查。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## 翻译规则
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;1.&lt;/span&gt; 严格保留 &lt;span class=&#34;sb&#34;&gt;`slug`&lt;/span&gt; 原值。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;2.&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`date`&lt;/span&gt; 统一规范为 Hugo 常用带时间格式（RFC3339），示例：&lt;span class=&#34;sb&#34;&gt;`2026-04-05T10:00:00+08:00`&lt;/span&gt;。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;3.&lt;/span&gt; 自然翻译以下 front matter 字段：&lt;span class=&#34;sb&#34;&gt;`title`&lt;/span&gt;、&lt;span class=&#34;sb&#34;&gt;`description`&lt;/span&gt;、&lt;span class=&#34;sb&#34;&gt;`tags`&lt;/span&gt;、&lt;span class=&#34;sb&#34;&gt;`categories`&lt;/span&gt;。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;4.&lt;/span&gt; 保持 Markdown 结构不变：标题层级、列表形态、代码块、链接与命令行示例。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;5.&lt;/span&gt; 技术标识符保持原样：文件名、CLI 参数、模型名、设备名、URL、包名等。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;6.&lt;/span&gt; 若 YAML 的 &lt;span class=&#34;sb&#34;&gt;`title`&lt;/span&gt; 含有 &lt;span class=&#34;sb&#34;&gt;`:`&lt;/span&gt;，必须加引号，避免解析报错。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;7.&lt;/span&gt; 在不改变语义前提下，使用目标语言自然标点与表达习惯（&lt;span class=&#34;sb&#34;&gt;`en`&lt;/span&gt;、&lt;span class=&#34;sb&#34;&gt;`zh-tw`&lt;/span&gt;）。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## 输出约定
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;1.&lt;/span&gt; 仅在源文章同目录写入目标文件。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;2.&lt;/span&gt; 汇报变更的文件路径。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;3.&lt;/span&gt; 条件允许时执行 &lt;span class=&#34;sb&#34;&gt;`hugo --source . --destination public`&lt;/span&gt;，并反馈通过/失败；失败时给出关键报错行。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## 质量标准
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;1.&lt;/span&gt; 全文术语前后一致。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;2.&lt;/span&gt; 避免机器直译感，优先可发布文风。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;3.&lt;/span&gt; 章节内容完整，不省略示例、注意点与总结。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;código-central-2-agentesopenaiyaml&#34;&gt;Código central 2: agentes/openai.yaml
&lt;/h2&gt;&lt;p&gt;Este archivo define cómo se presenta y solicita la habilidad en el lado del agente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;interface&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;display_name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;同步文章翻译&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;short_description&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;生成或更新 EN + ZH-TW 翻译稿&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;default_prompt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;使用该技能在同一 Hugo 文章目录中，从 `index.zh-cn.md` 生成或同步 `index.en.md` 与 `index.zh-tw.md`，保留 `date` 与 `slug`，保持 Markdown 结构一致，并执行 Hugo 构建校验。&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;ejemplo-de-uso-práctico&#34;&gt;Ejemplo de uso práctico
&lt;/h2&gt;&lt;h3 id=&#34;1-activador-del-lenguaje-natural&#34;&gt;1) Activador del lenguaje natural
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;请把 content/post/2026/04/06/index.zh-cn.md 同步翻译成英文和繁体，
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;要求 date 用 RFC3339，slug 不变，最后跑 hugo 校验。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;2-resultado-esperado&#34;&gt;2) Resultado esperado
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;已更新：
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- content/post/2026/04/06/index.en.md
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- content/post/2026/04/06/index.zh-tw.md
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;构建校验：
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- hugo --source . --destination public
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 结果：PASS
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;por-qué-son-importantes-estas-reglas&#34;&gt;Por qué son importantes estas reglas
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;Mantener &amp;ldquo;slug&amp;rdquo; sin cambios conserva las URL estables y los vínculos de retroceso históricos.&lt;/li&gt;
&lt;li&gt;Normalizar la &amp;ldquo;fecha&amp;rdquo; a RFC3339 con zona horaria evita la ambigüedad en el análisis de Hugo/tema.&lt;/li&gt;
&lt;li&gt;Mantener la estructura de Markdown sin cambios evita problemas de representación de TOC, bloques de código y códigos cortos.&lt;/li&gt;
&lt;li&gt;No traducir identificadores técnicos reduce significativamente las discrepancias entre archivos y comandos rotos.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;errores-comunes-y-cómo-evitarlos&#34;&gt;Errores comunes y cómo evitarlos
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;Si &lt;code&gt;title&lt;/code&gt; contiene &lt;code&gt;:&lt;/code&gt; sin comillas, el análisis de YAML puede fallar.&lt;/li&gt;
&lt;li&gt;Traducir &lt;code&gt;--flags&lt;/code&gt;, URL o nombres de paquetes interrumpirá los ejemplos de comandos.&lt;/li&gt;
&lt;li&gt;Si los niveles de encabezado difieren entre idiomas (por ejemplo, &lt;code&gt;##&lt;/code&gt; se convierte en &lt;code&gt;###&lt;/code&gt;), los anclajes pueden volverse inconsistentes.&lt;/li&gt;
&lt;li&gt;Traducir solo el contenido del cuerpo, pero no el texto inicial, puede romper las páginas de la lista y los metadatos de SEO.&lt;/li&gt;
&lt;/ol&gt;
</description>
        </item>
        <item>
        <title>Ubicación predeterminada de modelos de Ollama y método de migración (para evitar llenar la unidad C)</title>
        <link>https://knightli.com/es/2026/04/06/ollama-model-storage-path-and-migration/</link>
        <pubDate>Mon, 06 Apr 2026 09:38:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/06/ollama-model-storage-path-and-migration/</guid>
        <description>&lt;p&gt;Cuando ejecutas modelos grandes localmente, lo primero que suele quedarse sin espacio es la unidad del sistema. Ollama descarga los modelos de forma predeterminada en el directorio del usuario o en un directorio del sistema. Si no planificas la ruta con antelación, la unidad C puede llenarse muy rápido.&lt;/p&gt;
&lt;h2 id=&#34;directorios-predeterminados-habituales-de-modelos-de-ollama&#34;&gt;Directorios predeterminados habituales de modelos de Ollama
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Windows: &lt;code&gt;C:\Users\&amp;lt;用户名&amp;gt;\.ollama\models&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;macOS: &lt;code&gt;~/.ollama/models&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Linux: &lt;code&gt;/usr/share/ollama/.ollama/models&lt;/code&gt; (puede variar según el método de instalación)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;windows-migrar-el-directorio-de-modelos-a-una-unidad-que-no-sea-del-sistema&#34;&gt;Windows: migrar el directorio de modelos a una unidad que no sea del sistema
&lt;/h2&gt;&lt;p&gt;Se recomienda mover el directorio de modelos, por ejemplo, a &lt;code&gt;D:\OllamaModels&lt;/code&gt;. El método clave es configurar la variable de entorno del sistema &lt;code&gt;OLLAMA_MODELS&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;1-crear-el-directorio-de-destino&#34;&gt;1. Crear el directorio de destino
&lt;/h2&gt;&lt;p&gt;Por ejemplo, crea primero: &lt;code&gt;D:\OllamaModels&lt;/code&gt;&lt;/p&gt;
&lt;h2 id=&#34;2-configurar-la-variable-de-entorno-del-sistema&#34;&gt;2. Configurar la variable de entorno del sistema
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Nombre de variable: &lt;code&gt;OLLAMA_MODELS&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Valor de variable: &lt;code&gt;D:\OllamaModels&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Puedes añadirla desde &amp;ldquo;Propiedades del sistema -&amp;gt; Opciones avanzadas -&amp;gt; Variables de entorno&amp;rdquo;, o configurarla con la línea de comandos (PowerShell como administrador):&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;no&#34;&gt;System.Environment&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]::&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;SetEnvironmentVariable&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;OLLAMA_MODELS&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;D:\OllamaModels&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Machine&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;3-reiniciar-ollama-o-reiniciar-el-sistema&#34;&gt;3. Reiniciar Ollama (o reiniciar el sistema)
&lt;/h2&gt;&lt;p&gt;Después de que la variable de entorno entre en vigor, reinicia el servicio o la aplicación de Ollama. Si no estás seguro de si ya se aplicó, reiniciar el equipo es la opción más estable.&lt;/p&gt;
&lt;h2 id=&#34;4-verificar-que-el-nuevo-directorio-esté-activo&#34;&gt;4. Verificar que el nuevo directorio esté activo
&lt;/h2&gt;&lt;p&gt;Después de descargar o hacer pull de cualquier modelo, comprueba si aparecen archivos nuevos bajo &lt;code&gt;D:\OllamaModels&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;5-limpiar-el-directorio-antiguo-después-de-confirmar&#34;&gt;5. Limpiar el directorio antiguo (después de confirmar)
&lt;/h2&gt;&lt;p&gt;Cuando confirmes que los modelos funcionan correctamente en el nuevo directorio, elimina el contenido del directorio antiguo para recuperar espacio en la unidad C.&lt;/p&gt;
&lt;h2 id=&#34;preguntas-frecuentes&#34;&gt;Preguntas frecuentes
&lt;/h2&gt;&lt;h3 id=&#34;qué-hacer-si-después-de-configurarlo-sigue-escribiendo-en-la-unidad-c&#34;&gt;Qué hacer si después de configurarlo sigue escribiendo en la unidad C
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Confirma que la variable de entorno sea una &amp;ldquo;variable del sistema&amp;rdquo;, no una variable temporal de la sesión actual.&lt;/li&gt;
&lt;li&gt;Confirma que el proceso de Ollama se haya reiniciado.&lt;/li&gt;
&lt;li&gt;Comprueba que el nombre de la variable sea exacto: debe ser &lt;code&gt;OLLAMA_MODELS&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;hay-que-migrar-los-archivos-de-modelos-antiguos&#34;&gt;Hay que migrar los archivos de modelos antiguos
&lt;/h3&gt;&lt;p&gt;Si no quieres volver a descargarlos, puedes detener Ollama, copiar manualmente los modelos antiguos al nuevo directorio y después iniciar Ollama para verificar.&lt;/p&gt;
&lt;!-- ollama-related-links:start --&gt;
</description>
        </item>
        <item>
        <title>Desinstalar Ollama por completo en Linux (incluida la limpieza de residuos)</title>
        <link>https://knightli.com/es/2026/04/06/uninstall-ollama-on-linux/</link>
        <pubDate>Mon, 06 Apr 2026 09:16:29 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/06/uninstall-ollama-on-linux/</guid>
        <description>&lt;p&gt;Si necesitas eliminar Ollama por completo en Linux, puedes seguir el orden siguiente. Este artículo limpia el servicio, el ejecutable, el directorio de modelos y también el usuario y grupo &lt;code&gt;ollama&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;avisos-antes-de-desinstalar&#34;&gt;Avisos antes de desinstalar
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Los comandos siguientes eliminarán los archivos de modelos locales de Ollama (normalmente en &lt;code&gt;/usr/share/ollama&lt;/code&gt;). Confirma antes si necesitas hacer una copia de seguridad.&lt;/li&gt;
&lt;li&gt;Los comandos usan &lt;code&gt;sudo&lt;/code&gt; por defecto. Asegúrate de que la cuenta actual tenga permisos de administrador.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;1-detener-y-eliminar-el-servicio-systemd&#34;&gt;1. Detener y eliminar el servicio systemd
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo systemctl stop ollama
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo systemctl disable ollama
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo rm -f /etc/systemd/system/ollama.service
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo systemctl daemon-reload
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;2-eliminar-el-ejecutable-de-ollama&#34;&gt;2. Eliminar el ejecutable de Ollama
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;OLLAMA_BIN&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;command&lt;/span&gt; -v ollama&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt; -n &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$OLLAMA_BIN&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  sudo rm -f &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$OLLAMA_BIN&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;3-eliminar-directorios-de-bibliotecas-relacionados-con-ollama-si-existen&#34;&gt;3. Eliminar directorios de bibliotecas relacionados con Ollama (si existen)
&lt;/h2&gt;&lt;p&gt;Si tu método de instalación escribió archivos de Ollama en directorios &lt;code&gt;lib&lt;/code&gt;, puedes limpiarlos así:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; d in /usr/local/lib/ollama /usr/lib/ollama /lib/ollama&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt; -d &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$d&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo rm -rf &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$d&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;4-eliminar-el-directorio-de-modelos-y-datos&#34;&gt;4. Eliminar el directorio de modelos y datos
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo rm -rf /usr/share/ollama
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;5-eliminar-el-usuario-y-grupo-del-sistema-si-existen&#34;&gt;5. Eliminar el usuario y grupo del sistema (si existen)
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;id -u ollama &amp;gt;/dev/null 2&amp;gt;&lt;span class=&#34;p&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo userdel ollama
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;getent group ollama &amp;gt;/dev/null 2&amp;gt;&lt;span class=&#34;p&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo groupdel ollama
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;6-verificar-si-la-desinstalación-terminó&#34;&gt;6. Verificar si la desinstalación terminó
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;command&lt;/span&gt; -v ollama &lt;span class=&#34;o&#34;&gt;||&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;ollama binary not found&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;systemctl status ollama &lt;span class=&#34;o&#34;&gt;||&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si las comprobaciones anteriores ya no encuentran &lt;code&gt;ollama&lt;/code&gt;, la desinstalación se ha completado.&lt;/p&gt;
&lt;!-- ollama-related-links:start --&gt;
</description>
        </item>
        <item>
        <title>Explicación de la cuantificación de LLM: cómo elegir FP16, Q8, Q5, Q4 o Q2</title>
        <link>https://knightli.com/es/2026/04/05/llm-quantization-guide-fp16-q4-q2/</link>
        <pubDate>Sun, 05 Apr 2026 22:09:11 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/05/llm-quantization-guide-fp16-q4-q2/</guid>
        <description>&lt;p&gt;El objetivo principal de la cuantificación es simple: intercambiar una pequeña cantidad de precisión por un tamaño de modelo más pequeño, un menor uso de VRAM y una inferencia más rápida.&lt;br&gt;
Para la implementación local, elegir el formato de cuantificación correcto suele ser más importante que buscar un recuento de parámetros mayor.&lt;/p&gt;
&lt;h2 id=&#34;qué-es-la-cuantización&#34;&gt;¿Qué es la cuantización?
&lt;/h2&gt;&lt;p&gt;La cuantización significa comprimir los parámetros del modelo desde formatos de mayor precisión (como &amp;ldquo;FP16&amp;rdquo;) a formatos de bits más bajos (como &amp;ldquo;Q8&amp;rdquo; y &amp;ldquo;Q4&amp;rdquo;).&lt;/p&gt;
&lt;p&gt;Una analogía simple:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Modelo original: como una foto de alta calidad, clara pero grande.&lt;/li&gt;
&lt;li&gt;Modelo cuantificado: como una foto comprimida, ligeramente menos detallada pero más ligera y rápida.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;formatos-de-cuantificación-comunes&#34;&gt;Formatos de cuantificación comunes
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Cuantización&lt;/th&gt;
          &lt;th&gt;Precisión/Ancho de broca&lt;/th&gt;
          &lt;th&gt;Tamaño&lt;/th&gt;
          &lt;th&gt;Pérdida de calidad&lt;/th&gt;
          &lt;th&gt;Uso recomendado&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;FP16&lt;/td&gt;
          &lt;td&gt;flotante de 16 bits&lt;/td&gt;
          &lt;td&gt;Más grande&lt;/td&gt;
          &lt;td&gt;Casi ninguno&lt;/td&gt;
          &lt;td&gt;Investigación, evaluación, máxima calidad&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Q8_0&lt;/td&gt;
          &lt;td&gt;Entero de 8 bits&lt;/td&gt;
          &lt;td&gt;Más grande&lt;/td&gt;
          &lt;td&gt;Casi ninguno&lt;/td&gt;
          &lt;td&gt;PC de alta gama, calidad + rendimiento&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Q5_K_M&lt;/td&gt;
          &lt;td&gt;5 bits mixto&lt;/td&gt;
          &lt;td&gt;Medio&lt;/td&gt;
          &lt;td&gt;Ligero&lt;/td&gt;
          &lt;td&gt;Conductor diario, elección equilibrada&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Q4_K_M&lt;/td&gt;
          &lt;td&gt;Mixto de 4 bits&lt;/td&gt;
          &lt;td&gt;Más pequeño&lt;/td&gt;
          &lt;td&gt;Aceptable&lt;/td&gt;
          &lt;td&gt;Valor predeterminado general, valor fuerte&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Q3_K_M&lt;/td&gt;
          &lt;td&gt;Mezclado de 3 bits&lt;/td&gt;
          &lt;td&gt;Muy pequeño&lt;/td&gt;
          &lt;td&gt;Notable&lt;/td&gt;
          &lt;td&gt;Dispositivos de baja especificación, ejecutar primero&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Q2_K&lt;/td&gt;
          &lt;td&gt;Mixto de 2 bits&lt;/td&gt;
          &lt;td&gt;Más pequeño&lt;/td&gt;
          &lt;td&gt;Significativo&lt;/td&gt;
          &lt;td&gt;Límites extremos de recursos, respaldo&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;reglas-de-denominación-de-cuantificación&#34;&gt;Reglas de denominación de cuantificación
&lt;/h2&gt;&lt;p&gt;Tome &lt;code&gt;gemma-4:4b-q4_k_m&lt;/code&gt; como ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;gemma-4:4b&lt;/code&gt;: nombre del modelo y escala de parámetros.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;q4&lt;/code&gt;: cuantificación de 4 bits.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k&lt;/code&gt;: K-quants (un método de cuantificación mejorado).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;m&lt;/code&gt;: nivel medio (las opciones comunes también incluyen &lt;code&gt;s&lt;/code&gt;/small y &lt;code&gt;l&lt;/code&gt;/large).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;selección-rápida-por-vram&#34;&gt;Selección rápida por VRAM
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;RAM/VRAM&lt;/th&gt;
          &lt;th&gt;Cuantización recomendada&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;4 GB&lt;/td&gt;
          &lt;td&gt;Q3_K_M / Q2_K&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;8 GB&lt;/td&gt;
          &lt;td&gt;Q4_K_M&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;16 GB&lt;/td&gt;
          &lt;td&gt;Q5_K_M / Q8_0&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;32GB+&lt;/td&gt;
          &lt;td&gt;FP16 / T8_0&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Comience con una versión que se ejecute de manera estable en su máquina, luego avance con precisión paso a paso en lugar de saltar directamente al modelo más grande.&lt;/p&gt;
&lt;h2 id=&#34;consejos-prácticos&#34;&gt;Consejos prácticos
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;Comience con &lt;code&gt;Q4_K_M&lt;/code&gt; de forma predeterminada y pruebe primero las tareas reales.&lt;/li&gt;
&lt;li&gt;Si la calidad de la respuesta no es suficiente, suba a &lt;code&gt;Q5_K_M&lt;/code&gt; o &lt;code&gt;Q8_0&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Si la VRAM o la velocidad son el principal cuello de botella, baje a &lt;code&gt;Q3_K_M&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Utilice el mismo conjunto de prueba cada vez que cambie de formato de cuantificación.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;conclusión&#34;&gt;Conclusión
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Calidad primero: &lt;code&gt;FP16&lt;/code&gt; o &lt;code&gt;Q8_0&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Saldo primero: &lt;code&gt;Q5_K_M&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Valor predeterminado general: &lt;code&gt;Q4_K_M&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Reserva de baja especificación: &lt;code&gt;Q3_K_M&lt;/code&gt; o &lt;code&gt;Q2_K&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La clave no es &amp;ldquo;cuanto más grande, mejor&amp;rdquo;, sino &amp;ldquo;el resultado más estable y utilizable bajo los límites de su hardware&amp;rdquo;.&lt;/p&gt;
&lt;!-- enlaces-relacionados-con-ollama:inicio --&gt;
&lt;h2 id=&#34;publicaciones-relacionadas&#34;&gt;Publicaciones relacionadas
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Comparación y selección de modelos Gemma 4&lt;/li&gt;
&lt;li&gt;Desinstalar completamente Ollama en Linux&lt;/li&gt;
&lt;li&gt;Ruta de almacenamiento y migración del modelo Ollama&lt;/li&gt;
&lt;li&gt;Cómo comprobar si Ollama usa GPU&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- enlaces-relacionados-con-ollama:end --&gt;
</description>
        </item>
        <item>
        <title>Comparación de modelos Google Gemma 4: cómo elegir entre 2B/4B/26B/31B</title>
        <link>https://knightli.com/es/2026/04/05/google-gemma-4-model-comparison/</link>
        <pubDate>Sun, 05 Apr 2026 08:30:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/05/google-gemma-4-model-comparison/</guid>
        <description>&lt;p&gt;Gemma 4 se centra en la &amp;ldquo;multimodalidad&amp;rdquo; y la &amp;ldquo;inferencia local fuera de línea&amp;rdquo;, con una gama completa desde modelos livianos hasta modelos de alto rendimiento. Para la mayoría de los usuarios de implementación local, la clave no es elegir el modelo más grande, sino el que mejor se adapte a las necesidades de hardware y tareas.&lt;/p&gt;
&lt;h2 id=&#34;comparación-de-modelos-gemma-4&#34;&gt;Comparación de modelos Gemma 4
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;La siguiente tabla es para una selección rápida del modelo. El rendimiento real y el uso de recursos deben validarse en su propio entorno.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Modelo&lt;/th&gt;
          &lt;th&gt;Tamaño del parámetro&lt;/th&gt;
          &lt;th&gt;Posicionamiento&lt;/th&gt;
          &lt;th&gt;Fortalezas clave&lt;/th&gt;
          &lt;th&gt;Principales limitaciones&lt;/th&gt;
          &lt;th&gt;Escenarios recomendados&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Gema 4 2B&lt;/td&gt;
          &lt;td&gt;2B&lt;/td&gt;
          &lt;td&gt;Ultraligero&lt;/td&gt;
          &lt;td&gt;Baja latencia, bajo uso de recursos, barrera de implementación más baja&lt;/td&gt;
          &lt;td&gt;Rendimiento limitado en razonamientos complejos y largas cadenas de tareas&lt;/td&gt;
          &lt;td&gt;Móvil, IoT, preguntas y respuestas ligeras, automatización sencilla&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Gema 4 4B&lt;/td&gt;
          &lt;td&gt;4B&lt;/td&gt;
          &lt;td&gt;Ligero mejorado&lt;/td&gt;
          &lt;td&gt;Mayor comprensión y generación que 2B, aún fácil de implementar localmente&lt;/td&gt;
          &lt;td&gt;Límite limitado para codificación pesada y tareas complejas de agentes&lt;/td&gt;
          &lt;td&gt;Asistente local, trabajo documental básico, tareas diarias multilingües&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Gema 4 26B&lt;/td&gt;
          &lt;td&gt;26B&lt;/td&gt;
          &lt;td&gt;Alto rendimiento (MoE)&lt;/td&gt;
          &lt;td&gt;Mejor razonamiento y uso de herramientas, adecuado para flujos de trabajo de producción&lt;/td&gt;
          &lt;td&gt;Requisito de VRAM y umbral de hardware significativamente mayores&lt;/td&gt;
          &lt;td&gt;Asistente de codificación, flujos de trabajo complejos, agentes internos empresariales&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Gema 4 31B&lt;/td&gt;
          &lt;td&gt;31B&lt;/td&gt;
          &lt;td&gt;Alto rendimiento (denso)&lt;/td&gt;
          &lt;td&gt;Mejor capacidad general y mayor estabilidad en tareas complejas&lt;/td&gt;
          &lt;td&gt;Mayor coste de recursos y complejidad de ajuste&lt;/td&gt;
          &lt;td&gt;Razonamiento avanzado, tareas de codificación complejas, automatización intensa&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;cómo-elegir-comenzar-desde-hardware-y-tareas&#34;&gt;Cómo elegir: comenzar desde hardware y tareas
&lt;/h2&gt;&lt;p&gt;Si su principal preocupación es si funciona sin problemas, utilice esta guía:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;VRAM &lt;code&gt;8GB&lt;/code&gt;: prioriza &lt;code&gt;2B/4B&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;VRAM &lt;code&gt;12GB&lt;/code&gt;: prioriza &lt;code&gt;4B&lt;/code&gt; o variantes cuantificadas de modelos más grandes.&lt;/li&gt;
&lt;li&gt;VRAM &lt;code&gt;24GB&lt;/code&gt;: céntrese en &lt;code&gt;26B&lt;/code&gt; y evalúe &lt;code&gt;31B&lt;/code&gt; cuantificados según la carga de trabajo.&lt;/li&gt;
&lt;li&gt;Mayor VRAM o multi-GPU: considere configuraciones &lt;code&gt;31B&lt;/code&gt; de alta precisión.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Primero, priorice la estabilidad y la velocidad de inferencia y luego aumente gradualmente el tamaño del modelo.&lt;/p&gt;
&lt;h2 id=&#34;cuatro-casos-de-uso-típicos&#34;&gt;Cuatro casos de uso típicos
&lt;/h2&gt;&lt;h3 id=&#34;1-asistente-general-local&#34;&gt;1) Asistente General Local
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Modelo preferido: &lt;code&gt;4B&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Por qué: fuerte equilibrio entre coste y calidad, adecuado para un uso local a largo plazo.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2-codificación-y-automatización&#34;&gt;2) Codificación y automatización
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Modelo preferido: &lt;code&gt;26B&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Por qué: más estable en tareas de varios pasos, llamadas a herramientas y generación de scripts.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;3-razonamiento-avanzado-y-agentes-complejos&#34;&gt;3) Razonamiento avanzado y agentes complejos
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Modelo preferido: &lt;code&gt;31B&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Por qué: mayor solidez en un contexto complejo.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;4-dispositivos-perimetrales-y-uso-ligero-sin-conexión&#34;&gt;4) Dispositivos perimetrales y uso ligero sin conexión
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Modelo preferido: &lt;code&gt;2B&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Por qué: es más fácil de implementar en dispositivos con recursos limitados.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;sugerencias-de-implementación-ollama&#34;&gt;Sugerencias de implementación (Ollama)
&lt;/h2&gt;&lt;p&gt;Un enfoque práctico es iterar en pequeños pasos:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Comience con &lt;code&gt;4B&lt;/code&gt; para establecer una línea de base (latencia, memoria, calidad).&lt;/li&gt;
&lt;li&gt;Cree un conjunto de pruebas fijo a partir de tareas reales (por ejemplo, 20 preguntas comunes + 10 tareas de automatización).&lt;/li&gt;
&lt;li&gt;Compare &lt;code&gt;26B/31B&lt;/code&gt; con el conjunto en cuanto a precisión, latencia y costo de VRAM.&lt;/li&gt;
&lt;li&gt;Actualice sólo cuando la ganancia sea clara.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Esto evita saltar a un modelo grande demasiado pronto y sufrir retrasos, bajo rendimiento y gastos generales de mantenimiento.&lt;/p&gt;
&lt;h2 id=&#34;conclusión&#34;&gt;Conclusión
&lt;/h2&gt;&lt;p&gt;El valor real de Gemma 4 no es sólo un mayor número de parámetros, sino también un modelo práctico que permite pasar de ser liviano a uno de alto rendimiento:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Para una implementación rápida y de bajo costo: comience con &amp;ldquo;2B/4B&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;Para flujos de trabajo de IA locales de nivel de producción: priorice &amp;ldquo;26B&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;Para razonamiento avanzado y automatización intensa: pase a &lt;code&gt;31B&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En la mayoría de los casos, la mejor opción de Gemma 4 no es el modelo más grande, sino el que mejor se adapta a su hardware y objetivos de tareas.&lt;/p&gt;
&lt;!-- enlaces-relacionados-con-ollama:inicio --&gt;
&lt;h2 id=&#34;publicaciones-relacionadas&#34;&gt;Publicaciones relacionadas
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/04/05/llm-quantization-guide-fp16-q4-q2/&#34; &gt;Guía de Cuantización LLM (FP16/Q8/Q5/Q4/Q2)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Desinstalar completamente Ollama en Linux&lt;/li&gt;
&lt;li&gt;Ruta de almacenamiento y migración del modelo Ollama&lt;/li&gt;
&lt;li&gt;Cómo comprobar si Ollama usa GPU&lt;/li&gt;
&lt;li&gt;Cómo instalar y ejecutar Gemma 4 en Android&lt;/li&gt;
&lt;li&gt;Cómo ejecutar Gemma 4 en una computadora portátil: guía de configuración local de 5 minutos&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- enlaces-relacionados-con-ollama:end --&gt;
</description>
        </item>
        <item>
        <title>Análisis de la habilidad del agente docx de Anthropic: características, estructura del código, uso y advertencias</title>
        <link>https://knightli.com/es/2026/04/04/analyze-docx-agent-skill/</link>
        <pubDate>Sat, 04 Apr 2026 11:00:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/04/analyze-docx-agent-skill/</guid>
        <description>&lt;p&gt;&lt;code&gt;skills/docx&lt;/code&gt; de Anthropic es esencialmente una especificación de flujo de trabajo más un conjunto de herramientas de script para manejar documentos de Word de manera más confiable con IA.&lt;br&gt;
No solo le dice a un modelo que &amp;ldquo;genere un &lt;code&gt;.docx&lt;/code&gt;&amp;rdquo;. En cambio, divide el trabajo del documento en rutas explícitas: crear, leer, editar archivos existentes, manejar cambios rastreados, agregar comentarios, convertir formatos y validar la estructura OOXML.&lt;/p&gt;
&lt;p&gt;Si lo reducimos a una línea:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Trata &lt;code&gt;.docx&lt;/code&gt; como restricciones de compatibilidad ZIP + XML + Office, no como un cuadro negro.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;qué-resuelve-esta-habilidad&#34;&gt;Qué resuelve esta habilidad
&lt;/h2&gt;&lt;p&gt;Cuando los modelos de uso general manejan archivos de Word, a menudo vemos los mismos patrones de falla:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Generan texto, pero no un &lt;code&gt;.docx&lt;/code&gt; estructuralmente válido.&lt;/li&gt;
&lt;li&gt;Rompen OOXML al editar documentos existentes.&lt;/li&gt;
&lt;li&gt;No saben qué partes XML actualizar para comentarios o seguimiento de cambios.&lt;/li&gt;
&lt;li&gt;La salida se abre en una aplicación pero se comporta de manera inconsistente en Word, LibreOffice y Google Docs.&lt;/li&gt;
&lt;li&gt;Carecen de una ruta clara sobre cuándo usar &lt;code&gt;pandoc&lt;/code&gt; versus desempaquetar/editar/reempaquetar.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;El valor de esta habilidad es que adelanta esas decisiones:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Utilice &lt;code&gt;pandoc&lt;/code&gt; o desempaquetado para lectura y análisis.&lt;/li&gt;
&lt;li&gt;Utilice &lt;code&gt;docx-js&lt;/code&gt; para crear nuevos archivos &lt;code&gt;.docx&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Utilice &amp;ldquo;desempaquetar -&amp;gt; editar XML -&amp;gt; recomprimir -&amp;gt; validar&amp;rdquo; para los documentos existentes.&lt;/li&gt;
&lt;li&gt;Utilice scripts dedicados para realizar seguimiento de cambios/comentarios/operaciones sensibles a esquemas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ese enfoque funciona porque los problemas de Word generalmente no tienen que ver con la calidad de la redacción. Se trata de corrección estructural y compatibilidad.&lt;/p&gt;
&lt;h2 id=&#34;directorio-y-estructura-de-código&#34;&gt;Directorio y estructura de código
&lt;/h2&gt;&lt;p&gt;Esta habilidad se puede entender en cuatro capas.&lt;/p&gt;
&lt;h3 id=&#34;1-capa-de-orientación-skillmd&#34;&gt;1. Capa de orientación: &lt;code&gt;SKILL.md&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;SKILL.md&lt;/code&gt; hace dos trabajos importantes:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Define las condiciones de activación.&lt;br&gt;
Si una solicitud menciona Word, &lt;code&gt;.docx&lt;/code&gt;, comentarios, seguimiento de cambios, TOC, números de página o formato de documento pulido, se debe activar esta habilidad.&lt;/li&gt;
&lt;li&gt;Define rutas de ejecución.&lt;br&gt;
Los diferentes tipos de tareas se asignan a diferentes cadenas de herramientas, en lugar de improvisar cada ejecución.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;También captura reglas prácticas de compatibilidad, por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;docx-js&lt;/code&gt; por defecto es A4, no Carta estadounidense.&lt;/li&gt;
&lt;li&gt;El tamaño de la página horizontal debe seguir las normas internas de &lt;code&gt;docx-js&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Las listas no deben crearse a partir de viñetas Unicode manuales.&lt;/li&gt;
&lt;li&gt;El ancho de la tabla necesita ajustes coordinados a nivel de tabla y celda.&lt;/li&gt;
&lt;li&gt;Se requiere &amp;ldquo;tipo&amp;rdquo; de imagen.&lt;/li&gt;
&lt;li&gt;Los archivos generados deben ser validados.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esta es una fuerte señal de que el objetivo no es simplemente &amp;ldquo;generar algo&amp;rdquo;, sino &amp;ldquo;generar algo que sea sólido&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;2-capa-de-paquete-de-office-scriptsoffice&#34;&gt;2. Capa de paquete de Office: &lt;code&gt;scripts/office/*&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;Esta capa trata &lt;code&gt;.docx/.pptx/.xlsx&lt;/code&gt; como paquetes Open XML.&lt;/p&gt;
&lt;h3 id=&#34;desempaquetarpy&#34;&gt;&lt;code&gt;desempaquetar.py&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Este script descomprime archivos y prepara XML para una edición más segura:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Extrae el contenido del paquete ZIP&lt;/li&gt;
&lt;li&gt;Imprime XML y &lt;code&gt;.rels&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Opcionalmente ejecuta &lt;code&gt;merge_runs&lt;/code&gt; para DOCX&lt;/li&gt;
&lt;li&gt;Opcionalmente ejecuta &lt;code&gt;simplify_redlines&lt;/code&gt; para DOCX&lt;/li&gt;
&lt;li&gt;Escapa de comillas tipográficas a entidades XML&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Entonces no se trata sólo de descompresión. Normaliza el contenido en una forma fácil de editar.&lt;/p&gt;
&lt;h3 id=&#34;paquetepy&#34;&gt;&lt;code&gt;paquete.py&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Este script vuelve a empaquetar un directorio en &lt;code&gt;.docx/.pptx/.xlsx&lt;/code&gt;.&lt;br&gt;
Antes del envasado, puede:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ejecutar validación y reparación automática.&lt;/li&gt;
&lt;li&gt;Condensar el formato XML de forma segura&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si se proporciona &amp;ldquo;&amp;ndash;original&amp;rdquo;, se compara y valida con el contexto de origen.&lt;br&gt;
Eso es importante porque &amp;ldquo;reempaquetado exitosamente&amp;rdquo; no es igual a &amp;ldquo;semánticamente seguro&amp;rdquo;.&lt;/p&gt;
&lt;h3 id=&#34;validarpy&#34;&gt;&lt;code&gt;validar.py&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Ésta es la puerta de la calidad. Comprueba:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;XML bien formado&lt;/li&gt;
&lt;li&gt;Corrección del espacio de nombres&lt;/li&gt;
&lt;li&gt;Restricciones de identificación únicas&lt;/li&gt;
&lt;li&gt;Consistencia de relación/tipo de contenido&lt;/li&gt;
&lt;li&gt;Cumplimiento de XSD&lt;/li&gt;
&lt;li&gt;Reglas de preservación de espacios en blanco.&lt;/li&gt;
&lt;li&gt;Restricciones de inserción/eliminación/marcador de comentarios&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para el trabajo DOCX, este es un componente principal, no un extra opcional.&lt;/p&gt;
&lt;h3 id=&#34;sofficepy&#34;&gt;&lt;code&gt;soffice.py&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Este asistente envuelve la ejecución de LibreOffice para entornos restringidos/aislados.&lt;br&gt;
Configura &lt;code&gt;SAL_USE_VCLPLUGIN=svp&lt;/code&gt; y puede aplicar una corrección para las limitaciones del socket AF_UNIX cuando sea necesario.&lt;/p&gt;
&lt;p&gt;Eso nos dice que la habilidad está diseñada para flujos de trabajo de agentes automatizados, no solo para uso manual local.&lt;/p&gt;
&lt;h2 id=&#34;3-capa-específica-de-word-comentarios-revisiones-y-líneas-rojas&#34;&gt;3. Capa específica de Word: comentarios, revisiones y líneas rojas
&lt;/h2&gt;&lt;h3 id=&#34;comentariopy&#34;&gt;&lt;code&gt;comentario.py&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Este script agrega comentarios a DOCX, incluida la configuración de paquetes requerida en varias partes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;palabra/comentarios.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;comentariosExtendido.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;comentariosIds.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;comentariosExtensible.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;marcadores de rango de comentarios en &lt;code&gt;document.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;declaraciones en &lt;code&gt;[Content_Types].xml&lt;/code&gt; y &lt;code&gt;document.xml.rels&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si las partes de comentarios aún no existen, puede inicializar plantillas y relaciones/tipos de contenido requeridos.&lt;/p&gt;
&lt;h3 id=&#34;aceptar_cambiospy&#34;&gt;&lt;code&gt;aceptar_cambios.py&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Este script acepta todos los cambios rastreados a través de LibreOffice headless + macro (&lt;code&gt;.uno:AcceptAllTrackedChanges&lt;/code&gt;) en lugar de una frágil cirugía XML sin formato.&lt;/p&gt;
&lt;p&gt;Esa es una elección pragmática porque aceptar revisiones es una operación a nivel de comportamiento, no solo eliminar etiquetas &lt;code&gt;&amp;lt;w:ins&amp;gt;&lt;/code&gt;/&lt;code&gt;&amp;lt;w:del&amp;gt;&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;validadoresredliningpy&#34;&gt;&lt;code&gt;validadores/redlining.py&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Esta es una de las piezas más valiosas.&lt;br&gt;
Elimina los cambios rastreados para un autor específico tanto en documentos originales como modificados, luego compara el texto resultante para verificar que los cambios estén representados correctamente en el marcado de revisión.&lt;/p&gt;
&lt;p&gt;Por tanto, valida la semántica de revisión, no sólo la sintaxis XML.&lt;/p&gt;
&lt;h2 id=&#34;4-esquema-y-capa-de-soporte-schemas-helpers-templates&#34;&gt;4. Esquema y capa de soporte: &lt;code&gt;schemas/&lt;/code&gt;, &lt;code&gt;helpers/&lt;/code&gt;, &lt;code&gt;templates/&lt;/code&gt;
&lt;/h2&gt;&lt;h3 id=&#34;esquemas&#34;&gt;&lt;code&gt;esquemas/&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Contiene archivos XSD relacionados con OOXML/ECMA/Microsoft utilizados por los validadores.&lt;br&gt;
Por lo tanto, la validación se basa en restricciones de esquema formal.&lt;/p&gt;
&lt;h3 id=&#34;ayudantes&#34;&gt;&lt;code&gt;ayudantes/&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Incluye utilidades como:&lt;/p&gt;
&lt;p&gt;-&lt;code&gt;merge_runs.py&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;simplificar_redlines.py&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estos estabilizan la estructura XML para lograr ediciones y diferencias más claras.&lt;/p&gt;
&lt;h3 id=&#34;plantillas&#34;&gt;&lt;code&gt;plantillas/&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Contiene plantillas XML necesarias para admitir comentarios, que incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;comentarios.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;comentariosExtendido.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;comentariosIds.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;comentariosExtensible.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;personas.xml&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas plantillas ayudan a evitar inconsistencias a nivel de paquete al crear partes relacionadas con comentarios.&lt;/p&gt;
&lt;h2 id=&#34;patrones-de-uso-típicos&#34;&gt;Patrones de uso típicos
&lt;/h2&gt;&lt;p&gt;Desde &lt;code&gt;SKILL.md&lt;/code&gt;, los flujos de trabajo más comunes son:&lt;/p&gt;
&lt;h2 id=&#34;escenario-1-leeranalizar-un-docx-existente&#34;&gt;Escenario 1: leer/analizar un DOCX existente
&lt;/h2&gt;&lt;p&gt;Utilice &lt;code&gt;pandoc&lt;/code&gt; para la extracción a nivel de texto con seguimiento de cambios:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pandoc --track-changes&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;all document.docx -o output.md
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Utilice el desembalaje para la inspección XML sin formato:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python scripts/office/unpack.py document.docx unpacked/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;escenario-2-crear-un-nuevo-docx&#34;&gt;Escenario 2: crear un nuevo DOCX
&lt;/h2&gt;&lt;p&gt;Utilice &lt;code&gt;docx-js&lt;/code&gt; para la generación:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -g docx
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Luego valide:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python scripts/office/validate.py doc.docx
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;escenario-3-editar-un-docx-existente&#34;&gt;Escenario 3: editar un DOCX existente
&lt;/h2&gt;&lt;p&gt;Flujo de trabajo principal:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python scripts/office/unpack.py document.docx unpacked/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# edit XML under unpacked/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python scripts/office/pack.py unpacked/ output.docx --original document.docx
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;--original&lt;/code&gt; es la parte crítica porque permite controles estructurales y de revisión más sólidos.&lt;/p&gt;
&lt;h2 id=&#34;escenario-4-aceptar-todos-los-cambios-rastreados&#34;&gt;Escenario 4: aceptar todos los cambios rastreados
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python scripts/accept_changes.py input.docx output.docx
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Requiere LibreOffice; útil para producir un archivo limpio posterior a la revisión.&lt;/p&gt;
&lt;h2 id=&#34;escenario-5-agregar-comentarios&#34;&gt;Escenario 5: Agregar comentarios
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python comment.py unpacked/ &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Comment text&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python comment.py unpacked/ &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Reply text&amp;#34;&lt;/span&gt; --parent &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Aún necesita colocar marcadores de rango de comentarios en &lt;code&gt;document.xml&lt;/code&gt; donde debe adjuntarse el comentario.&lt;/p&gt;
&lt;h2 id=&#34;advertencias-clave-para-recordar&#34;&gt;Advertencias clave para recordar
&lt;/h2&gt;&lt;h3 id=&#34;1-docx-no-es-un-archivo-de-texto-sin-formato&#34;&gt;1. &lt;code&gt;.docx&lt;/code&gt; no es un archivo de texto sin formato
&lt;/h3&gt;&lt;p&gt;Una única edición puede implicar cuerpo XML, relaciones, tipos de contenido, partes de comentarios, ID y restricciones de esquema.&lt;/p&gt;
&lt;h3 id=&#34;2-la-generación-docx-js-todavía-necesita-barreras-de-seguridad-explícitas&#34;&gt;2. La generación &lt;code&gt;docx-js&lt;/code&gt; todavía necesita barreras de seguridad explícitas
&lt;/h3&gt;&lt;p&gt;Los valores predeterminados pueden ser incorrectos para el diseño objetivo y los objetivos de compatibilidad.&lt;/p&gt;
&lt;h3 id=&#34;3-los-comentarios-y-los-cambios-rastreados-son-operaciones-de-varias-partes&#34;&gt;3. Los comentarios y los cambios rastreados son operaciones de varias partes
&lt;/h3&gt;&lt;p&gt;Son funciones a nivel de paquete, no ediciones de una sola etiqueta.&lt;/p&gt;
&lt;h3 id=&#34;4-se-abre-correctamente-no-significa-modificado-correctamente&#34;&gt;4. &amp;ldquo;Se abre correctamente&amp;rdquo; no significa &amp;ldquo;modificado correctamente&amp;rdquo;
&lt;/h3&gt;&lt;p&gt;Muchos problemas solo surgen más tarde durante la edición, revisión, apertura entre aplicaciones o aceptación de cambios.&lt;/p&gt;
&lt;h3 id=&#34;5-la-preparación-ambiental-importa&#34;&gt;5. La preparación ambiental importa
&lt;/h3&gt;&lt;p&gt;Necesita herramientas como &lt;code&gt;pandoc&lt;/code&gt;, &lt;code&gt;LibreOffice/soffice&lt;/code&gt;, &lt;code&gt;docx-js&lt;/code&gt; y Python deps (&lt;code&gt;defusedxml&lt;/code&gt;, &lt;code&gt;lxml&lt;/code&gt;) disponibles.&lt;/p&gt;
&lt;h2 id=&#34;para-qué-sirve-esta-habilidad-y-para-qué-no&#34;&gt;Para qué sirve esta habilidad (y para qué no)
&lt;/h2&gt;&lt;h3 id=&#34;buen-ajuste&#34;&gt;Buen ajuste
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Generación de informes de Word por lotes&lt;/li&gt;
&lt;li&gt;Producción de documentos formales estructurados.&lt;/li&gt;
&lt;li&gt;Ediciones automatizadas a &lt;code&gt;.docx&lt;/code&gt; existente&lt;/li&gt;
&lt;li&gt;Flujos de trabajo conscientes de los cambios rastreados&lt;/li&gt;
&lt;li&gt;Inserción automática de comentarios.&lt;/li&gt;
&lt;li&gt;Canalizaciones de documentos basados en agentes/scripts&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;no-es-ideal&#34;&gt;No es ideal
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Casos de salida muy simples solo en PDF&lt;/li&gt;
&lt;li&gt;Extracción de texto puro sin requisitos de fidelidad del documento.&lt;/li&gt;
&lt;li&gt;Flujos de trabajo de edición visual totalmente manuales.&lt;/li&gt;
&lt;li&gt;Expectativas de dependencia cero para la automatización de Word de un extremo a otro&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;skills/docx&lt;/code&gt; de Anthropic es fuerte no porque pueda &amp;ldquo;generar archivos de Word&amp;rdquo;, sino porque codifica por qué falla la automatización de Word y cómo manejar esos modos de falla sistemáticamente.&lt;br&gt;
Combina generación, edición XML de bajo nivel, semántica de revisión, validación de esquemas y compatibilidad entre aplicaciones en un flujo de trabajo ejecutable.&lt;/p&gt;
&lt;p&gt;Si su caso de uso incluye ediciones DOCX existentes, comentarios, cambios rastreados o automatización sensible a la compatibilidad, este diseño es muy práctico y de gran valor.&lt;/p&gt;
&lt;p&gt;Ubicación del código: &lt;a class=&#34;link&#34; href=&#34;https://github.com/anthropics/skills/tree/main/skills/docx&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/anthropics/skills/tree/main/skills/docx&lt;/a&gt;&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
