模型:
dg845/unidiffuser-diffusers
这个模型是UniDiffuser-v1( original code , original model )检查点的一个版本,与散射器兼容。这是原始UniDiffuser发布的两个模型之一,另一个是 UniDiffuser-v0 。根据原始模型卡:
UniDiffuser是一个统一的扩散框架,可以适应一组多模态数据相关的所有分布,而无需额外的开销。通过设置适当的时间步长,UniDiffuser能够执行图像、文本、文本到图像、图像到文本和图像-文本对生成。
具体而言,UniDiffuser采用了变压器的变体,称为 U-ViT ,该变压器参数化了联合噪声预测网络。其他组件作为不同模态的编码器和解码器,包括来自 Stable Diffusion 的预训练图像自编码器,来自 image ViT-B/32 CLIP encoder 的预训练 text ViT-L CLIP encoder 以及我们自己微调的文本解码器 GPT-2 。
我们提供两个版本的UniDiffuser:
import requests import torch from PIL import Image from io import BytesIO from diffusers import UniDiffuserPipeline device = "cuda" model_id_or_path = "dg845/unidiffuser-diffusers" pipe = UniDiffuserPipeline.from_pretrained(model_id_or_path) pipe.to(device) # Joint image-text generation. The generation task is automatically inferred. sample = pipe(num_inference_steps=20, guidance_scale=8.0) image = sample.images[0] text = sample.text[0] image.save("unidiffuser_sample_joint_image.png") print(text) # The mode can be set manually. The following is equivalent to the above: pipe.set_joint_mode() sample2 = pipe(num_inference_steps=20, guidance_scale=8.0) # Note that if you set the mode manually the pipeline will no longer attempt # to automatically infer the mode. You can re-enable this with reset_mode(). pipe.reset_mode() # Text-to-image generation. prompt = "an elephant under the sea" sample = pipe(prompt=prompt, num_inference_steps=20, guidance_scale=8.0) t2i_image = sample.images[0] t2i_image.save("unidiffuser_sample_text2img_image.png") # Image-to-text generation. image_url = "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/unidiffuser/unidiffuser_example_image.jpg" response = requests.get(image_url) init_image = Image.open(BytesIO(response.content)).convert("RGB") init_image = init_image.resize((512, 512)) sample = pipe(image=init_image, num_inference_steps=20, guidance_scale=8.0) i2t_text = sample.text[0] print(text) # Image variation can be performed with a image-to-text generation followed by a text-to-image generation: sample = pipe(prompt=i2t_text, num_inference_steps=20, guidance_scale=8.0) final_image = sample.images[0] final_image.save("unidiffuser_image_variation_sample.png") # Text variation can be performed with a text-to-image generation followed by a image-to-text generation: sample = pipe(image=t2i_image, num_inference_steps=20, guidance_scale=8.0) final_prompt = sample.text[0] print(final_prompt)
注意:本节的大部分内容都来自 Stable Diffusion model card ,但对UniDiffuser适用相同方式。
应根据agpl-3.0许可使用该模型。可能的用途包括:
下面描述了不包括在内的用途。
不应使用该模型故意创建或传播可能为人们带来敌意或疏远环境的图像。这包括生成人们可以预见会引起不安、苦恼或冒犯的图像;或传播历史或当前的刻板印象的内容。
超出范围的使用
该模型训练的目的不是提供人们或事件的真实或准确的表示,因此使用该模型生成此类内容超出了其能力的范围。
误用和恶意使用
使用该模型生成对个人残酷的内容是对该模型的误用。这包括但不限于: