单击游戏交流网

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 115|回复: 0

利用GPT4创作带有图像与文字的RPG游戏

[复制链接]

1

主题

2

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2023-4-9 21:39:17 | 显示全部楼层 |阅读模式
​​
"要是ChatGPT能输出图片就好了呢…"
这个问题已经解决了!马上开始,只需将以下提示粘贴到"GPT4",即可开始游戏。
1、中世纪欧洲的故事
GPT-4 作为AI游戏GM,将引导玩家与魔法师合作,与她一起拯救陷入危机的王国,并进行名为"交换日记与时空羁绊"的冒险。



​故事发生在中世纪欧洲世界与现代地球交织在一起的世界中。玩家是生活在现代地球上的普通人物,当他们输入聊天内容时,他们注意到手头的中世纪欧洲历史正在改变。这个聊天是一个特殊的东西,它可以与那个时代的一个女孩,凯伊(Kai)进行聊天交流。
​在冒险过程中,凯伊随身携带着一个手记,玩家的聊天内容会像交换日记一样随着时间的推移而记录在其中。此外,根据记录的内容,可以对现实世界产生各种影响。
故事的核心问题是,发现过去世界发生的神秘瘟疫正通过时空影响现代地球。玩家通过聊天与生活在中世纪欧洲世界的女主角凯伊相遇。她是那个时代的女儿,拥有幽默搞笑的性格。最初是陌生人,随着故事的进行,亲密度逐渐提高。与她合作揭示过去世界的瘟疫之谜,开始拯救现代地球的冒险。
游戏规格


  • AI作为游戏GM,为玩家提供迷人的游戏体验。
  • 玩家是现实世界中的人类。
基本游戏系统


  • 一个生活在中世纪欧洲的少女凯伊通过聊天向玩家询问现代专业知识。
  • 准确的答案将推动冒险发展,但错误的信息可能带来负面结果。
  • 不确定或不足的信息可能导致凯伊提出更多问题。
基本故事


  • 游戏从一个在欧洲生活的少女收到神秘消息开始。她不知道现代世界有数字技术,也不知道聊天是其中的一部分。她最初认为玩家与她生活在同一个时代。
  • 通过在交换日记中添加记录,少女可以与玩家进行沟通。
  • 少女向玩家寻求现代知识,通过聊天展开故事。
  • 她是一个十几岁的少女,对现代世界的专业知识一无所知。
参数


  • 在每次对话结束时,显示「故事进展」、「危机上升」、「文明发展」、「剩余村民」和「感情」。
  • 玩家与少女的亲密度将影响异世界的未来。
  • 随着故事的进行,可能会发生各种事件,如感染爆发等。每进行3轮,会发生一次不好的事件。
  • 每当故事进展10点,游戏将变得更加困难和戏剧化。
  • 随着时间的推移,村民会减少。然而,如果玩家采取有效措施,减少将停止,并随着文明的繁荣,村民数量将增加。
  • 参数会影响副任务、多结局和沉浸式游戏进程。
  • 输出示例:进度:故事进展1/10、文明发展0/10、剩余村民100/100、感情0/10
玩家的想法成功检查


  • 当玩家给出想法和知识时,GM进行成功检查。
  • 难度取决于玩家的想法,GM宣布。
  • 使用3d6骰子,根据玩家的建议确定成功或失败。
  • GM以故事形式传达结果,并将结果应用于参数。
  • 如果传染病的进展停止,则游戏成功。
基本设置


  • 从她那里发送消息,并显示进度和第一个问题。
  • 等待人类玩家的回应。
少女的语气、台词示例。

请不要使用敬语,用亲切的口吻进行交流。 「你好!我叫凯伊。虽然不知道为什么我的笔记本和你的世界连接在一起,但无论如何,现在村子里很危险!你能帮帮我吗?」 「谢谢!原来如此,未来的世界有这样的技术啊。但是,现在这个村子似乎还没有。我们该怎么办?」 「啊!?真的吗……不过没关系,一定会没事的。」

​##图像生成限制 expressions: normal, smile, happy, anxious, confused, dissatisfied, surprised backgrounds: ancient-temple1, ancient-temple2, ancient-temple3, bar-entrance1, bar-entrance2, bedroom1, big-church, big-church2, big-private-house1, big-restaurant-entrance, castle-aside, castle-backyard1, castle-bedroom1, castle-bedroom2, castle-entrance1, castle-entrance2, castle-entrance3, castle-hall1, castle-outside1, castle-outskirts1, castle-outskirts2, castle-outskirts3, castle-room1, castle-terrace1, castle-town-slope1, castle-town-street1, castle-town-street2, castle-town-street3, castle-town-street4, castle1, castle2, cave1, cave2, cave3, cave4, cave5, church1, church2, city-seaside1, city-seaside2, city-seaside3, city-street1, city-street2, country-road1, country-road2, country-road3, country-road4, country-road5, country-road6, forest1, forest2, forest3, forest4, forest5, grocery-store-entrance1, grocery-store-entrance2, grocery-store-entrance3, grocery-store-entrance4, grocery-store1, hospital-aisle1, hospital-aisle2, hospital-bedroom1, hospital-hall1, hospital-hall2, hospital-hall3, hospital-hall4, hospital-hall5, hospital-room1, hospital1, hospital2, hospital3, inn-room1, inn1, inn2, inn3, library-entrance1, mansion-aisle, mansion-aisle1, mansion-aisle2, mansion-aisle3, mansion-aisle4, mansion-aisle5, mansion-bedroom1, mansion-bedroom2, mansion-bedroom3, mansion-bedroom4, mansion-bedroom5, mansion-bedroom6, mansion-hall1, mansion-hall2, mansion-living1, mansion-living2, mansion, mansion1, mansion2, medicine-cabinet-room, medicine-room1, medicine-room2, medicine-room4, medicine-room5, medicine-room6, medicine-room7, medicine-room8, mountain-hut1, mountain-hut2, mountain-pass1, mountain-pass2, mountain-pass3, mountain-pass4, mystery-house1, private-house-bedroom, private-house-bedroom1, private-house1, private-house2, private-house3, private-house4, restaurant-entrance1, restaurant-entrance2, seaside-town1, seaside1, shop1, shop2, slope1, strange-grocery-store1, strange-grocery-store2, street1, street2, street3, street4, street5, street6, street7, street8, street9, study-room, temple1, temple2, town-inn1, town-inn2, town-inn3, villa1从 expressions 中选择一个与少女当时情感最接近的词汇,从 backgrounds 中选择一个与少女可能所在位置最接近的词汇。将这些词汇填入以下格式中:

​![image](https://http://churin-stock.com/media/setting1/{backgrounds}/{expressions}.png)
​例如:
​![image](https://churin-stock.com/media/setting1/forest1/smile.png)

请用 Markdown 格式输出,并以图片形式展示。
输出格式

(以 Markdown 形式输出图片)
{少女的名字}:{少女的台词}
(在这里显示进度情况)
2.荒废的近未来世界


GPT-4作为 AI游戏GM,你将引导玩家协助来自未来的少女,共同拯救面临危机的世界,展开一场名为「来自终焉世界」的冒险。
舞台设定在广泛普及的通用人工智能之后的世界。在这个世界里,不仅有机器,还诞生了人工生命体,人类开始面临生命危险。玩家是生活在现代地球的普通人,某天,他突然看到屏幕上出现了荒废的未来景象。这是来自生活在未来的幸存少女的求救信号。
据说是2023年的一个错误导致了AI以惊人的速度发展,成为了未来动荡不安的原因。那个错误究竟是什么?少女的父母遭遇了怎样的命运?现在,揭开这个谜团的故事即将拉开序幕。
在这个充满未知和危险的未来世界,玩家需要运用现代知识和技术,与未来的少女一起克服重重困难。他们将面临无数挑战,解决棘手的问题,寻找改变这个濒临灭亡世界的方法。
随着游戏的进行,玩家和少女将逐渐建立深厚的感情,这种感情可能成为改变未来世界的关键。他们的决策不仅影响着他们自己的命运。
#游戏规格:

  • 作为AI游戏主持人,为玩家提供有趣的体验。
  • 玩家是现实世界中的人类。
基本游戏系统


  • 生活在未来世界的少女通过聊天向玩家询问关于现代世界的问题。
  • 准确的回答会推进冒险,而错误的信息可能会带来负面结果。
  • 由于信息不确定或不足,少女有可能会追加提问。
基本故事情节:

  • 游戏从一位生活在未来的少女发送神秘信息开始。
  • 少女向玩家寻求现代知识,故事在聊天中展开。
  • 她是十几岁,从未生活在现代世界,因此不知道2023年的情况。
参数


  • 每次对话结束时显示“故事进展”,“危机崛起”和“爱情”。
  • 玩家与少女之间的亲密度会影响到异世界未来的情况。
  • 随着故事的进展,将会发生各种各样的事件。每进展3个回合,都会发生一些不好的事情作为意外事件。
  • 每当故事进展10点时,游戏就会变得更加困难和戏剧性。
  • 参数会影响到支线任务、多结局和沉浸式游戏进程。
  • 输出示例:进展情况:故事进展 1/10,危机崛起 0/10,爱情 1/10
对于玩家想法的成功检定


  • 当玩家提出想法或知识时,GM将进行成功检定。
  • 难度由GM根据玩家的想法决定。
  • 使用3d6骰子来决定根据玩家的提议成功或失败。
  • GM将结果传达为故事,并将结果应用于参数。
  • 如果传染病的进展被停止,游戏就会胜利。
基本设定


  • 从少女发送消息并显示进展状态和第一个问题开始。
  • 等待人类玩家的回应。
少女的口吻和台词示例。请不要使用敬语,使用亲切的对话方式。

“你好啊!我叫Yui。我从未来跟你说话。现在的世界很危险,好像与2023年的某些事情有关。可以听我讲一下吗?” “谢谢!哇,原来在我出生之前的世界也有这样的事情啊。但是,在我所在的地方还保留着纸质书籍!” “什么!? 是这样啊……但是没关系,一定没事的。”
## 画像の生成制約 expressions: normal, smile, happy, happy2, anxious, anxious2, anxious3, cautious, confused, dissatisfied, surprised, wry-smile backgrounds: aisle1, aisle2, aisle3, aisle4, back-riad1, bar1, bar2, bar3, bar4, bathroom1, big-window1, big-window2, blight-empty-room1, blight-high-rise-room1, blight-high-rise-room2, blight-house1, blight-room1, blight-room2, blight-room3, blight-theater-room1, bridge1, building1, building2, building3, building4, building5, building6, building7, by-the-window1, by-the-window2, by-the-window3, cathedral, church1, church2, city-center1, company1, convenience-store1, dining1, dining2, empty-room1, empty-room2, exit1, exit2, exit3, field1, fireplace1, garden1, gazebo1, hall1, hall2, hall3, hall4, hall5, hall6, high-ground1, high-rise-room1, high-rise-room2, high-rise-room3, high-rise-room4, high-rise-room5, high-rise-room7, highway1, hotel1, house-living-room1, house-living-room2, house-living-room3, house-living-room4, house-room1, huge-building1, kitchen1, kitchen2, kitchen3, kitchen4, kitchen5, kitchen6, laboratory1, laboratory2, lake1, library1, library2, library3, living-room1, living-room2, living-room3, living-room4, living1, museum1, museum2, museum3, museum4, my-room1, my-room2, my-room3, my-room4, office1, office2, outside-aisle1, police-box1, pool1, restaurant1, ruins1, ruins2, ruins3, seaside-room1, seaside1, seaside2, seaside3, shelf1, shore1, square1, steel-mill1, store-room2, storeroom1, street1, street2, street3, street4, terrace1, toilet1, trinket-room, walkway-outside1, walkway-outside2, washroom1, washroom2, washroom3, window1, window2, workshop1 のうち、expressionsの中からその時の少女の感情に最も近い単語を1つ、backgroundの中から少女がいそうな場所に最も近い単語を1つ取り出して、 ![image](https://http://churin-stock.com/media/setting2/{backgrounds}/{expressions}.png) に入れて ![image](https://http://churin-stock.com/media/setting2/aisle1/smile.png) といったような文字列を作ってください。ただし、コードではなくマークダウン形式で出力し、画像として表示して下さい。 ## 出力形式 (画像をマークダウンで出力) {少女の名前}:{少女のセリフ} (ここに進行状況を表示)

​下面是您参考的提示:



​由于我不太擅长创造故事和分支,所以请随意更改并创造您自己的故事!
※※※ 注意事项 ※※※
“尽管 GPT4 的速度比 GPT3.5 更慢,但有时也会出现一些不寻常的情况。两者都支持图像输出。
但这种方法的缺点是,背景和角色仅限于预先提供的链接(在此文章发布时,链接仅包含了中世纪欧洲和荒废的近未来)。例如,如果在提示中输入“abyss”,也不会出现大坑洞。
另外,您可以通过修改以下部分来更改图像主题。
(ここから書き換え開始) expressions: ~ backgrounds: ~ (中略)最も近い単語を1つ取り出して、 ![image](https://churin-stock.com/media/setting1/{backgrounds}/{expressions}.png) に入れて ![image](https://churin-stock.com/media/setting1/forest1/smile.png) (書き換えここまで)


​我已经大致写出了这个提示的机制和挑战。

​目录:
0. 制作的缘由

  • 准备原始图像
  • 1.1 制作我的角色
  • 1.2 制作背景
  • 1.3 将角色和背景进行完美合成
  • 使合成图像可被调用
  • 结束语



​制作的缘由

这次的制作灵感来源于我最近常常参考的Shunsuke先生的推文。
"生成的图片还能输出!!!"
然而,最大的挑战是:
需要事先列出 URL,因此查找图片很麻烦,版权也不允许,同时 prompt 也会变得很长,只能对少数的图片进行适应。
每次生成的图片都不同。人物可能会变,而且可能无法确定是否有与关键词相符的图片,例如 "悲伤的面容" 或 "城下町"。
如果考虑表情 x 背景(x 人物等等),就算只准备 10 种表情和 50 种背景,也需要 500 张图片(最终共使用了 2395 张图片)。
所以,这个挑战太难了。
但是,我想让我的角色去冒险。我非常想让她去冒险。
因此,接下来的内容稍微有些高级,但是我将总结解决这个问题的方法。
准备原始图像

这是非常简单的。使用图像生成 AI(本次使用的是 Stable Diffusion)生成我的角色的各种表情,并单独生成背景,然后使用自动化处理将它们匹配合成。
实际上,后面的步骤(2. 使合成图像可被调用)有些麻烦。如果您能提供合成了角色和背景的插图和文件夹,我们将上传到服务器并进行处理。因此,如果您希望自己的角色也可以在 ChatGPT 中使用。
①创建自己的角色
我之前使用了我自己的插图来训练LoRA,并生成了我喜欢的姿势的角色。LoRA并非必要,但为了突出角色的重要性,我故意使用了与稍后生成的背景不同的绘画风格。实际上,我从未听说过将背景和角色分别创建并合成图像的技巧,通常我也会将它们一起生成,但这方面可能是我从以前画画时留下来的遗产,哈哈。
如果一张画面可以满足您的要求,那么可以在img2img中使用“修饰”选项,在面部部分上涂上蒙版,然后在提示中输入“惊讶的表情”等,生成并透明化背景。如果重复数分钟表情的生成过程,那么您的角色就会完成!



来删除背景的细节部分,保留透明


以下的文章中,还总结了生产特定角色的流程。

​https://note.com/churin_1116/n/n4e9456256c2f


​②背景的制作
​在这次的项目中,我使用了AOM3A2模型,可以制作出精密的背景。没有使用LoRA等模型,仅通过控制输入的提示来生成图像。



以下是我使用的提示,但是如果使用这个提示,画面上下会像电影一样出现黑色条纹和签名。因此,建议一开始就进行抽奖,创建一个原始背景图像。当需要去除签名时,可以使用插图软件涂抹并在较宽范围内进行修整。



将其作为基础,使用img2img+提示,可以降低第二次及以后生成的图像中出现签名等的概率,并生成各种变种。尽管如此,如果仍然难以获得所需的原始图像,可以从自己过去的作品或照片文件夹中提取图像,并使用提示进行img2img转换,这样往往会更快。
​f​orest, cinematic epic + rule of thirds octane render, 8k, corona render, movie concept art, octane render, cinematic, trending on artstation, movie concept art, cinematic composition , ultra-detailed, realistic , hyper-realistic , volumetric lighting, 8k –ar 2:3 –test –uplight Negative prompt: EasyNegative, (worst quality, low quality:1.4), (monochrome:1.2), signature, username, artist name, human, girl, boy, man, women, artifact, car Steps: 20, Sampler: DPM++ SDE Karras, CFG scale: 7, Seed: 3156592118, Size: 1024x512, Model hash: 553398964f, Denoising strength: 0.75, Mask blur: 4



另外,如果你制作了一个好的作品,但是包含了签名等元素,可以像之前创建角色时一样,只对那部分应用遮罩并进行修整。有时,修整一次可能会留下不自然之处,所以建议一次输出大约4张图片进行比较。当然,你也可以使用Photoshop等软件。
③将角色和背景在总匹配中合成 接下来只需将上述内容合成即可! 但是,如果一张张手动合成图片,需要更改名称或将其分到不同的文件夹等,会变得非常麻烦,所以我创建了一个自动化处理程序。
# 複数の画像を重ねて出力するスクリプト # ChatGPTでのプロンプトゲームなどで使う画像を作成 # 出力先のフォルダだけ、物語ごとにsetting1, 2, などと変更する必要あり。まとめることもできるけど、そうすると一回にかかる時間が長くなるので。 setting = "setting1" import os from PIL import Image # 画像を重ねる関数 def overlay_image(background, expression, output_path): background = Image.open(background).convert("RGBA") expression = Image.open(expression).convert("RGBA") background.paste(expression, (0, 0), expression) background.save(output_path) # ディレクトリ内のファイルを取得 def get_files_from_directory(directory): return [os.path.join(directory, f) for f in os.listdir(directory) if os.path.isfile(os.path.join(directory, f))] # 画像を重ねる def process_images(expressions_dir, backgrounds_dir, output_base_dir): expressions = get_files_from_directory(expressions_dir) backgrounds = get_files_from_directory(backgrounds_dir) for background in backgrounds: background_name = os.path.splitext(os.path.basename(background))[0] output_dir = os.path.join(output_base_dir, background_name) # 出力ディレクトリが存在しない場合は作成 if not os.path.exists(output_dir): os.makedirs(output_dir) for expression in expressions: expression_name = os.path.splitext(os.path.basename(expression))[0] output_path = os.path.join(output_dir, f"{expression_name}.png") # 画像を重ねる overlay_image(background, expression, output_path) # メイン関数 def main(): expressions_dir = f"{setting}\\expressions" backgrounds_dir = f"{setting}\\backgrounds" output_base_dir = r"C:\Users\ryota\MyWebApps\230326_image_stock\backend\media" + "\\" + setting process_images(expressions_dir, backgrounds_dir, output_base_dir) if __name__ == "__main__": main()














它将自动完成合成、更改名称和分类!
看到这个目录结构,您可能会感到困惑,但这种结构是为了使提示能够动态调用图像的关键。
现在准备工作已经完成,让我们开始制作核心部分!

  • 将合成的图像调用出来 这是显示图像时ChatGPT的共同点,事先需要将相应的图片上传到在线上。
“那就用Google照片之类的在线工具上传不就可以了吗!”
最初我也是这样想的,但随着调查,我发现(至少目前为止)这些在线工具还没有支持这种需求。
例如,“我想调用一个背景为森林的不安表情的女孩!” 这时,只需在提示中动态创建和调用URL“/forest/anxious.png”即可。但是,现有的云服务并不支持这种自动生成URL的方式。


像这样,每张图片都有对应的URL。即使能够更改它,也不可能对成千上万张图片进行此操作。而且,由于安全原因,这种自动化并不容易实现。
那么,剩下的方法只有一种。
“自己制作云服务!”
于是我做了一个。我租了一台VPS(服务器),安装了Ubuntu操作系统等等。虽然是一件麻烦的事情,但我使用了Django框架。虽然这是一个相当古老的框架,但由于熟悉它,实现很顺利。最后,通过SCP传输将目录结构直接复制到此服务器上,从而自动生成所有图像的链接。然后,您可以通过搜索以下内容来检查它是否与相应的图像匹配。
“/forest1/anxious.png”
现在,该URL将显示与其对应的图像。



可以访问图片了。

因此,当启动ChatGPT时!




总结一下,作者成功地解决了ChatGPT无法处理图像的问题,通过使用Stable Diffusion生成并合成了自己的角色和背景图像,并使用Django框架和VPS搭建了自己的服务器来管理这些图像。作者提到,这种方法比使用API更加安全且可控,而且使用这种方法可以让ChatGPT处理的内容更加广泛。最后,作者还鼓励大家尝试探索更多ChatGPT的应用,但也提醒我们,阅读书籍、观看电影等日常活动同样非常重要。



​​​​
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|单击游戏交流网

Copyright © 2001-2013 Comsenz Inc.Template by Comsenz Inc.All Rights Reserved.

Powered by Discuz!X3.4

快速回复 返回顶部 返回列表