#
Image Captioning
Image Captioning permite que SillyTavern genere automáticamente descripciones de texto para las imágenes utilizadas en chats.
Usa Image Captioning cuando quieras que tu personaje de IA "vea" y responda al contenido visual en tus conversaciones.
- Crear títulos para imágenes que subas o pegues en los mensajes
- Añadir contexto a imágenes existentes en el historial del chat
- Usar varias fuentes para la generación, incluyendo modelos locales, APIs en la nube, y redes colaborativas
Hay opciones que no requieren configuración, no cuestan dinero y no necesitan GPU. También hay opciones que requieren algunos o todos esos recursos. Elige la que se adapte a tus necesidades y recursos.
La extensión de Image Captioning está integrada en SillyTavern y no necesita ser instalada por separado.
#
Inicio rápido
- Configuración:
- Abre el panel Image Captioning en el panel Extensiones
- Elige una fuente de captioning (lo más probable es "Local" o "Multimodal")
- Para "Multimodal" asegúrate de haber configurado la conexión en la pestaña Conexiones de API
- Genera un título:
- Elige "Generate Caption" del menú emergente Extensiones
- Selecciona un archivo de imagen cuando se te pida
- Espera a que se genere el título
- Revisa y envía:
- La imagen con título se insertará en tu mensaje
- Ve el título usando el tooltip de la imagen
- Haz clic en Enviar para ver qué piensa tu personaje de la imagen
#
Controles del panel
#
Selección de fuente
Elige la fuente para Image Captioning. Opciones soportadas:
#
Configuración de Caption
- Caption Prompt: Introduce un prompt personalizado para captioning. El prompt por defecto es "¿Qué hay en esta imagen?"
- Ask every time: Activa para solicitar un prompt personalizado para cada título de imagen
#
Plantilla de Mensaje
- Message Template: Personaliza la plantilla de mensaje de título. Usa la macro
{{caption}}para insertar el título generado. La plantilla por defecto es[{{user}} sends {{char}} a picture that contains: {{caption}}]
#
Auto-captioning
- Automatically caption images: Activa para habilitar el captioning automático de imágenes pegadas o adjuntas a mensajes
- Edit captions before saving: Activa para permitir editar títulos antes de guardarlos
#
Captioning de imágenes
Todas las formas de hacer captioning de imágenes en SillyTavern:
- Elige "Generate Caption" del menú emergente Extensiones y selecciona un archivo de imagen cuando se te pida
- Haz clic en el icono Caption en la parte superior de una imagen ya en un mensaje
- Pega una imagen directamente en la entrada del chat con
auto-captioning habilitado - Adjunta un archivo de imagen a un mensaje usando el botón Embed File or Image en las acciones de un mensaje.
- Envía un mensaje con una imagen embebida
- Usa el comando
slash command /caption
#
Auto-Captioning
La característica de auto-captioning te permite generar automáticamente títulos para imágenes conforme se añaden al chat, sin necesidad de activar manualmente el proceso de captioning cada vez.
Para habilitarlo, selecciona la casilla "Automatically caption images" en el panel Image Captioning. También puedes optar por editar títulos antes de guardarlos marcando la casilla "Edit captions before saving".
Una vez habilitado, el auto-captioning se activará en los siguientes escenarios:
- Cuando una imagen se pega directamente en la entrada del chat.
- Cuando un archivo de imagen se adjunta a un mensaje.
- Cuando se envía un mensaje con una imagen embebida.
El sistema usará tu fuente de captioning seleccionada (Local, Extras, Horde, o Multimodal) y la configuración establecida para generar un título para la imagen.
#
Editar títulos antes de guardar (Modo Refine)
Si has habilitado la opción "Edit captions before saving":
- Después de que se añada una imagen, aparecerá un popup con el título generado.
- Puedes revisar y editar el título según sea necesario.
- Haz clic en "OK" para aplicar el título, o "Cancel" para descartar el título sin guardar.
#
Envío de Caption
El título generado (y opcionalmente editado) será insertado automáticamente en el prompt usando la Message Template que has configurado. Por defecto, será enviado en este formato:
[BaronVonUser sends Seraphina a picture that contains: ...]
#
Slash Command: /caption
La extensión proporciona un comando slash /caption para usar en el chatbox o en scripts.
#
Uso
/caption [quiet=true|false]? [mesId=number]? [prompt]
prompt(opcional): Un prompt personalizado para el modelo de captioning. Solo soportado por fuentes multimodal.quiet=true|false: Si se establece a true, suprime el envío de un mensaje con caption al chat. Por defecto es false.mesId=number: Especifica un ID de mensaje para hacer caption a una imagen de un mensaje existente en lugar de subir una nueva.
Si no se proporciona mesId, el comando te pedirá que subas una imagen. Cuando quiet es false (por defecto), se enviará un nuevo mensaje con la imagen con caption al chat. El título generado puede usarse como entrada para otros comandos.
#
Ejemplos
Hacer caption a una nueva imagen con la configuración por defecto:
/caption
Hacer caption a una nueva imagen con un prompt personalizado:
/caption Describe the main colours and shapes in this image
Hacer caption a una imagen del mensaje #5 sin enviar un nuevo mensaje:
/caption mesId=5 quiet=true
Hacer caption a una imagen del mensaje #10 con un prompt personalizado y luego generar una nueva imagen basada en el título:
/caption mesId=10 Describe this image using comma-separated keywords | /imagine
#
Fuente Local
Puedes cambiar el modelo en config.yaml. La clave se llama extensions.models.captioning. Introduce el ID del modelo de Hugging Face que quieras usar. El por defecto es Xenova/vit-gpt2-image-captioning.
Puedes usar cualquier modelo que soporte Image Captioning (VisionEncoderDecoderModel o pipeline "image-to-text"). El modelo necesita ser compatible con la librería transformers.js. Es decir, necesita pesos ONNX. Busca modelos con las etiquetas ONNX e image-to-text, o que tengan una carpeta llamada onnx llena de archivos .onnx.
#
Fuente Multimodal
#
Configuración general
- Model: Elige el modelo para Image Captioning. Las opciones varían según la API seleccionada.
- Allow reverse proxy: Activa para permitir usar un reverse proxy si está definido y es válido (OpenAI, Anthropic, Google, Mistral, xAI)
Las claves de API y URLs de endpoints para fuentes de captioning se gestionan en el panel API Connections. Configura la conexión primero en API Connections, luego selecciónala como tu fuente de captions en Captioning.
Configúralo primero en el panel API Connections
Una última vez: configura la clave de API/dirección/puerto en API Connections y usa la conexión en Captioning.
Puedes seguir usando Claude para chats y Google AI Studio para Image Captioning, o lo que sea. Solo configúralos ambos en la pestaña 'API Connections' primero. Luego cambia tu fuente de Chat Completion a Claude y tu fuente de Captioning a Google AI Studio.
Para la mayoría de backends locales, necesitarás establecer algunas opciones en el backend del modelo en lugar de en SillyTavern. Si tu backend solo puede ejecutar un modelo a la vez y no soporta cambio automático, tienes varias opciones para usar diferentes modelos para chat y captioning:
- Secondary endpoints: Usa la característica de secondary endpoint (ve la sección
Secondary endpoints abajo) para conectar a un servidor de API diferente para captioning - Multiple connection types: Conecta a tu backend usando tanto Text Completion como Chat Completion en API Connections - esto te da dos conexiones separadas al mismo tipo de backend
#
Fuentes
Para usar una de estas fuentes de caption, selecciona Multimodal en el dropdown Source.
- "Quiero el mejor captioning posible, y no me importa pagar por ello": Anthropic
- "No quiero pagar nada ni ejecutar nada": Google AI Studio free tier
- "Quiero hacer caption a imágenes localmente y que simplemente funcione": Ollama
- "Quiero mantener vivo el sueño de la IA local":
KoboldCpp - "Quiero quejarme cuando no funciona":
Extras
#
Secondary endpoints
Por defecto, la fuente Multimodal usa el endpoint primario configurado en la pestaña API Connections. También puedes configurar un endpoint secundario específicamente para Image Captioning multimodal.
- Abre el panel Image Captioning en el panel Extensiones.
- Selecciona "Multimodal" como la fuente de captioning y un proveedor de API preferido.
- Introduce una URL válida para el endpoint secundario en el campo "Secondary captioning endpoint URL".
- Marca la casilla "Use secondary URL" para habilitar el endpoint secundario.
No añadas /v1 o /chat/completions al final de la URL. La extensión lo manejará automáticamente.
Esto solo está soportado por las siguientes APIs:
- KoboldCpp
- llama.cpp
- Ollama
- Text Generation WebUI (oobabooga)
- vLLM
#
Guías específicas de fuentes
#
KoboldCpp
Para información general sobre instalar y usar KoboldCpp, ve la documentación de KoboldCpp.
Para usar KoboldCpp para Image Captioning multimodal:
- obtén un modelo capaz de multimodal, entrenado para procesar prompts de texto e imagen al mismo tiempo.
- también obtén las proyecciones multimodal para el modelo. Estos pesos permiten que el modelo entienda cómo las partes de texto e imagen de la entrada se relacionan entre sí.
- carga el modelo y las proyecciones en la GUI de lanzamiento de KoboldCpp o en la interfaz de línea de comandos.
El modelo multimodal local original y clásico es LLaVA. Los archivos en formato GGUF para el modelo y las proyecciones están disponibles desde Mozilla/llava-v1.5-7b-llamafile. Para cargarlos desde la línea de comandos, establece el modelo y las proyecciones con las banderas --model y --mmproj. Por ejemplo:
./koboldcpp \
--model="models/llava-v1.5-7b-Q4_K.gguf" \
--mmproj="models/ llava-v1.5-7b-mmproj-Q4_0.gguf" \
... other flags ...
Algunos fine-tunes de LLaVA que puedes probar: xtuner/llava-llama-3-8b-v1_1-gguf, xtuner/llava-phi-3-mini-gguf.
Puedes usar proyecciones multimodal para el modelo base del que tu particular fine-tune fue construido. Las proyecciones para algunos modelos base comunes están disponibles desde koboldcpp/mmproj.