AI Personal Learning
und praktische Anleitung
讯飞绘镜

Beispiel für die Automatisierung der Comic-Erstellung mit CrewAI-Agenten

(jemandem eine Stelle etc.) anbieten

Es gab eine Zeit, in der die Erstellung eines Comicbuchs ein langwieriger Prozess war, der Autoren, Zeichner und unzählige Stunden Arbeit erforderte. Heute dient die KI als leistungsstarkes Werkzeug, das Kreativprofis in die Lage versetzt. Stellen Sie sich vor, Sie geben eine Kurzgeschichte an die KI und beobachten, wie diese die Geschichte in einen lebendigen, visuell beeindruckenden Comic verwandelt - und dabei die einzigartige Perspektive des Schöpfers beibehält. Dies ist nicht länger nur eine Fantasie, sondern Realität, die durch modernste generative KI-Modelle ermöglicht wird. In diesem Blog werden wir folgende Themen behandelnCrewAI How LLM Agents Enhance the Creative Process of Comic Book Creation" (Wie LLM-Agenten den kreativen Prozess der Comic-Erstellung verbessern) befasst sich mit der Struktur und Umsetzung, die diesen Zauber möglich macht.

 

Beispiel: Erstellen eines Geschichtenbuchs aus dem Panchatantra

Um diesen Prozess zu veranschaulichen, nehmen wir eine kurze Geschichte aus dem Panchatantra, einer Sammlung alter indischer Fabeln, die für ihre Weisheit und moralischen Lehren bekannt sind. Nehmen wir die Geschichte vom Löwen und dem Hasen:


Kurzgeschichte: "Es war einmal ein mächtiger Löwe namens Basuraka, der im Dschungel Amok lief. Die Tiere hatten genug von seiner Tyrannei und beschlossen, ihm jeden Tag eine Beute zu schicken. Eines Tages war das schlaue Kaninchen an der Reihe, das sich einen Plan ausdachte, um den Löwen loszuwerden. Er lockte Basuraka zu einem tiefen Brunnen und überzeugte ihn, dass dort ein anderer Löwe lebte. Als er sein Spiegelbild im Wasser sah, brüllte Basuraka vor Wut und sprang in den Brunnen, um nie mehr zurückzukehren."

Unter Verwendung des CrewAI-Frameworks werden wir die folgenden Schritte durchführen:

  1. 1. Agenten für DrehbuchgestaltungDrehbuchautoren unterteilen die Geschichte zum Beispiel in Szenen:
  • - Szene 1: Löwen durchstreifen den Dschungel.
  • - Szene 2: Die Tiere beschließen, jeden Tag eine Beute abzuliefern.
  • - Szene 3: Das Kaninchen plant, den Löwen auszutricksen.
  • - Szene 4: Der Löwe springt in den Brunnen.
  1. 1. Agentur für visuelle KünstlerVisuelle Künstler werden für jede Szene Illustrationen anfertigen, die Schlüsselmomente darstellen, z. B. den Löwen, der durch den Dschungel brüllt, das Kaninchen, das den Löwen zum Brunnen führt, und die Schlussszene, in der der Löwe ins Wasser springt.
  2. 2. Synthesizer-AgentAm Ende fügt der Compositor all diese Szenen und Bilder zu einem kohärenten Bilderbuch zusammen, das dann betrachtet und weitergegeben werden kann.

Ausführlichere Informationen über die Geschichte des Panchatantra finden Sie in externen Quellen wie Panchatantra auf Wikipedia oder in der Panchatantra-Geschichtensammlung.

Automatisierte Autorengenerierung mit LLM-Agenten

Generative KI-Agenten kann man sich als ein digitales "Team" vorstellen, das zusammenarbeitet, um komplexe kreative Prozesse durchzuführen. Durch die Zuweisung spezifischer Aufgaben an einzelne KI-Agenten wird der Prozess der Erstellung eines ganzen Comicbuchs effizient und automatisiert. In der Abbildung unten arbeiten spezialisierte Agenten zusammen:

  1. 1. DrehbuchautorVerantwortlich für die Umsetzung von Kurzgeschichten in detaillierte Pannenszenen.
  2. 2. bildende KünstlerinVerantwortlich für die Umwandlung jeder Szene in ein überzeugendes visuelles Kunstwerk.
  3. 3. SynthesizerCompositor: Verantwortlich für die Zusammenführung aller generierten Szenen und der dazugehörigen Bilder zu einem kohärenten und vollständigen Comic. Der Compositor sorgt dafür, dass die Erzählung reibungslos abläuft und das Endprodukt zur Veröffentlichung bereit ist.

Die Synergie zwischen diesen Agenten automatisiert den Prozess der Comic-Erstellung und ermöglicht einen effizienten und kreativen Arbeitsablauf. Der Schlüssel liegt in der Fähigkeit, generative Sprachmodelle und KI-Systeme zur Bilderzeugung auf koordinierte Weise zu nutzen.

Überblick über die Architektur

Die Architektur dieser Automatisierung ist einfach, aber effektiv. Der Prozess beginnt mit einer kurzen Geschichte und läuft wie folgt ab:

  1. 1. Kurzer Beitrag zur GeschichteDer Prozess verwendet kurze Erzählungen als Input, die als Grundlage für den Comic dienen.
  2. 2. Agenten für DrehbuchgestaltungDer Agent unterteilt die Kurzgeschichte in einzelne Szenen, die jeweils einen wichtigen Teil der Handlung abdecken. In der Abbildung wird dies als Szenen mit der Bezeichnung "Szene 1, Szene 2, Szene 3" usw. dargestellt, bis die gesamte Geschichte in kleinere Szenen unterteilt ist.
  3. 3. Agentur für visuelle KünstlerDer visuelle Künstler ist dafür verantwortlich, jede Szenenbeschreibung in eine visuelle Darstellung zu übersetzen, die den Comic effektiv illustriert. Visuelle Elemente wurden als Bilder erstellt, um Szenen wie den Löwen in der Sonne, die Begegnung des Löwen mit dem Kaninchen usw. darzustellen.
  4. 4. SynthesizerSchließlich werden alle Szenen und die dazugehörigen Bilder von einem Compositor-Agenten zu einem vollständigen Bilderbuch zusammengefügt.

Der gesamte Prozess ist so konzipiert, dass die Erzählungen nahtlos in ansprechende Comics umgewandelt werden, die nur minimale menschliche Eingriffe erfordern.

Implementiert unter Verwendung des CrewAI-Frameworks

Um diese Vision zum Leben zu erwecken, haben wir das CrewAI-Framework mit drei harmonisch zusammenarbeitenden Agenten implementiert. Im Folgenden finden Sie die detaillierten Schritte des Implementierungsprozesses mit Platzhaltern für Codeschnipsel, damit Sie den Prozess Schritt für Schritt nachvollziehen können:

Definition von Agenten und AufgabenWir verwenden das CrewAI-Framework, um zwei Agenten zu definieren - Agent 1 (Drehbuchautor) und Agent 2 (visueller Künstler). Beide Agenten haben spezifische Rollen mit miteinander verknüpften Aufgaben für einen effizienten Arbeitsablauf.

## 代理
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

 

Team-Konfiguration: Definieren Sie ein strukturiertes Schema für Agenten, um Antworten und llm-Modelle, wie OpenAI- und DaLLE-Modelle, zu generieren und Agenten an ihre Aufgaben zu binden.

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

 

Hauptarbeitsablauf: Sorgen Sie für ordnungsgemäße Übergaben zwischen den beiden Akteuren. Wenn beispielsweise ein Drehbuchautor eine Szene fertigstellt, wird sie automatisch an den Visual Artist weitergegeben, um die Kontinuität des Arbeitsablaufs zu gewährleisten.

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}")

 

zu einem Urteil gelangen

Die Stärke der generativen KI liegt in ihrer Fähigkeit, den kreativen Prozess zu erweitern und zu unterstützen, indem sie den Autoren neue Werkzeuge an die Hand gibt, um ihre Ideen zum Leben zu erwecken: Der CrewAI LLM-Agent hilft dabei, einfache Kurzgeschichten in ansprechende Comic-Bilderbücher zu verwandeln und unterstützt die Geschichtenerzähler in jeder Phase des Prozesses. Durch die Automatisierung sich wiederholender Aufgaben wie die Zerlegung von Skripten und die Generierung von Bildern ermöglicht es die KI den Künstlern und Autoren, sich mehr auf die kreativen Kernelemente zu konzentrieren und ihren einzigartigen künstlerischen Stil zu bewahren. Diese Implementierung zeigt, wie generative KI die Kreativbranche verbessern kann, und bietet eine Vision für eine Zukunft, in der Kreativität und Technologie nahtlos zusammenarbeiten.

 

Darf nicht ohne Genehmigung vervielfältigt werden:Leiter des AI-Austauschkreises " Beispiel für die Automatisierung der Comic-Erstellung mit CrewAI-Agenten
de_DEDeutsch