visual_anagrams

visual_anagrams

扩散模型生成多视角光学幻象图像

Visual Anagrams是一个开源项目,使用扩散模型生成多视角光学幻象图像。这些图像在旋转、颜色反转或拼图重排等变换下会改变外观或身份。项目提供代码生成多种类型的幻象,如90度旋转、翻转、拼图、内圆和颜色反转等。通过选择提示词和视图类型,可以创建独特的幻象效果。项目还提供Colab演示,方便用户尝试和体验。

Visual Anagrams多视角光学幻象DeepFloyddiffusion模型CVPR 2024Github开源项目

视觉变位词 | 因子化扩散

注意: 此仓库包含 视觉变位词因子化扩散 两个项目的代码。

有关因子化扩散的信息,请参阅此自述文件

视觉变位词:用扩散模型生成多视角光学幻觉

CVPR 2024 (口头报告)

Daniel GengAaron ParkAndrew Owens

[Arxiv] [网站] [Colab (免费版)] [Colab (专业版)]

在Colab中打开 (免费版) <sub>(免费版)</sub>

在Colab中打开 (专业版) <sub>(Colab专业版)</sub>

预览

此仓库包含生成视觉变位词和其他多视角光学幻觉的代码。这些图像在经过变换(如旋转、颜色反转或拼图重排)后会改变外观或身份。详情请阅读我们的论文或访问我们的网站。

Colab演示

我们提供两个Colab演示。一个由Tamizh N精心编写,内存效率高,可以在Colab免费版资源上运行(代价是稍微不太方便):

在Colab中打开 (免费版) <sub>(免费版)</sub>

对于拥有或愿意订阅Colab专业版的用户,我们还提供以下笔记本,它需要高内存和V100运行环境,但使用起来稍微更方便:

在Colab中打开 (专业版) <sub>(Colab专业版)</sub>

安装

Conda环境

通过运行以下命令创建conda环境(仅适用于Linux):

conda env create -f environment.yml

然后通过运行以下命令激活环境:

conda activate visual_anagrams

DeepFloyd

我们的方法使用DeepFloyd IF,这是一个基于像素的扩散模型。我们不使用Stable Diffusion,因为潜在扩散模型会在幻觉中造成伪影(详见我们的论文)。

在使用DeepFloyd IF之前,您必须接受其使用条件。操作如下:

  1. 确保拥有一个Hugging Face账户并已登录。
  2. DeepFloyd/IF-I-XL-v1.0模型卡片上接受许可。接受第一阶段模型卡片的许可将自动接受其他IF模型的许可。
  3. 通过运行以下命令在本地登录:
python huggingface_login.py

并在提示时输入您的Hugging Face Hub访问令牌。对于"Add token as git credential? (Y/n)"问题,回答方式不重要。

使用方法

要生成90度旋转幻觉,我们可以使用以下命令。这将创建10个样本,分别在3种不同的尺寸:64×64、256×256和1024×1024。有关生成更多类型多视角幻觉的命令,请参见下文。

python generate.py --name rotate_cw.village.horse --prompts "a snowy mountain village" "a horse" --style "an oil painting of" --views identity rotate_cw --num_samples 10 --num_inference_steps 30 --guidance_scale 10.0 --generate_1024

以下是有用参数的说明:

  • --name:幻觉的名称。将样本保存到./results/{name}
  • --prompts:幻觉提示词列表。
  • --style:可选的样式提示,预置于每个提示词之前。例如,可以是"an oil painting of"。可以节省一些书写。
  • --views:要使用的视图列表。必须与提示词数量匹配。有关视图列表,请参见visual_anagrams/views/__init__.py中的get_views函数。
  • --num_samples:要采样的幻觉数量。
  • --num_inference_steps:要执行的扩散去噪步骤数。
  • --guidance_scale:无分类器引导的引导比例。
  • --generate_1024:使用DeepFloyd第三阶段(实际上就是Stable Diffusion 4x Upscaler)上采样至1024x1024图像。

上采样

我们使用DeepFloyd IF的前两个阶段生成64×64和256×256的多视角幻觉。DeepFloyd进一步使用Stable Diffusion x4 Upscaler从256×256上采样到1024×1024。然而,该模型使用潜在变量,因此我们没有或无法为这个阶段实现多视角去噪。所以我们只能进行简单的上采样,仅使用第一个提示词。需要注意的是,这可能会影响变换后图像的质量,但实践中我们发现效果相当不错。

动画制作

要为上述两视图幻觉制作动画,我们可以运行以下命令。此命令应适用于我们采样的所有三种尺寸(64×64、256×256和1024×1024),尽管说实话64×64非常小,看起来效果很差。

python animate.py --im_path results/rotate_cw.village.horse/0000/sample_1024.png --metadata_path results/rotate_cw.village.horse/metadata.pkl

以下是有用参数的说明:

  • im_path:您的幻觉图像的路径。这适用于三种图像尺寸(64、256或1024)中的任何一种。
  • metadata_path:关于用于生成幻觉的视图和提示的元数据路径,由generate.py保存。覆盖以下选项。
  • view:视图的名称。有关视图列表,请参见visual_anagrams/views/__init__.py中的get_views函数。
  • prompt_1:原始图像的提示。您可以在此处添加\n字符来换行。
  • prompt_2:与prompt_1相同,但用于变换后的图像。

选择提示的艺术

为幻觉选择提示可能相当棘手且不直观。以下是一些建议:

  • 直觉和推理的作用往往比您预期的要小。您认为会效果很好的提示经常表现不佳,反之亦然。因此,探索是关键。
  • 像"一张...的照片"这样的风格往往更难,因为现实主义的约束相当困难(但这并不意味着它们不能奏效!)。
  • 相反,像"一幅...的油画"这样的风格似乎表现更好,因为在如何描绘和解释上有更多自由。
  • 同样,允许高度灵活描绘的主题往往是不错的选择。例如,像"室内植物"或"葡萄酒和奶酪"或"厨房"这样的提示。
  • 但要注意主题仍然容易辨认。当幻觉能立即被理解时,效果会好得多。
  • 面孔经常成为很好的"隐藏"主题。这可能是因为人类视觉系统特别擅长识别面孔。例如,"一个老人"或"玛丽莲·梦露"往往是很好的主题。
  • 也许有点显而易见,但3视图和4视图的幻觉要难得多。

更多示例

翻转幻觉:

python generate.py --name flip.campfire.man --prompts "一幅篝火旁的人们的油画" "一幅老人的油画" --views identity flip --num_samples 10 --num_inference_steps 30 --guidance_scale 10.0 --generate_1024

拼图幻觉:

python generate.py --name jigsaw.houseplants.marilyn --prompts "室内植物" "玛丽莲·梦露" --style "一幅...的油画" --views identity jigsaw --num_samples 10 --num_inference_steps 30 --guidance_scale 10.0 --generate_1024

内圆幻觉:

python generate.py --name inner.einstein.marilyn --prompts "阿尔伯特·爱因斯坦" "玛丽莲·梦露" --style "一幅...的油画" --views identity inner_circle --num_samples 10 --num_inference_steps 30 --guidance_scale 10.0 --generate_1024

颜色反转幻觉:

python generate.py --name negate.landscape.houseplants --prompts "一片风景" "室内植物" --style "一幅...的石版画" --views identity negate --num_samples 10 --num_inference_steps 30 --guidance_scale 10.0 --generate_1024

图块置换幻觉:

python generate.py --name patch.lemur.kangaroo --prompts "一只狐猴" "一只袋鼠" --style "一幅...的铅笔素描" --views identity patch_permute --num_samples 10 --num_inference_steps 30 --guidance_scale 10.0 --generate_1024

像素置换幻觉:

python generate.py --name pixel.duck.rabbit --prompts "一只鸭子" "一只兔子" --style "一幅...的马赛克" --views identity pixel_permute --num_samples 10 --num_inference_steps 30 --guidance_scale 10.0 --generate_1024

倾斜幻觉:

python generate.py --name skew.tudor.skull --prompts "一幅都铎时期的肖像" "一个头骨" --style "一幅...的油画" --views identity skew --num_samples 10 --num_inference_steps 30 --guidance_scale 10.0 --generate_1024

三视图幻觉:

python generate.py --name threeview.waterfall.teddy.rabbit --prompts "一个瀑布" "一只泰迪熊" "一只兔子" --style "一幅...的油画" --views identity rotate_cw rotate_ccw --num_samples 10 --num_inference_steps 30 --guidance_scale 10.0 --generate_1024

"方形铰链"幻觉:

python generate.py --name hinge.duck.rabbit --prompts "一只鸭子" "一只兔子" --style "一幅...的水彩画" --views identity square_hinge --num_samples 10 --num_inference_steps 30 --guidance_scale 10.0 --generate_1024

失败视图

我们还实现了在论文中讨论的失败视图。这些包括:

  • InnerCircleViewFailure:使用双线性或最近邻插值的内圆旋转。
  • BlurViewFailure:模糊处理,试图制作混合图像。
  • WhiteBalanceViewFailure:非常简单的白平衡,试图重现"裙子"幻觉。

以上所有视图都失败了,因为它们改变了高斯噪声的统计特性。详情请参见论文。

自定义视图

视图派生自基类BaseView。如果您想编写自己的视图,可以在views.py中看到许多这些转换的示例。

此外,如果您的视图可以实现为像素的置换,您可能只需要将置换数组保存到磁盘,并将其传递给PermuteView类。有关示例,请参见permutations/make_inner_rotation_perm.pyviews.py中的get_view()

编辑推荐精选

Keevx

Keevx

AI数字人视频创作平台

Keevx 一款开箱即用的AI数字人视频创作平台,广泛适用于电商广告、企业培训与社媒宣传,让全球企业与个人创作者无需拍摄剪辑,就能快速生成多语言、高质量的专业视频。

即梦AI

即梦AI

一站式AI创作平台

提供 AI 驱动的图片、视频生成及数字人等功能,助力创意创作

扣子-AI办公

扣子-AI办公

AI办公助手,复杂任务高效处理

AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!

TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
蛙蛙写作

蛙蛙写作

AI小说写作助手,一站式润色、改写、扩写

蛙蛙写作—国内先进的AI写作平台,涵盖小说、学术、社交媒体等多场景。提供续写、改写、润色等功能,助力创作者高效优化写作流程。界面简洁,功能全面,适合各类写作者提升内容品质和工作效率。

AI辅助写作AI工具蛙蛙写作AI写作工具学术助手办公助手营销助手AI助手
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

热门AI助手AI对话AI工具聊天机器人
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

下拉加载更多