#
Image Captioning
Image Captioning permite ao SillyTavern gerar automaticamente descrições de texto para imagens usadas em chats.
Use Image Captioning quando quiser que seu personagem de IA "veja" e responda ao conteúdo visual em suas conversas.
- Crie legendas para imagens que você carrega ou cola em mensagens
- Adicione contexto a imagens existentes no histórico de chat
- Use várias fontes para geração, incluindo modelos locais, APIs na nuvem e redes colaborativas
Existem opções que não requerem configuração, dinheiro ou GPU. Também existem opções que requerem alguns ou todos esses itens. Escolha a que se adequa às suas necessidades e recursos.
A extensão de image captioning é integrada ao SillyTavern e não precisa ser instalada separadamente.
#
Início rápido
- Configurar:
- Abra o painel Image Captioning no painel Extensions
- Escolha uma fonte de captioning (provavelmente "Local" ou "Multimodal")
- Para "Multimodal", certifique-se de ter configurado a conexão na aba API Connections
- Gerar uma legenda:
- Escolha "Generate Caption" no menu popup Extensions
- Selecione um arquivo de imagem quando solicitado
- Aguarde a legenda ser gerada
- Revisar e enviar:
- A imagem legendada será inserida em sua mensagem
- Veja a legenda usando a dica da imagem
- Clique em Send para ver o que seu personagem pensa da imagem!
#
Controles do painel
#
Seleção de Fonte
Escolha a fonte para image captioning. Opções suportadas:
#
Configuração de Caption
- Caption Prompt: Insira um prompt personalizado para captioning. O prompt padrão é "What's in this image?"
- Ask every time: Alterne para solicitar um prompt personalizado para cada legenda de imagem
#
Message Template
- Message Template: Personalize o template de mensagem de legenda. Use a macro
{{caption}}para inserir a legenda gerada. O template padrão é[{{user}} sends {{char}} a picture that contains: {{caption}}]
#
Auto-captioning
- Automatically caption images: Alterne para habilitar legendagem automática de imagens coladas ou anexadas a mensagens
- Edit captions before saving: Alterne para permitir editar legendas antes de serem salvas
#
Legendando imagens
Todas as maneiras de legendar imagens no SillyTavern:
- Escolha "Generate Caption" no menu popup Extensions e selecione um arquivo de imagem quando solicitado
- Clique no ícone Caption no topo de uma imagem já em uma mensagem
- Cole uma imagem diretamente na entrada de chat com
auto-captioning habilitado - Anexe um arquivo de imagem a uma mensagem usando o botão Embed File or Image nas ações de uma mensagem
- Envie uma mensagem com uma imagem incorporada
- Use o
comando slash /caption
#
Auto-Captioning
O recurso de auto-captioning permite gerar automaticamente legendas para imagens conforme elas são adicionadas ao chat, sem acionar manualmente o processo de legendagem cada vez.
Para habilitar, marque a caixa de seleção "Automatically caption images" no painel Image Captioning. Você também pode optar por editar legendas antes de serem salvas marcando a caixa "Edit captions before saving".
Uma vez habilitado, o auto-captioning será acionado nos seguintes cenários:
- Quando uma imagem é colada diretamente na entrada de chat.
- Quando um arquivo de imagem é anexado a uma mensagem.
- Quando uma mensagem com uma imagem incorporada é enviada.
O sistema usará sua fonte de captioning selecionada (Local, Extras, Horde ou Multimodal) e as configurações definidas para gerar uma legenda para a imagem.
#
Editando legendas antes de salvar (Modo Refinar)
Se você habilitou a opção "Edit captions before saving":
- Depois que uma imagem é adicionada, um popup aparecerá com a legenda gerada.
- Você pode revisar e editar a legenda conforme necessário.
- Clique em "OK" para aplicar a legenda, ou "Cancel" para descartar a legenda sem salvar.
#
Envio de caption
A legenda gerada (e opcionalmente editada) será automaticamente inserida no prompt usando o Message Template que você configurou. Por padrão, será enviada neste formato:
[BaronVonUser sends Seraphina a picture that contains: ...]
#
Comando Slash: /caption
A extensão fornece um comando slash /caption para usar na caixa de chat ou em scripts.
#
Uso
/caption [quiet=true|false]? [mesId=number]? [prompt]
prompt(opcional): Um prompt personalizado para o modelo de captioning. Suportado apenas por fontes multimodais.quiet=true|false: Se definido como true, suprime o envio de uma mensagem legendada para o chat. O padrão é false.mesId=number: Especifica um ID de mensagem para legendar uma imagem de uma mensagem existente em vez de carregar uma nova.
Se nenhum mesId for fornecido, o comando solicitará que você carregue uma imagem. Quando quiet é false (padrão), uma nova mensagem com a imagem legendada será enviada ao chat. A legenda gerada pode ser usada como entrada para outros comandos.
#
Exemplos
Legendar uma nova imagem com as configurações padrão:
/caption
Legendar uma nova imagem com um prompt personalizado:
/caption Describe the main colours and shapes in this image
Legendar uma imagem da mensagem #5 sem enviar uma nova mensagem:
/caption mesId=5 quiet=true
Legendar uma imagem da mensagem #10 com um prompt personalizado e então gerar uma nova imagem baseada na legenda:
/caption mesId=10 Describe this image using comma-separated keywords | /imagine
#
Fonte Local
Você pode alterar o modelo em config.yaml. A chave é chamada extensions.models.captioning. Insira o ID do modelo Hugging Face que você deseja usar. O padrão é Xenova/vit-gpt2-image-captioning.
Você pode usar qualquer modelo que suporte image captioning (VisionEncoderDecoderModel ou pipeline "image-to-text"). O modelo precisa ser compatível com a biblioteca transformers.js. Ou seja, precisa ter pesos ONNX. Procure por modelos com as tags ONNX e image-to-text, ou que tenham uma pasta chamada onnx cheia de arquivos .onnx.
#
Fonte Multimodal
#
Configuração geral
- Model: Escolha o modelo para image captioning. As opções variam com base na API selecionada.
- Allow reverse proxy: Alterne para permitir usar um proxy reverso se definido e válido (OpenAI, Anthropic, Google, Mistral, xAI)
As chaves de API e URLs de endpoint para fontes de captioning são gerenciadas no painel API Connections. Configure a conexão em API Connections primeiro, depois selecione-a como sua fonte de captions em Captioning.
Configure primeiro no painel API Connections
Mais uma vez: configure a chave de API/endereço/porta em API Connections e use a conexão em Captioning.
Você ainda pode usar Claude para chats e Google AI Studio para image captioning, ou o que quiser. Apenas configure ambos primeiro na aba 'API Connections'. Então mude sua fonte de Chat Completion para Claude e sua fonte de Captioning para Google AI Studio.
Para a maioria dos backends locais, você precisará definir algumas opções no backend do modelo em vez de no SillyTavern. Se seu backend só pode executar um modelo por vez e não suporta troca automática, você tem várias opções para usar modelos diferentes para chat e captioning:
- Endpoints secundários: Use o recurso de endpoint secundário (veja a seção
Endpoints secundários abaixo) para se conectar a um servidor de API diferente para captioning - Múltiplos tipos de conexão: Conecte-se ao seu backend usando ambos os modos Text Completion e Chat Completion em API Connections - isso lhe dá duas conexões separadas para o mesmo tipo de backend
#
Fontes
Para usar uma dessas fontes de caption, selecione Multimodal no dropdown de Fonte.
- "Eu quero a melhor legendagem possível e não me importo em pagar por isso": Anthropic
- "Eu não quero pagar nada ou executar nada": camada gratuita do Google AI Studio
- "Eu quero legendar imagens localmente e que simplesmente funcione": Ollama
- "Eu quero manter o sonho da IA local viva":
KoboldCpp - "Eu quero reclamar quando não funcionar":
Extras
#
Endpoints secundários
Por padrão, a fonte Multimodal usa o endpoint primário configurado na aba API Connections. Você também pode configurar um endpoint secundário especificamente para captioning multimodal.
- Abra o painel Image Captioning no painel Extensions.
- Selecione "Multimodal" como a fonte de captioning e um provedor de API preferido.
- Insira uma URL válida para o endpoint secundário no campo "Secondary captioning endpoint URL".
- Marque a caixa "Use secondary URL" para habilitar o endpoint secundário.
Não adicione /v1 ou /chat/completions ao final da URL. A extensão cuidará disso automaticamente.
Isso é suportado apenas pelas seguintes APIs:
- KoboldCpp
- llama.cpp
- Ollama
- Text Generation WebUI (oobabooga)
- vLLM
#
Guias específicos de fonte
#
KoboldCpp
Para informações gerais sobre instalar e usar o KoboldCpp, veja a documentação do KoboldCpp.
Para usar o KoboldCpp para captioning multimodal:
- obtenha um modelo capaz de multimodal, treinado para processar prompts de texto e imagem ao mesmo tempo.
- também obtenha as projeções multimodais para o modelo. Esses pesos permitem que o modelo entenda como as partes de texto e imagem da entrada se relacionam entre si.
- carregue o modelo e as projeções na GUI de lançamento do KoboldCpp ou interface de linha de comando.
O modelo multimodal local original e clássico é o LLaVA. Arquivos no formato GGUF para o modelo e projeções estão disponíveis em Mozilla/llava-v1.5-7b-llamafile. Para carregá-los da linha de comando, defina o modelo e as projeções com as flags --model e --mmproj. Por exemplo:
./koboldcpp \
--model="models/llava-v1.5-7b-Q4_K.gguf" \
--mmproj="models/ llava-v1.5-7b-mmproj-Q4_0.gguf" \
... other flags ...
Alguns ajustes finos do LLaVA que você pode tentar: xtuner/llava-llama-3-8b-v1_1-gguf, xtuner/llava-phi-3-mini-gguf.
Você pode usar projeções multimodais para o modelo base que seu ajuste fino específico foi construído. Projeções para alguns modelos base comuns estão disponíveis em koboldcpp/mmproj.