Ir para a navegação

Início rápido de templates

Execute, no seu próprio código, um template criado no ElevenCreative Flows.

Neste tutorial, você executará um template público usando um script em Python ou TypeScript. O template transforma uma foto casual de celular de uma peça de roupa em uma foto limpa de produto, e o script salva o resultado ao lado dela. O tutorial leva cerca de cinco minutos, e a execução em si leva menos de um minuto.

Foto de celular e foto de produto

À esquerda: a foto que você envia. À direita: a foto de produto que recebe.

Um template é um Fluxo do ElevenCreative publicado: uma cadeia de modelos que recebe um conjunto fixo de entradas e produz um conjunto fixo de saídas. O que você executará, Phone Photo to Packshot, recebe uma imagem e retorna uma imagem. O autor já escolheu os modelos e prompts, então seu código só envia a foto.

A execução de um template exige um plano Pro ou superior.

Configuração

1

Crie uma chave de API

Crie uma chave de API no painel aqui, que você usará para acessar a API com segurança.

Armazene a chave como um segredo gerenciado e passe-a aos SDKs como uma variável de ambiente por meio de um arquivo .env ou diretamente na configuração do seu app, conforme sua preferência.

.env
ELEVENLABS_API_KEY=<your_api_key_here>

Dê à chave a permissão Image & Video.

2

Instale o SDK

Também usaremos a biblioteca dotenv para carregar nossa chave de API de uma variável de ambiente.

pip install elevenlabs
pip install python-dotenv
3

Obtenha uma foto

Baixe a foto de exemplo para a pasta onde você criará seu script:

curl -o garment.jpg https://storage.googleapis.com/eleven-public-cdn/documentation_assets/templates/garment.jpg

Encontre o código do template

Abra Phone Photo to Packshot no app da ElevenLabs e selecione a aba API. Todo template tem uma, com o código para executá-lo em cURL, Python e TypeScript.

Aba API do template

A aba API na página do template, mostrando o trecho em Python.

A aba orienta você em três etapas: obter uma chave de API, escolher como receber o resultado e executar o template. Em Escolha como receber o resultado, Aguarde o resultado está selecionado por padrão. O código da terceira etapa abre em cURL; selecione Python ou TypeScript, e a etapa passará a ser Execute e aguarde o resultado. Seu trecho inicia uma execução, espera ela terminar e imprime cada saída. Ele passa um valor em inputs para cada entrada do template, usando o id da entrada como chave, e lê cada resultado em outputs pelo id da saída. Este template tem uma entrada, garment_photo, e uma saída, packshot. Esses dois ids são os únicos nomes de que seu código precisa.

Execute o template

Crie packshot.py ou packshot.mts. É o trecho da aba API com estas alterações:

  • A chave de API é carregada do seu arquivo .env.
  • A foto é passada como base64 no lugar de YOUR_ASSET_ID, o ID de um arquivo já enviado para a ElevenLabs.
  • O script imprime uma linha enquanto a execução está em andamento e salva a foto de produto em packshot.jpg, em vez de imprimir sua URL.
import base64
import os
import urllib.request
from dotenv import load_dotenv
from elevenlabs import ElevenLabs, TemplateInputReference_InlineBase64
load_dotenv()
client = ElevenLabs(api_key=os.environ["ELEVENLABS_API_KEY"])
with open("garment.jpg", "rb") as f:
photo = base64.b64encode(f.read()).decode()
print("Running the template, this takes up to a minute...")
# Starts a run and waits for it to finish, checking back as often as the API
# asks. In production, receive the result by webhook instead.
run = client.flows.templates.runs.create_and_wait(
template_id="Yz4DETxRv4uXyIo5PnEy",
# Pins the version this tutorial was written against.
version_id="Kqs4nRrpndEjQ54BhbwE",
inputs={
"garment_photo": TemplateInputReference_InlineBase64(
content_base_64=photo,
mime_type="image/jpeg",
),
},
)
packshot = run.outputs["packshot"]
# Checking `type` tells your editor this output is an image, which has a content_url.
if packshot.type == "image" and packshot.status == "completed" and packshot.content_url:
urllib.request.urlretrieve(packshot.content_url, "packshot.jpg")
print("Saved packshot.jpg")
else:
print("The run failed:", packshot.failure_reason)

create_and_wait (createAndWait em TypeScript) inicia a execução e depois a verifica no intervalo sugerido pela API até que todas as saídas sejam concluídas. Uma execução que falha é retornada, não lançada, então o script verifica o status da saída antes de lê-la. version_id fixa a versão do template usada neste tutorial, para que uma edição posterior do template não interrompa o script.

Execute o script. Uma execução deste template usa cerca de 1.020 créditos, o mesmo que executá-lo no app.

python packshot.py

Após 30 segundos a um minuto, o script imprime:

Running the template, this takes up to a minute...
Saved packshot.jpg

Abra packshot.jpg. A peça de roupa da foto agora está em um manequim, contra um fundo liso de estúdio, sem a cama e a iluminação original.

create_and_wait é para scripts e para testar templates. Em produção, receba as execuções concluídas por um webhook, para que seu aplicativo não mantenha uma solicitação aberta enquanto uma execução estiver em andamento. Execute o template da sua equipe mostra como.

Execute com sua própria foto

Tire uma foto de qualquer peça de roupa com seu celular. Não precisa ser uma boa foto: uma camiseta na sua cama ou uma jaqueta sobre uma cadeira serve. Salve-a como JPEG em garment.jpg e execute o script novamente.

Você receberá uma foto de produto da sua peça com o mesmo visual de estúdio, pois cada execução de um template passa pelos mesmos modelos e configurações. Os detalhes ainda podem variar entre execuções, mesmo com a mesma foto.

O que você aprendeu

  • Um template recebe entradas nomeadas e produz saídas nomeadas, e sua aba API mostra o código que o executa.
  • flows.templates.runs.create_and_wait inicia uma execução com um valor por id de entrada e retorna quando ela termina. Você lê cada saída pelo id e verifica seu status.
  • Em produção, um webhook entrega cada execução concluída, sem que nada precise esperar por ela.

Próximas etapas