Aprendizagem pessoal com IA
e orientação prática

Exemplo de automatização da criação de quadrinhos com agentes da CrewAI

apresentar (alguém para um emprego etc.)

Houve um tempo em que criar uma história em quadrinhos era um processo tedioso que exigia escritores, ilustradores e inúmeras horas de esforço. Hoje, a IA serve como uma ferramenta poderosa que capacita os profissionais criativos. Imagine entregar uma história curta para a IA e ver como ela ajuda a transformar essa história em uma história em quadrinhos vívida e visualmente impressionante, mantendo a perspectiva exclusiva do criador. Isso não é mais apenas uma fantasia; é uma realidade que se tornou possível graças aos modelos de IA generativa de ponta. Neste blog, exploraremosCrewAI How LLM Agents Enhance the Creative Process of Comic Book Creation (Como os agentes do LLM aprimoram o processo criativo da criação de histórias em quadrinhos) analisa a estrutura e a implementação que tornam essa mágica possível.

 

Exemplo: Criando um livro de histórias do Panchatantra

Para demonstrar esse processo, vamos usar uma história curta do Panchatantra, uma coleção de fábulas indianas antigas conhecidas por sua sabedoria e lições de moral. Considere a história do Leão e da Lebre:


Conto: "Era uma vez um leão poderoso chamado Basuraka que corria solto pela selva. Os animais se cansaram de sua tirania e decidiram enviar-lhe uma presa todos os dias. Um dia, foi a vez do esperto coelho, que elaborou um plano para se livrar do leão. Ele atraiu Basuraka para um poço profundo e o convenceu de que outro leão vivia lá. Ao ver seu reflexo na água, Basuraka rugiu de raiva e pulou no poço, para nunca mais voltar."

Usando a estrutura do CrewAI, seguiremos as etapas abaixo:

  1. 1. Agentes de redação de roteirosRoteiristas: Os roteiristas dividem a história em cenas, por exemplo:
  • - Cena 1: Leões vagam pela selva.
  • - Cena 2: Os animais decidem entregar uma presa por dia.
  • - Cena 3: O coelho planeja enganar o leão.
  • - Cena 4: O leão pula no poço.
  1. 1. Agência de artistas visuaisArtistas visuais gerarão ilustrações para cada cena, representando momentos importantes, como o rugido do leão pela selva, o coelho guiando o leão até o poço e a cena final do leão pulando na água.
  2. 2. Agente sintetizadorNo final, o compositor combina todas essas cenas e imagens em um livro de histórias coerente, pronto para ser visualizado e compartilhado.

Para obter informações mais detalhadas sobre a história do Panchatantra, você pode consultar recursos externos, como o Panchatantra na Wikipédia ou a coleção de histórias do Panchatantra.

Geração de autoria automatizada com agentes LLM

Os agentes de IA generativa podem ser considerados como uma "equipe" digital que trabalha em conjunto para realizar processos criativos complexos. Ao atribuir tarefas específicas a agentes de IA individuais, o processo de criação de uma história em quadrinhos inteira se torna eficiente e automatizado. Na ilustração abaixo, agentes especializados trabalham juntos:

  1. 1. roteiristaResponsável por traduzir histórias curtas em cenas detalhadas.
  2. 2. artista visualResponsável por transformar cada cena em uma obra de arte visual atraente.
  3. 3. sintetizadoresCompositor: responsável pela fusão de todas as cenas geradas e suas imagens correspondentes em uma história em quadrinhos coerente e completa. O compositor garante que a narrativa flua sem problemas e que o produto final esteja pronto para ser lançado.

A sinergia entre esses agentes automatiza o processo de criação de histórias em quadrinhos, permitindo um fluxo de trabalho eficiente e criativo. A chave está na capacidade de aproveitar os modelos de linguagem generativa e os sistemas de IA de geração de imagens de forma coordenada.

Visão geral da arquitetura

A arquitetura dessa automação é simples, mas eficaz. O processo começa com uma história curta e flui da seguinte forma:

  1. 1. Entrada de histórias curtasO processo usa narrativas curtas como insumos que servem de base para a história em quadrinhos.
  2. 2. Agentes de redação de roteirosCenas: O agente divide o conto em cenas discretas, cada uma capturando uma parte importante do enredo. Na ilustração, isso é mostrado como cenas rotuladas como "Cena 1, Cena 2, Cena 3", etc., até que toda a história seja dividida em cenas menores.
  3. 3. Agência de artistas visuaisO artista visual é responsável por traduzir cada descrição de cena em uma representação visual, ilustrando efetivamente a história em quadrinhos. Os elementos visuais são criados como imagens para representar cenas como o leão no sol, o leão encontrando o coelho etc.
  4. 4. sintetizadoresPor fim, todas as cenas e suas imagens correspondentes são combinadas por um agente compositor para criar um livro ilustrado completo.

Todo o processo foi projetado para transformar perfeitamente as narrativas em histórias em quadrinhos envolventes que exigem o mínimo de intervenção humana.

Implementado usando a estrutura CrewAI

Para dar vida a essa visão, implementamos a estrutura CrewAI com três agentes trabalhando em harmonia. Abaixo estão as etapas detalhadas do processo de implementação com espaços reservados para trechos de código para ajudá-lo a reproduzir o processo passo a passo:

Definição de agentes e tarefasAgente 1: Usamos a estrutura CrewAI para definir dois agentes - Agente 1 (roteirista) e Agente 2 (artista visual). Ambos os agentes têm funções específicas com tarefas inter-relacionadas para um fluxo de trabalho eficiente.

## Agente
roteirista.
 Função: >
   Roteiro de cenas para contos infantis
 objetivo: >
   Escrever roteiros de cenas simples, claras e envolventes para livros ilustrados infantis.
 história: >
   Você é um roteirista especializado em transformar contos infantis em roteiros para atuação ou animação.
 llm: llm_model

## Tarefas

escrever roteiros.
 Descrição: >
   Você receberá uma história infantil curta sobre o aprendizado de lições importantes sobre a vida. A história precisa ser traduzida em um livro ilustrado divertido para as crianças lerem e se envolverem. Você é responsável por dividir a história em
   {número_de_cenas} cenas únicas, cada uma focada em um evento ou momento específico da história. Cada cena será traduzida em uma imagem. Você deve gerar as seguintes informações, seguindo o padrão pidântico especificado:

   - Um nome adequado para a história
   - Um breve resumo da história
   - Uma breve história de fundo da história, fornecendo informações importantes para o leitor.
   - Uma narrativa detalhada de cada cena da história, com pelo menos uma ou duas frases.
   - A lição final aprendida com a história.

   <short_story
     {story_text}
   
   A saída deve seguir estritamente o padrão pidântico. Caso contrário, haverá uma penalidade.
 agente: roteirista

## agente

visualartist.
 função: >
   Ilustração visual para livro de histórias
 objetivo: >
   Criar livros ilustrados envolventes.
 Histórico: >
   Especialista em criar livros de histórias ilustrados.
 llm: llm_model

## Tarefa

ilustração.
 Descrição: >

   Você receberá uma história infantil curta sobre o aprendizado de lições importantes sobre a vida. A história será transformada em um livro ilustrado divertido para as crianças lerem e se envolverem. A história foi dividida em cenas únicas.

   Abaixo está a descrição de uma cena e um breve resumo dessa cena também é fornecido abaixo.

   Gere um prompt que possa ser usado em um modelo de texto para imagem para produzir uma imagem dessa cena. Envie o prompt para a ferramenta fornecida para gerar imagens de personagens e planos de fundo que correspondam aos requisitos da cena. Os personagens devem ter estilo de desenho animado. O prompt deve ter menos de 40 caracteres.

   <story_summary
     {story_summary}
   <story_summary

   
     {scene_description}
   
   A saída deve seguir rigorosamente o padrão pydantic. Haverá uma penalidade se não o seguir.
 agente: visualartist

 

Configuração da equipe: Defina um esquema estruturado para que os agentes gerem respostas e modelos de LLLM, como os modelos OpenAI e DaLLE, e vincule os agentes às suas tarefas.

dalle_tool = DallETool(model="dall-e-3",
                      model="dall-e-3", size="1024x1024",
                      quality="standard", n=1)
                      n=1)

## Defina uma classe para uma única cena
class StoryScene(BaseModel).
   número_da_cena: int
   narração: str

## Defina uma classe para uma lista de cenas da história.
class StoryScenes(BaseModel).
nome_da_história: str
resumo: str
nome_da_história: str resumo: str
nome_da_história: str resumo: str plano de fundo: str
cenas: List[StoryScene]

## Defina uma classe para uma única cena
class SceneImage(BaseModel).
   prompt: str = Field(description = "Um prompt de modelo de texto para imagem que pode ser usado para gerar uma imagem." , max_length = 50)
   image_url: str = Field(description = "URL da imagem gerada pela ferramenta.")

@CrewBase
classe StoryCrew().
 """StoryCrew""""

agents_config = 'config/story/agents.yaml'
tasks_config = 'config/story/tasks.yaml'

@llm
 def llm_model(self).
 return ChatOpenAI(temperatura=0,0, # definido como 0 para saída determinística)
                   model="gpt-4o-mini", # usa o modelo GPT-4 Turbo
                   max_tokens=8000)

@agente
 def scriptwriter(self) -> Agente.
 return Agent(
  config=self.agents_config['scriptwriter'],
  output_pydantic = StoryScenes,
  verbose=True
 )

@task
 def scriptwriting(self) -> Task.
 return Task(
  config=self.tasks_config['scriptwriting'],
  output_pydantic = StoryScenes,
 )

@tripulação
 def crew(self) -> Crew.
 """Criar equipe de história""""
 script_crew = Equipe(
  agents=self.agents, # Criado automaticamente pelo decorador @agent
  tasks=self.tasks, # Criado automaticamente pelo decorador @task
  process=Process.sequential, verbose=True, # Criado automaticamente pelo decorador @task
  process=Process.sequential, verbose=True, # process=Process.
  # process=Process.hierarchical, # Se você quiser usar isso em vez disso, consulte https://docs.crewai.com/how-to/Hierarchical/
 )

 return script_crew

@CrewBase
classe ArtistCrew().

agents_config = 'config/visual/agents.yaml'
tasks_config = 'config/visual/tasks.yaml'

@llm
 def llm_model(self).
 return ChatOpenAI(temperatura=0,0, # definido como 0 para saída determinística)
                   model="gpt-4o-2024-08-06", # usando o modelo GPT-4 Turbo
                   max_tokens=8000)

@agente
 def visualartist(self) -> Agent.
 return Agent(
  config=self.agents_config['visualartist'],
  tools=[dalle_tool],
  verbose=True
 )

@task
 def illustration(self) -> Task.
 return Task(
  config=self.tasks_config['illustration'],
  output_pydantic = SceneImage,
  output_file='report.md'
 )

@crew
 def crew(self) -> Crew.
 """Criar uma equipe de livro ilustrado""""
 artist_crew = Crew(
  agents=self.agents, # Criado automaticamente pelo decorador @agent
  tasks=self.tasks, # Criado automaticamente pelo decorador @task
  process=Process.sequential, verbose=True, # Criado automaticamente pelo decorador @task
  process=Process.sequential, verbose=True, # process=Process.
  # process=Process.hierarchical, # Se você quiser usar isso em vez disso, consulte https://docs.crewai.com/how-to/Hierarchical/
 )

 return artist_crew

 

Fluxo de trabalho principal: Assegurar transferências adequadas entre os dois agentes. Por exemplo, quando um roteirista conclui uma cena, ela é automaticamente passada para o artista visual, garantindo a continuidade do fluxo de trabalho.

agentops.start_session( tags = ['story', 'scripts'] )

## Crie uma hipótese ou gere uma pergunta usando o QuestCrew
inputs = {
   'number_of_scenes': int(number_of_scenes),
   'story_text': story_text,
}

scenes_list = StoryCrew().crew().kickoff(inputs=inputs)

agentops.end_session("Success")

se scenes_list não for None: print(f "Resultado bruto do script: {scscore_list="Raw")
   print(f "Resultado bruto da gravação do script: {scenes_list.raw}")

slist = lista_de_cenas.pydantic
resumo_da_história = resumo_da_história
for scene in slist.scenes: print(f "Cena: {{scenes_list.raw}")
   print(f "Cena: {scene.narration}")

scene_input = [{ "story_summary": story_summary,
   'scene_description': scene.narration} for i, scene in enumerate(slist.scenes)]

agentops.start_session(tags = ['scene', 'illustration'])

## Executar o agente
result_images = ArtistCrew().crew().kickoff_for_each(inputs = scene_input)

print("result_images : {result_images.raw}")

 

chegar a um veredicto

O poder da IA generativa está na sua capacidade de aumentar e apoiar o processo criativo, fornecendo aos criadores de conteúdo novas ferramentas para dar vida às suas ideias. O agente CrewAI LLM ajuda a transformar histórias curtas simples em histórias em quadrinhos envolventes, auxiliando os contadores de histórias em todas as etapas da jornada. Ao automatizar tarefas repetitivas, como a decomposição de scripts e a geração visual, a IA permite que artistas e escritores se concentrem mais nos principais elementos criativos, preservando seu estilo artístico exclusivo. Essa implementação demonstra como a IA generativa pode aprimorar o setor criativo, fornecendo uma visão de um futuro em que a criatividade e a tecnologia trabalham juntas sem problemas.

 

Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " Exemplo de automatização da criação de quadrinhos com agentes da CrewAI

Chefe do Círculo de Compartilhamento de IA

O Chief AI Sharing Circle se concentra no aprendizado de IA, fornecendo conteúdo abrangente de aprendizado de IA, ferramentas de IA e orientação prática. Nosso objetivo é ajudar os usuários a dominar a tecnologia de IA e explorar juntos o potencial ilimitado da IA por meio de conteúdo de alta qualidade e compartilhamento de experiências práticas. Seja você um iniciante em IA ou um especialista sênior, este é o lugar ideal para adquirir conhecimento, aprimorar suas habilidades e realizar inovações.

Entre em contato conosco
pt_BRPortuguês do Brasil