# SkyPaint-AI-Diffusion **Repository Path**: wei__hui/SkyPaint-AI-Diffusion ## Basic Information - **Project Name**: SkyPaint-AI-Diffusion - **Description**: 基于Stable Diffusion优化的AI绘画模型。支持输入中英文文本,可生成多种现代艺术风格的高质量图像。| An optimized text-to-image model based on Stable Diffusion. Both Chinese and English text inputs are available to generate images. The model can generate high-quality images in several modern art styles. - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-03-04 - **Last Updated**: 2024-05-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SkyPaint-Chinese-EN-v-1.0 #### [English Document](https://github.com/SkyWorkAIGC/SkyPaint-AI-Diffusion/blob/main/README.md) #### Hugging Face 模型主页:[链接](https://huggingface.co/SkyWork/SkyPaint) #### SkyPaint是由奇点智源开发的中英双语文本生成图像的项目,目前还在持续更新优化中。 #### 使用我们的模型,输入若干中文或英文的文本,便可让机器像人类画家一样,画出富有现代艺术风格的作品。下面是一些示例: # 效果展示 ### 中文 机械狗  城堡 大海 夕阳 宫崎骏动画  花落知多少  半鸡半人,强壮  鸡你太美  # 体验试用 请访问[天工巧绘SkyPaint](https://sky-paint.singularity-ai.com/index.html#/)  你也可以微信扫描二维码,在小程序上体验:  # 模型优势 SkyPaint文本生成图片模型主要由两大部分组成,即提示词文本编码器模型和扩散模型两大部分。因此我们的优化也分为两步: 首先,基于[OpenAI-CLIP](https://github.com/openai/CLIP)优化了提示词文本编码器模型使得SkyPaint具有中英文识别能力, 然后,优化了扩散模型,使得SkyPaint具有现代艺术能力可以产生高质量图片。 # 模型功能 * 支持汉语和英文以及中英文混合提示词输入 * 支持生成现代艺术风格的高质量图片 * 支持stable_diffusion_1.x官方模型及相关微调模型的英文提示词 * 保留stable_diffusion提示词的使用习惯和方法 # 测试用例 模型下载地址 [SkyPaint-v1.0](https://sai-hk.oss-cn-hongkong.aliyuncs.com/zb/skypaint-v-1.0.zip?OSSAccessKeyId=LTAI5tHuxqp63n5qw5eeB6Ji&Expires=1673528832&Signature=4PTeknRoXuHWmeQHXqgu8kB0q%2Bw%3D) ```py from diffusers import StableDiffusionPipeline device = 'cuda' pipe = StableDiffusionPipeline.from_pretrained("path_to_our_model").to(device) prompts = [ '机械狗', '城堡 大海 夕阳 宫崎骏动画', '花落知多少', '鸡你太美', ] for prompt in prompts: prompt = 'sai-v1 art, ' + prompt image = pipe(prompt).images[0] image.save("%s.jpg" % prompt) ``` ———————————————————————————————————————————————— # SkyCLIP模型简介 SkyCLIP是我们采用一种高效的训练中英双语CLIP模型的方法得到的CLIP模型,该方法仅需要使用文本数据即可实现对[OpenAI-CLIP](https://github.com/openai/CLIP)模型的高效蒸馏,大幅降低了数据门槛,同时训练所需算力要求相较于原始CLIP模型减少90%以上,方便开源社区可以进行复现/微调。该方法仅改变了OpenAI-CLIP的文本编码器,可搭配使用OpenAI-CLIP的图像编码器实现图文检索功能。 ### SkyCLIP训练数据来源 * 中英文机器翻译任务平行语料 * 联合国中英文平行语料 * [LAION](https://laion.ai/)中英文语料(部分) * [Wukong](https://wukong-dataset.github.io/wukong-dataset/index.html)中文语料(部分) * [AI-Challenger](https://github.com/AIChallenger)翻译任务中英文语料 * 古诗词中英文语料 * 提示词手册/魔法书中常见词组合而成的中英文语料 ### SkyCLIP训练方法 将OpenAI-CLIP的text_encoder作为教师模型并且冻结参数,学生模型采用和教师模型同样大小的多语言BERT模型,训练时英文输入通过教师模型获取相应的t_en_hiddent_state,英文和中文分别通过学生模型获取相应s_en_hiddent_state,s_zh_hidden_state,采用l1、l2、cos距离等构造损失函数使得学生模型的中英文hiddent_state逐渐靠近教师模型的hiddent_state。由于平行语料的中文和英文存在天然的不等长性质,为了使得平行的中文和英文尽量接近,训练过程中我们还添加了中文解码器,使用学生模型的中英文hiddent_state作为解码器的hidden_state输入,通过翻译任务来辅助实现中文和英文的对齐目的。 ### SkyCLIP模型评估 目前我们主要评估了SkyCLIP在[Flickr30K-CN](https://github.com/li-xirong/cross-lingual-cap)的zero-shot表现,主要对比了若干具备中文能力的相关开源模型,为确保对比的公平性,具有多个模型尺寸的我们均选取基于OpenAI-CLIP ViT-L/14尺寸的模型,我们评估的流程参考了[Chinese-CLIP](https://github.com/OFA-Sys/Chinese-CLIP)所提供的评估脚本。 **Flickr30K-CN Retrieval**:
| Task | Text-to-Image | Image-to-Text | MR | ||||
|---|---|---|---|---|---|---|---|
| Setup | Zero-shot | Zero-shot | |||||
| Metric | R@1 | R@5 | R@10 | R@1 | R@5 | R@10 | |
| Taiyi-326M | 53.8 | 79.9 | 86.6 | 64.0 | 90.4 | 96.1 | 78.47 |
| AltCLIP | 50.7 | 75.4 | 83.1 | 73.4 | 92.8 | 96.9 | 78.72 |
| Wukong | 51.9 | 78.6 | 85.9 | 75 | 94.4 | 97.7 | 80.57 |
| R2D2 | 42.6 | 69.5 | 78.6 | 63.0 | 90.1 | 96.4 | 73.37 |
| CN-CLIP | 68.1 | 89.7 | 94.5 | 80.2 | 96.6 | 98.2 | 87.87 |
| SkyCLIP | 58.8 | 82.6 | 89.6 | 78.8 | 96.1 | 98.3 | 84.04 |