Ejemplo de automatización de la creación de cómics con agentes de CrewAI

presentar (a algn. para un trabajo, etc.)

Hubo un tiempo en que crear un cómic era un proceso tedioso que requería guionistas, ilustradores e incontables horas de esfuerzo. Hoy en día, la IA es una poderosa herramienta que ayuda a los profesionales creativos. Imagínese entregar una historia corta a la IA y ver cómo ayuda a transformar esa historia en un cómic vívido y visualmente impresionante, conservando la perspectiva única del creador. Esto ya no es sólo una fantasía; es una realidad posible gracias a los modelos de IA generativa de vanguardia. En este blog, exploraremosCrewAI Cómo los agentes LLM mejoran el proceso creativo de la creación de cómics profundiza en la estructura y la implementación que hacen posible esta magia.

 

Ejemplo: Creación de un libro de cuentos a partir del Panchatantra

Para demostrar este proceso, utilicemos una breve historia del Panchatantra, una colección de antiguas fábulas indias conocidas por su sabiduría y sus lecciones morales. Consideremos la historia del León y la Liebre:

Cuento: "Érase una vez un poderoso león llamado Basuraka que campaba a sus anchas por la selva. Los animales se cansaron de su tiranía y decidieron enviarle una presa cada día. Un día, le tocó el turno al astuto conejo, que ideó un plan para deshacerse del león. Atrajo a Basuraka hasta un pozo profundo y le convenció de que allí vivía otro león. Al ver su reflejo en el agua, Basuraka rugió de rabia y saltó al pozo, para no volver jamás".

Utilizando el marco CrewAI, seguiremos los pasos que se indican a continuación:

  1. 1. Agentes guionistasLos guionistas dividen la historia en escenas, por ejemplo:
  • - Escena 1: Los leones vagan por la jungla.
  • - Escena 2: Los animales deciden entregar una presa al día.
  • - Escena 3: El conejo planea engañar al león.
  • - Escena 4: El león salta al pozo.
  1. 1. Agencia de artistas visualesLos artistas visuales crearán ilustraciones para cada escena que representen momentos clave como el león rugiendo por la selva, el conejo guiando al león hasta el pozo y la escena final del león saltando al agua.
  2. 2. Agente sintetizadorAl final, el compositor combina todas estas escenas e imágenes en un libro de cuentos coherente, listo para ser visto y compartido.

Para obtener información más detallada sobre la historia del Panchatantra, puede consultar recursos externos como Panchatantra en Wikipedia o la colección de cuentos del Panchatantra.

Generación de autoría automatizada con agentes LLM

Los agentes generativos de IA pueden considerarse un "equipo" digital que trabaja conjuntamente para llevar a cabo complejos procesos creativos. Al asignar tareas específicas a agentes de IA individuales, el proceso de creación de un cómic completo se vuelve eficiente y automatizado. En la siguiente ilustración, los agentes especializados trabajan juntos:

  1. 1. guionistaResponsable de traducir historias cortas en escenas de desglose detalladas.
  2. 2. artista visualResponsable de transformar cada escena en una atractiva pieza de arte visual.
  3. 3. sintetizadoresResponsable de fusionar todas las escenas generadas y sus imágenes correspondientes en un cómic coherente y completo. El compositor se asegura de que la narración fluya sin problemas y de que el producto final esté listo para su publicación.

La sinergia entre estos agentes automatiza el proceso de creación de cómics, permitiendo flujos de trabajo eficientes y creativos. La clave reside en la capacidad de aprovechar de forma coordinada los modelos de lenguaje generativo y los sistemas de IA de generación de imágenes.

Arquitectura

La arquitectura de esta automatización es sencilla pero eficaz. El proceso comienza con una breve historia y fluye de la siguiente manera:

  1. 1. Aportación de historias cortasEl proceso utiliza narraciones breves como insumos que sirven de base para el cómic.
  2. 2. Agentes guionistasEl agente divide la historia corta en distintas escenas, cada una de las cuales recoge una parte importante del argumento. En la ilustración, esto se muestra como escenas etiquetadas como "Escena 1, Escena 2, Escena 3", etc., hasta que toda la historia se descompone en escenas más pequeñas.
  3. 3. Agencia de artistas visualesEl artista visual es responsable de traducir la descripción de cada escena en una representación visual que ilustre eficazmente el cómic. Los elementos visuales se crearon como imágenes para representar escenas como el león al sol, el león encontrándose con el conejo, etc.
  4. 4. sintetizadoresFinalmente, todas las escenas y sus correspondientes imágenes son combinadas por un agente compositor para crear un libro ilustrado completo.

Todo el proceso está diseñado para transformar a la perfección las narraciones en atractivos cómics que requieren una intervención humana mínima.

Implementado utilizando el marco CrewAI

Para hacer realidad esta visión, hemos implementado el marco CrewAI con tres agentes que trabajan en armonía. A continuación se detallan los pasos del proceso de implementación con marcadores de posición para fragmentos de código que te ayudarán a reproducir el proceso paso a paso:

Definición de agentes y tareasAgente 1: Utilizamos el marco CrewAI para definir dos agentes: el Agente 1 (guionista) y el Agente 2 (artista visual). Ambos agentes tienen funciones específicas con tareas interrelacionadas para un flujo de trabajo eficiente.

## 代理
scriptwriter:
 role: >
   为儿童短故事编写场景剧本
 goal: >
   为儿童图画书编写简单、清晰且引人入胜的场景剧本。
 backstory: >
   你是一个专注于将儿童短故事转化为剧本的剧本编写者,用于表演或动画制作。
 llm: llm_model               

## 任务

scriptwriting:
 description: >
   你将获得一个关于学习生活重要教训的儿童短故事。该故事需要转化为一本有趣的图画书,以便儿童阅读和参与。你负责将故事分解为 
   {number_of_scenes} 个独特场景,每个场景聚焦于故事中的特定事件或时刻。每个场景将转化为图像。你必须生成以下信息,遵循指定的pydantic模式:

   - 故事的合适名称 
   - 故事的简短摘要 
   - 故事的简短背景介绍,为读者提供重要的信息。
   - 故事中每个场景的详细叙述,至少一到两句话。
   - 故事中学到的最终教训。

   <short_story>    
     {story_text}
   </short_story>   
 expected_output: >   
   输出必须严格遵循pydantic模式。如果不遵循,将会有惩罚。       
 agent: scriptwriter

## 代理

visualartist:
 role: >
   故事书的视觉插图
 goal: >
   创建引人入胜的图画书。
 backstory: >
   创建图画故事书的专家。
 llm: llm_model

## 任务

illustration:
 description: > 

   你将获得一个关于学习生活重要教训的儿童短故事。该故事将转化为一本有趣的图画书,以便儿童阅读和参与。故事已经分解为独特的场景。

   下面是一个场景的描述,该场景的短摘要也在下面给出。 
   
   生成一个可以用于文本到图像模型的提示,以生成该场景的图像。将提示发送到提供的工具,以生成符合场景要求的角色和背景的图像。角色应为卡通风格。提示应少于40个字。

   <story_summary>
     {story_summary}
   <story_summary>

   <scene_description>
     {scene_description}
   </scene_description>
 expected_output: >   
   输出必须严格遵循pydantic模式。如果不遵循,将会有惩罚。       
 agent: visualartist

 

Configuración del equipo: Definir un esquema estructurado para que los agentes generen respuestas y modelos llm, como los modelos OpenAI y DaLLE, y vincular los agentes a sus tareas.

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

## 为单个场景定义一个类
class StoryScene(BaseModel):
   scene_number: int 
   narration: str

## 为故事场景列表定义一个类
class StoryScenes(BaseModel):
story_name: str 
summary: str 
background: str 
lesson: str 
scenes: List[StoryScene]

## 为单个场景定义一个类
class SceneImage(BaseModel):
   prompt: str = Field(description = "可用于生成图像的文本到图像模型的提示。", max_length = 50)
   image_url: str = Field(description = "由工具生成的图像的URL")

@CrewBase
class StoryCrew():
 """故事团队"""

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

@llm
 def llm_model(self):
 return ChatOpenAI(temperature=0.0,  # 设置为0以获得确定性输出
                   model="gpt-4o-mini",  # 使用GPT-4 Turbo模型
                   max_tokens=8000) 

@agent
 def scriptwriter(self) -> Agent:
 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,   
 )

@crew
 def crew(self) -> Crew:
 """创建故事团队"""
 script_crew =  Crew(
  agents=self.agents, # 由@agent装饰器自动创建
  tasks=self.tasks, # 由@task装饰器自动创建
  process=Process.sequential,
  verbose=True,
  # process=Process.hierarchical, # 如果你想改用这个,可以参考 https://docs.crewai.com/how-to/Hierarchical/
 )

 return script_crew
 
@CrewBase
class ArtistCrew():

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

@llm
 def llm_model(self):
 return ChatOpenAI(temperature=0.0,  # 设置为0以获得确定性输出
                   model="gpt-4o-2024-08-06",  # 使用GPT-4 Turbo模型
                   max_tokens=8000) 

@agent
 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:
 """创建图画书团队"""
 artist_crew =  Crew(
  agents=self.agents, # 由@agent装饰器自动创建
  tasks=self.tasks, # 由@task装饰器自动创建
  process=Process.sequential,
  verbose=True,
  # process=Process.hierarchical, # 如果你想改用这个,可以参考 https://docs.crewai.com/how-to/Hierarchical/
 ) 

 return artist_crew

 

Flujo de trabajo principal: Garantizar el traspaso adecuado entre los dos agentes. Por ejemplo, cuando un guionista termina una escena, la pasa automáticamente al artista visual, lo que garantiza la continuidad del flujo de trabajo.

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

## 使用 QuestCrew 创建假设或生成问题
inputs = {
   'number_of_scenes': int(number_of_scenes),
   'story_text': story_text,
}

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

agentops.end_session("Success")

if scenes_list is not None:        
   print(f"Raw result from script writing: {scenes_list.raw}")

slist = scenes_list.pydantic
story_summary = slist.summary
for scene in slist.scenes:
   print(f"Scene: {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'])

## 运行代理
result_images = ArtistCrew().crew().kickoff_for_each(inputs = scene_input)

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

 

llegar a un veredicto

El poder de la IA generativa reside en su capacidad para aumentar y apoyar el proceso creativo, proporcionando a los creadores de contenidos nuevas herramientas para dar vida a sus ideas. El agente CrewAI LLM ayuda a transformar historias cortas sencillas en atractivos cómics ilustrados, asistiendo a los narradores en cada etapa del proceso. Al automatizar tareas repetitivas como la descomposición de guiones y la generación visual, la IA permite a artistas y escritores centrarse más en los elementos creativos fundamentales, preservando su estilo artístico único. Esta aplicación demuestra cómo la IA generativa puede mejorar la industria creativa, ofreciendo una visión de un futuro en el que la creatividad y la tecnología trabajan juntas a la perfección.

 

© declaración de copyright

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...