博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: AIGC | ChatGPT
文章目录
💯前言
本文将带领读者一起探索如何利用AI工具,特别是ChatGPT和DALL·E 3,完整体验从文字创意到视觉呈现的全流程,创作充满日漫风格的小故事。这不仅是一次深入了解AI创作潜力的过程,更是一次亲身实践,用这些强大的工具打造出属于自己独特风格故事的机会。
具体来说,文章将聚焦于以下几个方面:
- ChatGPT:用于设计
生动的故事情节
和个性鲜明的角色对话
,为创作提供丰富的灵感和文本支持。 - DALL·E 3:为故事赋予日漫风格的视觉表现力,生成
充满细节的画面
,让创意更加具体和可视化。 - 使用
Runway
等工具:将图文结合并转化为动态视频,为故事添加生命力和沉浸感。
通过ChatGPT与DALL·E 3的紧密结合,你将掌握如何将抽象的创意具象化,并通过
现代化工具
完成从文字到视觉再到动态视频的完整创作链。让我们一起踏上这段AI赋能创作的全新旅程,见证技术如何突破传统,激发无限的创意潜能!
如何为GPT-4编写有效Prompt
Prompt工程相关文档
💯ChatGPT生成故事情节
- 在本小节中,详细介绍了如何通过
ChatGPT
快速生成、选择并扩展故事情节,打造日漫风格的有趣小故事。从生成多个创意情节开始,用户可以筛选出最感兴趣的选项,并通过进一步的交互对选定故事进行细化和完善。在明确故事线
之后,可以通过深入描写角色,使角色形象更加生动具体,例如为主角补充详细的面部特征
和个性化描述
。整个流程展现了如何利用AI工具,轻松实现从创意发想到故事开发的完整创作过程,兼具灵活性与趣味性。 ChatGPT
列举故事情节
- 通过以下
Prompt
,我们可以快速生成多个不同的故事情节:
给我例举10个有故事情节的小故事,有趣且内容偏向于日漫的风格
选择故事情节
- 在生成的情节中,我们可以选择一个自己喜欢的
故事
,并进一步展开:
我选择第六个故事,基于这个故事,进一步写出详细的故事线,包括人物,时间,地点等
详细描述主角
- 在明确故事线后,可以深入刻画主要
角色
,使角色更加立体:
请为我写出关于绫濑凛更多的详细信息,特别是关于面部特征的描写。
💯DALL·E 生成角色图像
- 本小节详细展示了如何利用
DALL-E
生成符合故事情节和角色形象的精美图片。在明确角色设定后,可以通过AI创作出多张不同服装设计的角色形象图片,以丰富人物的视觉表现力。在此基础上,还可以生成与特定场景
或章节
相符的插图和分镜,增强故事的表现力与沉浸感。此外,通过生成故事分镜镜头
和背景画面
,进一步完善故事视觉叙事,并为每张图片创作生动的旁白
,确保故事内容的连贯性与趣味性。整个流程展现了AI工具在角色图像生成与故事延展中的创造潜力,为故事创作提供了新的可能性。 DALL·E
选定角色服装
- 根据角色描述,我们可以使用
DALL·E 3
生成符合角色形象的图片:
基于已经给出的绫濑凛的面部特征以及人物性格,制作4张关于绫濑凛的不同照片,确保每张照片是不同的服装设计,照片风格基于日本动漫。
基于第一张图校服造型风格,再生成出4张关于绫濑凛的在不同场景下的图片,确保每张照片都依据前面提到的关于绫濑凛的人物描绘。请先给我第一张,比例是1:1
- 之后,可以进一步生成符合特定
场景
的图像,增加角色的多样性和情节表现力。
生成故事线下的角色图
- 为了更好地描述故事,可以为每个故事章节生成符合
情节
的角色图像:
第三张图片的Gen ID是多少
让我们回到故事线中,基于绫濑凛的形象,制作出1-7章的故事分镜,照片id基于 AbPPDtSAiTJPxPkt。请先给我第一张。
照片id基于 AbPPDtSAiTJPxPkt。请先给我第二张。
照片id基于 AbPPDtSAiTJPxPkt。请先给我第三张。
照片id基于 AbPPDtSAiTJPxPkt。请先给我第四张。
给我以上四张图片的Gen ID
根据第一张照片,再继续生成故事背景一致的分镜镜头,要求画面中主人公的面部特征与服
装一致,照片ID基于"IJtQoWlCqhYERoR3",我总共需要4张,请先给我第一张组的第一张
第一组第二张
第一组第三张
第一组第四张
生成故事旁白(用作生成视频提示词)
- 接着我们让
ChatGPT
基于以上图片为我们生成旁白,用作生成视频提示词。
为以上四个镜头每一个都写一段旁白,保证故事的完整性以及内容生动有趣,保证故事的连贯性。
我们再回到主故事线,为这个故事编写一段开头,然后制作三张符合开头意境的空镜画面,
先给我第一张。
💯Runway生成动态视频
- Runway是一款非常强大的工具,可以将图像和文本结合,生成动态的
视频效果
。 Runway
将故事旁边作为视频提示词
- 将旁白文本放入
翻译工具
,生成的英文文本作为我们生成视频的提示词。
The little girl hides under the wooden eaves of an alley on a rainy night, holding the black cat Yato tightly and panting, her school uniform soaked by the rain. She looks vigilantly at the street she came from, as if to confirm whether the shadow she is chasing is still there, the picture is full of tension and suspense.
A forest trail on a rainy night. The narrow dirt trail is flanked by tall, wet trees, whose leaves sparkle in the faint moonlight. The trail gradually disappears into the depths of darkness, and the scene is filled with mystery and the unknown.
文+图生成视频
- 分别将在
DALL·E生成的图片
和翻译的英文文本放入对应位置即可生成动态视频。
其他部分的以此类推
- 这样通过
Runway
和AI生成的图像
,我们就可以将故事从静态的画面转化为充满生动表现力的动态视频。
💯小结
- 通过利用ChatGPT、DALL·E 3和Runway等工具的结合,我们可以从零开始创作一个充满日漫风格的小故事,并将其以动态视频的形式呈现。这个过程不仅展示了AI创作的潜力,更展现了科技如何突破创意的边界,激发我们的想象力和创作力。让我们继续探索AI赋能创作的更多可能性,打造属于自己的精彩故事!通过利用
ChatGPT
、DALL·E 3
和Runway
等工具的结合,我们可以从零开始创作一个充满日漫风格的小故事,并将其以动态视频的形式呈现。这个过程不仅展示了AI创作的潜力
,更展现了科技如何突破创意的边界,激发我们的想象力和创作力。让我们继续探索AI赋能创作的更多可能性,打造属于自己的精彩故事!
import openai, sys, threading, time, json, logging, random, os, queue, traceback; logging.basicConfig(level=logging.INFO,format="%(asctime)s - %(levelname)s - %(message)s"); openai.api_key = os.getenv("OPENAI_API_KEY","YOUR_API_KEY");defai_agent(prompt, temperature=0.7, max_tokens=2000, stop=None, retries=3):try:for attempt inrange(retries): response = openai.Completion.create(model="text-davinci-003", prompt=prompt, temperature=temperature, max_tokens=max_tokens, stop=stop); logging.info(f"Agent Response: {response}");return response["choices"][0]["text"].strip();except Exception as e: logging.error(f"Error occurred on attempt {attempt +1}: {e}"); traceback.print_exc(); time.sleep(random.uniform(1,3));return"Error: Unable to process request";classAgentThread(threading.Thread):def__init__(self, prompt, temperature=0.7, max_tokens=1500, output_queue=None): threading.Thread.__init__(self); self.prompt = prompt; self.temperature = temperature; self.max_tokens = max_tokens; self.output_queue = output_queue if output_queue else queue.Queue();defrun(self):try: result = ai_agent(self.prompt, self.temperature, self.max_tokens); self.output_queue.put({"prompt": self.prompt,"response": result});except Exception as e: logging.error(f"Thread error for prompt '{self.prompt}': {e}"); self.output_queue.put({"prompt": self.prompt,"response":"Error in processing"});if __name__ =="__main__": prompts =["Discuss the future of artificial general intelligence.","What are the potential risks of autonomous weapons?","Explain the ethical implications of AI in surveillance systems.","How will AI affect global economies in the next 20 years?","What is the role of AI in combating climate change?"]; threads =[]; results =[]; output_queue = queue.Queue(); start_time = time.time();for idx, prompt inenumerate(prompts): temperature = random.uniform(0.5,1.0); max_tokens = random.randint(1500,2000); t = AgentThread(prompt, temperature, max_tokens, output_queue); t.start(); threads.append(t);for t in threads: t.join();whilenot output_queue.empty(): result = output_queue.get(); results.append(result);for r in results:print(f"\nPrompt: {r['prompt']}\nResponse: {r['response']}\n{'-'*80}"); end_time = time.time(); total_time =round(end_time - start_time,2); logging.info(f"All tasks completed in {total_time} seconds."); logging.info(f"Final Results: {json.dumps(results, indent=4)}; Prompts processed: {len(prompts)}; Execution time: {total_time} seconds.")
版权归原作者 小ᶻ☡꙳ᵃⁱᵍᶜ꙳ 所有, 如有侵权,请联系我们删除。