用魔法来激活魔法
手机狂魔小小爱
2023-03-28 00:01:26
0

原标题:用魔法来激活魔法

过去的这个周末,我一直在把玩 Stable Diffusion。之前用过 stable diffusion(SD)的 WebUI,也玩过 invokeAI,但作为一个非技术英语英语不那么灵光的工程师,形容女子漂亮绞尽脑汁也就止步于 delicate,衣着华美 gorgeous 顶天,颜色丰富决计想不到还有个 iridescent。所以,同样的工具,别人用出来是王者的效果,我自己则妥妥青铜。AI 作画对我而言,属于玩一会就会因为各种垃圾画作的产生而失去兴趣的东西。我想,要是能用中文写 prompt,然后自动转换成像样的,符合 SD,能生成精美画作的英文描述,那该多好啊?

这问题搁以前,是非常有挑战的事情。但如今有了 GPT,也就是个调用 API 的难度。我可以告诉 GPT3.5,把我提供的 prompt 翻译成英文并以其为蓝本,写个100字的小作文。于是乎我的 prompt:

一个安详的小村庄,蓝天白云绿草,满树的花,绝美

GPT3.5 给我翻译后并用英文扩展出来的描述:

Nestled in the heart of the countryside lies a serene and tranquil village, where the sky is a brilliant shade of blue and the clouds float lazily by. The lush green grass stretches out as far as the eye can see, and the trees are adorned with a plethora of colorful flowers, creating a breathtakingly beautiful scene. The air is filled with the sweet fragrance of nature, and the gentle breeze carries with it the sounds of chirping birds and rustling leaves. It is a place where time seems to stand still, and one can't help but feel a sense of peace and contentment in this idyllic setting.digital painting, hyperrealistic, fantasy, surrealist, artstation, ((insanely detailed and intricate)), (sci-fi, stunningly beautiful), dystopian, (sharp focus), ((cinematic lighting)), depth of field, iridescent golden

SD 生成的图片:

再比如:

不知火舞穿着红色的旗袍,站在樱花树下撑着绿色的小伞,对着镜头微笑

GPT 3.5 准确地理解这姐姐是拳皇中的人物:

Mai Shiranui, the iconic character from the video game series "The King of Fighters," is elegantly dressed in a vibrant red qipao, standing gracefully beneath a blooming cherry blossom tree. She holds a small green umbrella, adding a touch of whimsy to her already charming demeanor. Her smile is warm and inviting, drawing the viewer in with its genuine nature. The contrast between the bold red of her dress and the delicate pink of the cherry blossoms creates a stunning visual display. Mai Shiranui exudes confidence and beauty, making her a captivating subject for any artist or admirer.digital painting, hyperrealistic, fantasy, surrealist, artstation, ((insanely detailed and intricate)), (sci-fi, stunningly beautiful), dystopian, (sharp focus), ((cinematic lighting)), depth of field, iridescent golden, extremely long black ponytail hair, black eyes, hourglass body, long slim legs, elegant, character portrait, ultra realistic, ultra detailed face and eyes, realistic skin, realistic hair, realistic eyes, realistic face, realistic body, realistic hands, realistic feet

SD 生成的图片(注意,SD 并未如实表达绿色小伞):

有了这个思路,我用 streamlit 和 diffusers 构建了一个简单的 Web UI,允许我输入中英文 prompt,然后调用 GPT,将其拓展成小作文,并附带一些额外的参数,传给 diffusers 作图。其中对于人物我还特定添加了细节的参数,比如眼睛的颜色,头发的样式等。有点给芭比娃娃打扮的感觉:

后来我又稍作修改,允许载入不同的 model,如下是载入 prompthero/openjourney 绘制铁甲霸王龙:

大图(使用 realESRGAN 4 倍放大):

这个在几年前无法想象的绘图工具,如今只需200行代码就能完成全部的 UI,后端逻辑(包括调用 GPT API 和 SD 模型处理),图像放大等功能。核心的绘制图片的代码:

def draw_image(pipe, i, prompt, width, height, steps, scale): withst.spinner( 'Drawing image...'): ret = pipe( prompt, negative_prompt=NEGATIVE_PROMPT, height=height, width=width, guidance_scale=scale, num_inference_steps=steps, max_embeddings_multiples= 4,) image = ret.images[ 0] image_path = "./img{}{}.jpg".format(i, hash( prompt))

upscaler = Upscalerimg = upscaler.run(image, 1.0) img.save(image_path)

return{ 'image': img, 'path': image_path, 'prompt': prompt, 'width': width, 'height': height, 'steps': steps, 'scale': scale, }

在撰写的过程中,我还故意尝试使用 cursor IDE(GPT-4)来生成代码,最终大概有 30-40% 的代码(主要是 streamlit)是 cursor 帮我生成的。然而生成图片的代码,以及 upscale 的代码,cursor 还无法帮我生成,感觉它还没有学习 diffusers 和realESRGAN 这两个库。比如我让它用 diffusers 帮我根据 prompt 生成图片:

# use diffusers lib to generate an image based on promptimport diffusers

prompt = "A beautiful sunset over the ocean"image = diffusers.generate(prompt)image.save( "sunset.png")

它会瞎调用不存在的 API。不过,cursor 对 streamlit 就很熟。我让它生成的 streamlit 代码,基本都满足了我的需求。

结语

这两天带着小宝小贝没少玩我做的小工具,加上我各种测试生成的图片,前前后后有个两百张高质量的图片。我没有专门的 GPU,只能拿着 m1max 凑合跑,在网上找了些 serverless GPU 的方案,包括 replicate,banana.dev,都遇到不少问题。由此,我对 serverless GPU 的实现逻辑也有一些纸上谈兵的粗浅想法,后续也许会写文章描述一下。两天下来,GPT API 的花销仅仅增加了 4 美分,却大大提高了我生成图片的效率和质量。如果你还没用 GPT API 做点事情,我强烈建议你试试,python,JS,Rust 的 SDK 质量都还可以。

有人说:后 AIGC 时代,程序员将会失业。我却不这么认为。由于编程的门槛大大降低,AIGC 时代会激活更多 ”程序开发“ 的工种,就像高级语言时代终结的不是程序员,反而开拓了程序员的市场;web 开发时代终结的也不是程序员,它让非科班出身的开发者也成为程序员;AIGC 时代,传统意义上的程序员会小众化,但更多的 “程序开发” 的需求会带来一个全民程序员的时代。那些被淘汰的程序员,也仅仅是因为无法适应新的开发模式而被淘汰,就像汽车的平民时代到来后,只有那些不转型的,仅仅会为单位开车的小轿车司机,才会被淹没在历史之中。

扯远了,关于这个话题,我计划 4/16 号在望京的 meetup 多聊聊。嗯,是的,在阔别祖国 3 年多,我终于可以短暂地回去一趟。具体细节,过几天会另行通知。

再放几张高清大图,请自取:

未来世界的女机器人

从油画中走出来的拿破仑

穿着高定礼服,佩戴精致首饰的黑发公主

机器人写代码

杀人鲸跃出水面

站在天坛前面的小女孩(SD给了个科幻版的天坛)

航拍宜居的地外星球

完成任务的机甲战士

拥有东方血统的水边的阿狄丽娜

相关内容

热门资讯

蛋仔派对手游更新加速延迟卡顿掉... 《蛋仔派对》是一款潮玩题材的休闲竞技手游,玩家将化身Q萌蛋仔开启趣味闯关之旅。核心玩法涵盖竞速、生存...
鹅鸭杀手游卡顿掉帧更新太慢解决... 鹅鸭杀手游是一款主打社交推理的多人在线派对游戏,围绕三大阵营对抗展开。玩家随机化身鹅、鸭或中立阵营角...
原创 F... 对于喜欢看LOL比赛的网友们来说,这段时间还是挺无聊的,毕竟没有比赛可以看。但是这个时候,隔壁LCK...
三国杀:激昂杀复杀还是军八k头... 大家好,这里是你们的老朋友手杀菌!作为21年上线的四血史诗武将,吴景因为可以将魂合成,在广大小伙伴中...
上线就被搬砖党光速锁定,摸鱼搬... 有这样一款游戏,在测试期间便让搬砖党大赚一笔,凭借近乎完美的搬砖生态不仅爽了大佬也爽了无数搬砖党。正...
原创 鹅... 在《鹅鸭杀手游》中,炸弹王是鸭子阵营中极具策略性的角色,其核心玩法为秘密安置15秒倒计时炸弹。炸弹将...
虎牙携鹅鸭杀手游强势来袭,热搜... 来啦!来啦!让无数社交玩家们久等的手游大作终于强势来了。1月7日,由虎牙与金山世游联合发行的《鹅鸭杀...
西施玩家突然迎来惊喜,游龙清影... 大家好我是指尖,1月6日王者荣耀官宣了西施的星传说皮肤,和猫影幻舞一样,都是需要再赛事战令中获取,不...
葫芦齐心,其利断金!穿越火线枪... 手游巴士(www.shouyoubus.com)2026年01月06日:小伙伴们大家好,CF手游与葫...
原创 老... 老鼠大冒险新手进阶攻略,本游戏里玩家可以来体验三角洲的文字版本游戏,在这里你该如何配装,然后去战场里...
《星际裂变》简评:探索与建造的... 在生存建造与自动化工厂类游戏早已不是新鲜概念的今天,每一款新作都需要一个足够独特的“钩子”,才能在拥...
流浪巫师与Hololive E... 由阿根廷独立游戏团队Seven Leaf Clover开发、流浪巫师(Wandering Wizar...
Steam 秋促四款治愈系模拟... 日常工作忙?想在假期体验农家慢生活?steam秋促期间,小编整理了四款治愈系模拟经营游戏,供大家参考...
《冒险岛》V219版本上线!新... 经典端游《冒险岛》新版本9月10日上线啦!此前在晨星晚宴中初现真容的吉伦·达尔莫尔的新使徒——瓦尔德...
李飞飞踢馆游戏圈:Unity们... 新智元报道 编辑:倾倾 【新智元导读】1900亿美金的游戏帝国正迎来寒冬!《原神》式的重金堆砌已近...
亚马逊曝光《仁王3》发售日定价... 备受期待的光荣特库摩旗下大作《仁王3》官方一直宣称2026年初发售,今天,从不让玩家们失望的的亚马逊...
《逆战:未来》前瞻直播交底,玩... “十年了,我的青春又回来了!”、“猎场塔防都有???”、“第一个月直接上俩赛季啊,这么有诚意”……1...
《方块方舟》万圣节来袭!惊魂派... 摘要:体素沙盒生存游戏《方块方舟》迎来万圣节特别更新!“惊魂夜”活动同步开启,玩家可通过收集南瓜兑换...
首发即全部:《王国保卫战5》的... 在传统塔防面临创新与增长双重压力的背景下,铁皮工作室携手东品游戏以“内容先行、体验为本”的发行思路,...
《龙之谷》怀旧服今日开启新服预... 1月6日,《龙之谷》怀旧服即将开启正式公测!新服「怦燃心动」及新职业「黑暗复仇者」同步登场。今日12...