没想到PhotoMaker是腾讯发布的!安卓手机上也能运行, 好玩~

没想到PhotoMaker是腾讯发布的!安卓手机上运行PhotoMaker, 好玩~!

先来解释下。

PhotoMaker 什么呢? 一句话理解,就是从指定的头像中抽取特征,然后StableDiffusion和PhotoMaker再根据这些特征来产生其他场景的图片, 类似于换脸,但是图片是新生成的。 没想到的是, 这个神奇的东西,居然是腾讯开源的!

我们经常在一些App 见到AI功能,说能绘制你年轻时候的照片,以及各个年龄段、老年的照片,其实使用这个PhotoMaker就可以, 快来看看吧, 看完你也会!

最近在研究安卓手机上运行Stable Diffusion, 目前主要是在运行Stable-Diffusion.cpp, 这是一个使用C++封装Stable Diffusion的项目, 类似于llama.cpp的做法, 只使用CPU 就可以产生图片。

我在旧的安卓手机红米K30 上, 大约用时30多分钟。在新买的K70 Pro, 使用骁龙8 Gen 3 处理器在跑这个Stable-Diffusion.cpp, 时间在20分钟。

对于Stable Diffusion的小白玩家来说,这是挺有意思的项目, 毕竟不用花钱买显卡, 甚至连电脑也省了, 只要有一部安卓手机就好, 实实在在是省钱啊。

————毕竟现在的经济形势不容乐观, 大家都很艰难, 即使斥巨资去买昂贵的显卡, 去配置好的电脑, 最后学会Stable Diffusion , 真正能变现, 能从Stable-Diffusion的使用上赚到钱的, 实属寥寥, 要不然就不会有那么多的“教你使用Stable-Diffusion”的广告贴、微信群。

“真正挣钱的项目, 从来不会有人大声说的”!

说到Stable Diffusion.cpp, 今天看到支持PhotoMaker, 就研究了下这个PhotoMaker, 发现这居然还是国产的, 是腾讯开源的项目, 看来我国在AI 技术方面的研究,并没有落后, 只是受限于显卡罢了。

这个PhotoMaker是干吗的呢?从字面意思理解, 这是一个图片生成器(Photo maker), 这不是废话~! 这个项目的真正特点是, 用我的理解是, 可以指定人的一些头像, 然后这个大模型就可以根据提示词产生各种场景的图片, 奇妙的是, 人的头像始终会是依据你指定的头像特征来产生的,也就是说, 千变万化,不离其脸。

看看更加书面一点的介绍:“使用的核心技术是“堆叠ID嵌入”。它可以将多个身份证明(ID)图像的信息合并成一个统一的数据结构。这种方法不仅能捕捉到单个ID的细微特征,还能整合多个不同ID的特征,创造出新的、个性化的图像。”这里就是说了一些额外的名词, 什么身份证明(ID) 之类的, 其实我理解就是提取脸部特征。

看看例子, 第一个图,就是目前的AI大神 LeCun的, 可以看到有类似于换头术, LeCun大神的化身在不同场景中。

而且LeCun也给这个项目点赞, 回应说是喜欢文艺复兴风格的。

下面是杨幂的, 这个没想到啊没想到, 杨幂的脸小, 产生的新图片更和谐一些。图三和图四。

这个项目的应用也很好玩, 我们经常在一些App 见到AI功能,说能绘制你年轻时候的照片,以及各个年龄段、老年的照片,这是AI 更改年龄或性别。其实使用这个PhotoMaker就可以做到了,就是使用这个PhotoMaker的模型后, 指定你的脸部图片, 再在提示词中加上不同的年龄段要求, 最后就产生一张或者多张图片就行了。

安装和使用Stable-Diffusion.cpp, 之前的文章也有介绍, 这里不再详细叙述了, 如果想运行但是缺少相关安装文件,私信我就好。

我在安卓手机上也尝试了一下, 命令如下:

这里用到了3个模型文件,第一个是SDXL 模型, 这个大家基本都有所了解吧, 这是Stable Diffusion的全能型大模型,号称对标Mid Journey, Stability AI 官方出品,需要注意的是,这里只能用SDXL模型,各种版本都可以。

另外需要一个vae, sdxl_vae.safetensors,简单理解VAE就是有两种功能,一是滤镜, 让图片得到滤镜的增强,第二是微调,可以对画面做小幅度调整。

另外一个参数是–stacked-id-embd-dir,指定的PhotoMaker 模型文件,从这里https://huggingface.co/bssrdf/PhotoMaker下载,注意只能使用safetensor 格式, 目前Stable-Diffusion.cpp 不支持bin格式。

input-id-images-dir 参数指定的是身份特征(ID)的图片, 目前要求这些图片大小一致。

这里指定的图片是黑寡妇形象,演员 斯嘉丽·约翰逊:

在提示词中, 目前的需要注意的是, 确保有一个类词(class word),后面跟着触发词“img”(目前是硬编码的)。类词(class word)可以是“man, woman, girl, boy”之一。如果输入的 ID 图像包含亚洲人脸,则在类词前添加“Asian”。

比如我们这里用到的提示词是“a girl img, retro futurism, retro game art style but extremely beautiful, intricate details, masterpiece, best quality, space-themed, cosmic, celestial, stars, galaxies, nebulas, planets, science fiction, highly detailed”, 可以看到第一个就是类词 + img, \” a girl img\”, 如果想用亚洲脸,就用 \” 1 Asian girl\”, 类推。

整体的提示词的意思是:“一个女孩 img,复古未来主义,复古游戏艺术风格,但极其美丽,细节复杂,杰作,最佳品质,太空主题,宇宙,天体,星星,星系,星云,行星,科幻小说,高度详细”

执行情况:

我在我的红米手机K70 Pro 上启动了上述命令, 没想到相当耗费时间,整整运行了7个小时还没结束:

具体执行效果,且等我的结果吧。

项目地址:https://github.com/TencentARC/PhotoMaker

模型下载地址:

https://huggingface.co/spaces/TencentARC/PhotoMakerhttps://huggingface.co/spaces/TencentARC/PhotoMaker-Style

Python 与 C 语言,谁是编程世界的王者?

在当今数字化的时代,编程已经成为一项至关重要的技能。而在众多编程语言中,Python 和 C 语言无疑是备受关注的两大热门。那么,对于初学者或者想要在编程领域深入发展的人来说,学习 Python 与 C 语言,到底哪个更好呢?

首先,让我们来聊聊 Python 。Python 以其简洁易懂的语法而闻名,就像是一把轻巧灵活的瑞士军刀。它拥有丰富的库和强大的功能,无论是进行数据分析、机器学习,还是构建网站、开发游戏,Python 都能轻松应对。据统计,在数据科学领域,超过 80%的专业人士都选择使用 Python 来处理和分析数据。比如说,在处理大规模数据集时,Python 的 Pandas 库可以让复杂的数据操作变得轻而易举。

C 语言则是编程世界的老牌劲旅,就像一位经验丰富的武林高手。它具有高效、底层控制能力强等特点。在系统编程、嵌入式开发等领域,C 语言一直占据着不可替代的地位。许多操作系统和底层驱动程序都是用 C 语言编写的。举个例子,手机的操作系统内核,很多就是基于 C 语言开发的。

从学习难度上来看,Python 相对来说更容易上手。对于没有编程基础的小白来说,Python 的简洁语法和丰富的学习资源,能让他们更快地感受到编程的乐趣和成就感。而 C 语言则需要对计算机底层原理有更深入的理解,学习曲线较为陡峭。

然而,这并不意味着 C 语言就应该被冷落。在追求高性能和对系统资源精确控制的场景下,C 语言的优势无可替代。

综上所述,Python 和 C 语言各有千秋。如果你对数据分析、人工智能等领域感兴趣,想要快速入门并在短时间内看到成果,那么 Python 可能是你的不二之选。但如果你立志于深入研究计算机系统、追求极致的性能优化,或者从事底层开发工作,C 语言将是你攀登技术高峰的有力工具。

其实,无论选择哪一种语言,关键在于你的兴趣和目标。只要持之以恒地学习和实践,都能在编程的世界里闯出一片属于自己的天地!

本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。