hi,各位大佬,今天尝试下diffusion大模型,也是CV领域的GPT,但需要prompt,我给了prompt结果并不咋滴,如下示例,并附代码及参考link
1、img2img
代码实现:
import torch
from PIL import Image
from diffusers import StableDiffusionImg2ImgPipeline
device = "cuda"
model_id_or_path = "runwayml/stable-diffusion-v1-5"
pipe = StableDiffusionImg2ImgPipeline.from_pretrained(model_id_or_path, torch_dtype=torch.float16)
pipe = pipe.to(device)
img_path="girl.jpeg"
init_image = Image.open(img_path).convert("RGB")
init_image = init_image.resize(( 512,768))
#init_image.resize((int(init_image.size[0]*0.6),int(init_image.size[1]*0.6) ))
prompt = "A beautiful hair "
images = pipe(prompt=prompt, image=init_image, strength=0.75, guidance_scale=7.5).images
images[0].save("beauty.png")
原图及生成的新图对比如下:侵删


woc 网上搜的图,结果搞成这样子,也是服气了。
2、text2img
代码如下:
import torch
from diffusers import StableDiffusionPipeline
pipe = StableDiffusionPipeline.from_pretrained("runwayml/stable-diffusion-v1-5", torch_dtype=torch.float16)
pipe = pipe.to("cuda")
prompt = "a beautiful girl with blue eyes and long legs and little dress"
#"three girl,chesty"
image = pipe(prompt).images[0]
image.save("generator.png")
眼睛都有问题啊,这生成魔鬼可以,生成正常人有点难。
据说哈,提示词越多越好,画得就越好,不然它就比较“自我”,比较随意画了。
import torch
import requests
from PIL import Image
from diffusers import StableDiffusionDepth2ImgPipeline
pipe = StableDiffusionDepth2ImgPipeline.from_pretrained(
"stabilityai/stable-diffusion-2-depth",
torch_dtype=torch.float16,
)
pipe.to("cuda")
img_path="seg1.jpeg"#仍旧是第一个网图
init_image = Image.open(img_path)
prompt = "handsome, beautiful, long hair, big eyes, white face"
n_propmt = "bad, deformed, ugly, bad anotomy"
image = pipe(prompt=prompt, image=init_image, negative_prompt=n_propmt, strength=0.7).images[0]
效果不错,除了手指有问题,这个需要加入负向提示词。


负向改为如下,生成上面右图,勉强吧,虽说不上好看,但也没畸形吧。
n_propmt="lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry,bad, cartoon, ugly, deformed"
>>> init_image = Image.open(img_path)
>>> init_image=init_image.resize((int(init_image.size[0]*0.6),int(init_image.size[1]*0.6) ))
>>> image = pipe(prompt=prompt, image=init_image, negative_prompt=n_propmt, strength=0.7).images[0]
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 35/35 [00:39<00:00, 1.14s/it]
>>> image.save("seg1_d.png")
因此,对上面的text2img及img2img进行增加上述负向词再次试验,如下:正向词不变

text2img(上面右图),必须指明五官方面的词,不能有任何畸形,包括脚,腿,不然太吓人了。
负向提示词改为如下:头都没有了。。。
n_propmt="lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry,bad, cartoon, ugly, deformed,bad face,bad fingers,bad leg,bad shoes, bad feet, bad arm"


上边右图相对正常了,但牙齿不太好,负向词增加“bad teeth”再次尝试,下面的图截断了。

这也太差劲了吧👎,我勒个去。这要是给客户看到立马滚蛋了。
import requests
from PIL import Image
from io import BytesIO
from diffusers import StableDiffusionUpscalePipeline
import torch
# load model and scheduler
model_id = "stabilityai/stable-diffusion-x4-upscaler"
pipeline = StableDiffusionUpscalePipeline.from_pretrained(
model_id, revision="fp16", torch_dtype=torch.float16
)
pipeline = pipeline.to("cuda")
# let's download an image
url = "https://huggingface.co/datasets/hf-internal-testing/diffusers-
init_image = Image.open("seg1.jpeg")
init_image=init_image.resize((int(init_image.size[0]*0.1),int(init_image.size[1]*0.1) ))
prompt = "a white cat"
upscaled_image = pipeline(prompt="a beautiful Chinese girl", image=init_image).images[0]
upscaled_image.save("upsampled_cat.png")
压缩后再高分辨率的,为啥到我这里都是翻车呢?
我的问题很简单:我是否必须在使用RubyonRails的类上require'csv'?如果我打开一个railsconsole并尝试使用CSVgem它可以工作,但我必须在文件中这样做吗? 最佳答案 CSVlibrary是ruby标准库的一部分;它不是gem(即第三方库)。与所有标准库(与核心库不同)一样,csv不会由ruby解释器自动加载。所以是的,在您的应用程序中某处您确实需要要求它:irb(main):001:0>CSVNameError:uninitializedconstantCSVfrom(irb):1from/Us
Ruby是完全面向对象的语言。在ruby中,一切都是对象,因此属于某个类。例如5属于Objectclass1.9.3p194:001>5.class=>Fixnum1.9.3p194:002>5.class.superclass=>Integer1.9.3p194:003>5.class.superclass.superclass=>Numeric1.9.3p194:005>5.class.superclass.superclass.superclass=>Object1.9.3p194:006>5.class.superclass.superclass.superclass.su
IntrductionLibwebsocketsisasimple-to-use,MIT-license,pureClibraryprovidingclientandserverforhttp/1,http/2,websockets,MQTTandotherprotocolsinasecurity-minded,lightweight,configurable,scalableandflexibleway.It’seasytobuildandcross-buildviacmakeandissuitablefortasksfromembeddedRTOSthroughmasscloudservi
序言AI绘图已经火了有一段时间了,国外各种AI绘图,AI视频剪辑等已经被玩坏了。StableDiffusionInfinity免费开源的StableDiffusion已经能扩画了,StableDiffusionInfinity是其子功能,下面可以来看看这个开源项目。github克隆项目(使用镜像)如果有vpn的或者能上谷歌的同学直接上github上搜索该项目,如果没有的话,找到github镜像。镜像链接:gitclone.comvsCode打开项目该项目是python写的,可以使用vscode打开查看,vscode安装参考:RunningVisualStudioCodeonmacOS项目基本信
有人知道为什么我的rails3.0.7cli这么慢吗?当我运行railss或railsg时,他大约需要5秒才能真正执行命令...有什么建议吗?谢谢 最佳答案 更新:我正在将我的建议从rrails切换到rails-sh,因为前者支持REPL,而rrails不是用例。此外,当与ruby环境结合使用时,修补似乎确实可以提高性能变量,现在反射(reflect)在答案中。一个可能的原因可能是这个performancebuginruby每当在ruby代码中使用“require”时,它就会调用一些代码(更多详细信息here)。在使用Rai
最近火热的“数字藏品”,你真正了解吗?其实有很多人会把数字藏品跟NFT混为一谈,但其实这两者还是有差别的。数字藏品并不等同于NFT数字藏品是什么?直观来看,它可能就是一张数字化照片或视频,甚至就只是一串数字。但它却是一件对应特定作品、艺术品生成的包含着大量数字信息且拥有唯一加密信息的可以买卖交易的收藏品。NFT则是指一种基于以太坊区块链的“非同质化代币”。它在百度百科里的释义是“用于表示数字资产(包括jpg和视频剪辑形式)的唯一加密货币令牌,可以买卖”。比如已被很多人认识的比特币就是NFT的一种。NFT在元宇宙中发挥的作用是巨大的,目前正是它在支撑着元宇宙中的经济体系。数字藏品其实也是NFT的
我正在开发Rails5应用程序并使用Assets管道。它在开发模式下运行良好,但如果我尝试在生产模式下运行它,它无法正确加载图像和样式。我查了一下,发现是因为config.assets.compile=false在config/environments/production.rb中除非我将其设置为真,否则它根本不起作用。我知道实时编译不适合生产,有什么解决方案? 最佳答案 有两个与在Rails服务器中提供Assets相关的选项:Assets编译config.assets.compile=true指Assets编译。也就是说,当Rai
我已经在Ubuntu服务器上安装了Ruby1.9.1(p234)。我正在尝试在Apache2.2/Passenger2.2.5上部署一个供应商Rails2.3-stable的Rails应用程序。GET请求工作正常,POST请求立即中断并显示以下日志条目:ProcessingUsersController#new(for80.203.77.44at2009-10-2420:54:55)[GET]Parameters:{"controller"=>"users","action"=>"new"}Renderingtemplatewithinlayouts/applicationRender
编辑:[已修复]问题是我已经安装了它,但不知道,并尝试从源代码安装。这创建了两个版本,gem不知道使用哪个。我通过转到下载的源并运行来修复它sudomakeuninstall然后我再次运行geminstallrmagick并且成功了![原始问题]我正在尝试像thisrailscast中那样安装rmagickgem.这是我放入gemfile的片段:gem'rmagick'gem'carrierwave'当我运行bundleinstall时,我得到以下输出:Installingrmagick(2.13.1)withnativeextensionsGem::Installer::Extens
我从Rails收到了很多回击,因为我将User子类化为许多不同的子类。在我的应用程序中,并非所有用户都是平等的。实际上有很多模型对象,并不是每个用户类型都可以访问它们。我还需要一种方法来执行多态行为。例如,许多方法的行为会因类型而异。多态性不就是为了这个吗?但问题是,我总是被Rails拒之门外。默认值——尤其是表单提交到参数哈希的方式——似乎像非子类模型一样工作。链接和参数哈希值只是默认值真正让您厌烦的两种方式。在Rails中处理不同类型用户的复杂逻辑的“正确”方法是什么?在Java中,子类化模型是有效的——您不必为了让它按照您想要的方式工作而费尽心思。但是在Rails中,很难让子类与