午夜激情电影在线播放_色佬视频在线观看_国产va免费精品高清在线观看_美女视频一区二区三区在线_91免费高清视频_91成人看片_国产18精品乱码免费看_成人av色在线观看_女生裸体视频一区二区三区_国产在线视频你懂的

阿里云EasyNLP中文文圖生成模型帶你秒變藝術家

作者:汪誠愚、劉婷婷

導讀

宣物莫大于言,存形莫善于畫。

–【晉】陸機

多模態數據(文本、圖像、聲音)是人類認識、理解和表達世間萬物的重要載體。近年來,多模態數據的爆炸性增長促進了內容互聯網的繁榮,也帶來了大量多模態內容理解和生成的需求。與常見的跨模態理解任務不同,文到圖的生成任務是流行的跨模態生成任務,旨在生成與給定文本對應的圖像。這一文圖生成的任務,極大地釋放了AI的想象力,也激發了人類的創意。典型的模型例如OpenAI開發的DALL-E和DALL-E2。近期,業界也訓練出了更大、更新的文圖生成模型,例如Google提出的Parti和Imagen。

然而,上述模型一般不能用于處理中文的需求,而且上述模型的參數量龐大,很難被開源社區的廣大用戶直接用來Fine-tune和推理。本次,EasyNLP開源框架再次迎來大升級,集成了先進的文圖生成架構Transformer+VQGAN,同時,向開源社區免費開放不同參數量的中文文圖生成模型的Checkpoint,以及相應Fine-tune和推理接口。用戶可以在我們開放的Checkpoint基礎上進行少量領域相關的微調,在不消耗大量計算資源的情況下,就能一鍵進行各種藝術創作。

EasyNLP是阿里云機器學習PAI 團隊基于 PyTorch 開發的易用且豐富的中文NLP算法框架,并且提供了從訓練到部署的一站式 NLP 開發體驗。EasyNLP 提供了簡潔的接口供用戶開發 NLP 模型,包括NLP應用 AppZoo 、預訓練模型 ModelZoo、數據倉庫DataHub等特性。由于跨模態理解和生成需求的不斷增加,EasyNLP也支持各種跨模態模型,特別是中文領域的跨模態模型,推向開源社區。例如,在先前的工作中,EasyNLP已經對中文圖文檢索CLIP模型進行了支持(看這里)。我們希望能夠服務更多的 NLP 和多模態算法開發者和研究者,也希望和社區一起推動 NLP /多模態技術的發展和模型落地。本文簡要介紹文圖生成的技術,以及如何在EasyNLP框架中如何輕松實現文圖生成,帶你秒變藝術家。本文開頭的展示圖片即為我們模型創作的作品。

文圖生成模型簡述

下面以幾個經典的基于Transformer的工作為例,簡單介紹文圖生成模型的技術。DALL-E由OpenAI提出,采取兩階段的方法生成圖像。在第一階段,訓練一個dVAE(discrete variational autoencoder)的模型將256×256的RGB圖片轉化為32×32的image token,這一步驟將圖片進行信息壓縮和離散化,方便進行文本到圖像的生成。第二階段,DALL-E訓練一個自回歸的Transformer模型,將文本輸入轉化為上述1024個image token。

由清華大學等單位提出的CogView模型對上述兩階段文圖生成的過程進行了進一步的優化。在下圖中,CogView采用了sentence piece作為text tokenizer使得輸入文本的空間表達更加豐富,并且在模型的Fine-tune過程中采用了多種技術,例如圖像的超分、風格遷移等。

ERNIE-ViLG模型考慮進一步考慮了Transformer模型學習知識的可遷移性,同時學習了從文本生成圖像和從圖像生成文本這兩種任務。其架構圖如下所示:

隨著文圖生成技術的不斷發展,新的模型和技術不斷涌現。舉例來說,OFA將多種跨模態的生成任務統一在同一個模型架構中。DALL-E 2同樣由OpenAI提出,是DALL-E模型的升級版,考慮了層次化的圖像生成技術,模型利用CLIP encoder作為編碼器,更好地融入了CLIP預訓練的跨模態表征。Google進一步提出了Diffusion Model的架構,能有效生成高清大圖,如下所示:

在本文中,我們不再對這些細節進行贅述。感興趣的讀者可以進一步查閱參考文獻。

EasyNLP文圖生成模型

由于前述模型的規模往往在數十億、百億參數級別,龐大的模型雖然能生成質量較大的圖片,然后對計算資源和預訓練數據的要求使得這些模型很難在開源社區廣泛應用,尤其在需要面向垂直領域的情況下。在本節中,我們詳細介紹EasyNLP提供的中文文圖生成模型,它在較小參數量的情況下,依然具有良好的文圖生成效果。

模型架構

模型框架圖如下圖所示:

考慮到Transformer模型復雜度隨序列長度呈二次方增長,文圖生成模型的訓練一般以圖像矢量量化和自回歸訓練兩階段結合的方式進行。

圖像矢量量化是指將圖像進行離散化編碼,如將256×256的RGB圖像進行16倍降采樣,得到16×16的離散化序列,序列中的每個image token對應于codebook中的表示。常見的圖像矢量量化方法包括:VQVAE、VQVAE-2和VQGAN等。我們采用VQGAN在ImageNet上訓練的f16_16384(16倍降采樣,詞表大小為16384)的模型權重來生成圖像的離散化序列。

自回歸訓練是指將文本序列和圖像序列作為輸入,在圖像部分,每個image token僅與文本序列的tokens和其之前的image tokens進行attention計算。我們采用GPT作為backbone,能夠適應不同模型規模的生成任務。在模型預測階段,輸入文本序列,模型以自回歸的方式逐步生成定長的圖像序列,再通過VQGAN decoder重構為圖像。

開源模型參數設置

在EasyNLP中,我們提供兩個版本的中文文圖生成模型,模型參數配置如下表:

模型實現

在EasyNLP框架中,我們在模型層構建基于minGPT的backbone構建模型,核心部分如下所示:

self.first_stage_model = VQModel(ckpt_path=vqgan_ckpt_path).eval()
self.transformer = GPT(self.config)

VQModel的Encoding階段過程為:

# in easynlp/appzoo/text2image_generation/model.py

@torch.no_grad()
def encode_to_z(self, x):
quant_z, _, info = self.first_stage_model.encode(x)
indices = info[2].view(quant_z.shape[0], -1)
return quant_z, indices

x = inputs[‘image’]
x = x.permute(0, 3, 1, 2).to(memory_format=torch.contiguous_format)
# one step to produce the logits
_, z_indices = self.encode_to_z(x) # z_indice: torch.Size([batch_size, 256])

VQModel的Decoding階段過程為:

# in easynlp/appzoo/text2image_generation/model.py

@torch.no_grad()
def decode_to_img(self, index, zshape):
bhwc = (zshape[0],zshape[2],zshape[3],zshape[1])
quant_z = self.first_stage_model.quantize.get_codebook_entry(
index.reshape(-1), shape=bhwc)
x = self.first_stage_model.decode(quant_z)
return x

# sample為訓練階段的結果生成,與預測階段的generate類似,詳解見下文generate
index_sample = self.sample(z_start_indices, c_indices,
steps=z_indices.shape[1],
…)
x_sample = self.decode_to_img(index_sample, quant_z.shape)

Transformer采用minGPT進行構建,輸入圖像的離散編碼,輸出文本token。前向傳播過程為:

# in easynlp/appzoo/text2image_generation/model.py

def forward(self, inputs):
x = inputs[‘image’]
c = inputs[‘text’]
x = x.permute(0, 3, 1, 2).to(memory_format=torch.contiguous_format)
# one step to produce the logits
_, z_indices = self.encode_to_z(x) # z_indice: torch.Size([batch_size, 256])
c_indices = c

if self.training and self.pkeep < 1.0:
mask = torch.bernoulli(self.pkeep*torch.ones(z_indices.shape,
device=z_indices.device))
mask = mask.round().to(dtype=torch.int64)
r_indices = torch.randint_like(z_indices, self.transformer.config.vocab_size)
a_indices = mask*z_indices+(1-mask)*r_indices

else:
a_indices = z_indices
cz_indices = torch.cat((c_indices, a_indices), dim=1)
# target includes all sequence elements (no need to handle first one
# differently because we are conditioning)
target = z_indices
# make the prediction
logits, _ = self.transformer(cz_indices[:, :-1])
# cut off conditioning outputs – output i corresponds to p(z_i | z_{<i}, c)
logits = logits[:, c_indices.shape[1]-1:]
return logits, target

在預測階段,輸入為文本token, 輸出為256*256的圖像。首先,將輸入文本預處理為token序列:

# in easynlp/appzoo/text2image_generation/predictor.py

def preprocess(self, in_data):
if not in_data:
raise RuntimeError(“Input data should not be None.”)

if not isinstance(in_data, list):
in_data = [in_data]
rst = {“idx”: [], “input_ids”: []}
max_seq_length = -1
for record in in_data:
if “sequence_length” not in record:
break
max_seq_length = max(max_seq_length, record[“sequence_length”])
max_seq_length = self.sequence_length if (max_seq_length == -1) else max_seq_length

for record in in_data:
text= record[self.first_sequence]
try:
self.MUTEX.acquire()
text_ids = self.tokenizer.convert_tokens_to_ids(self.tokenizer.tokenize(text))
text_ids = text_ids[: self.text_len]
n_pad = self.text_len – len(text_ids)
text_ids += [self.pad_id] * n_pad
text_ids = np.array(text_ids) + self.img_vocab_size

finally:
self.MUTEX.release()

rst[“idx”].append(record[“idx”])
rst[“input_ids”].append(text_ids)
return rst

逐步生成長度為16*16的圖像離散token序列:

# in easynlp/appzoo/text2image_generation/model.py

def generate(self, inputs, top_k=100, temperature=1.0):
cidx = inputs
sample = True
steps = 256
for k in range(steps):
x_cond = cidx
logits, _ = self.transformer(x_cond)
# pluck the logits at the final step and scale by temperature
logits = logits[:, -1, :] / temperature
# optionally crop probabilities to only the top k options
if top_k is not None:
logits = self.top_k_logits(logits, top_k)
# apply softmax to convert to probabilities
probs = torch.nn.functional.softmax(logits, dim=-1)
# sample from the distribution or take the most likely
if sample:
ix = torch.multinomial(probs, num_samples=1)
else:
_, ix = torch.topk(probs, k=1, dim=-1)
# append to the sequence and continue
cidx = torch.cat((cidx, ix), dim=1)
img_idx = cidx[:, 32:]
return img_idx

最后,我們調用VQModel的Decoding過程將這些圖像離散token序列轉換為圖像。

模型效果

我們在四個中文的公開數據集COCO-CN、MUGE、Flickr8k-CN、Flickr30k-CN上驗證了EasyNLP框架中文圖生成模型的效果。同時,我們對比了這個模型和CogView、DALL-E的效果,如下所示:

其中,

1)MUGE是天池平臺公布的電商場景的中文大規模多模態評測基準(http://tianchi.aliyun.com/muge)。為了方便計算指標,MUGE我們采用valid數據集的結果,其他數據集采用test數據集的結果。

2)CogView源自https://github.com/THUDM/CogView

3)DALL-E模型沒有公開的官方代碼。已經公開的部分只包含VQVAE的代碼,不包括Transformer部分。我們基于廣受關注的https://github.com/lucidrains/DALLE-pytorch版本的代碼和該版本推薦的checkpoits進行復現,checkpoints為2.09億參數,為OpenAI的DALL-E模型參數量的1/100。(OpenAI版本DALL-E為120億參數,其中CLIP為4億參數)。

經典案例

我們分別在自然風景數據集COCO-CN上Fine-tune了base和large級別的模型,如下展示了模型的效果:

示例1:一只俏皮的狗正跑過草地

示例2:一片水域的景色以日落為背景

我們也積累了阿里集團的海量電商商品數據,微調得到了面向電商商品的文圖生成模型。效果如下:

示例3:女童套頭毛衣打底衫秋冬針織衫童裝兒童內搭上衣

示例4:春夏真皮工作鞋女深色軟皮久站舒適上班面試職業皮鞋

除了支持特定領域的應用,文圖生成也極大地輔助了人類的藝術創作。使用訓練得到的模型,我們可以秒變“中國國畫藝術大師”,示例如下所示:

更多的示例請欣賞:

使用教程

欣賞了模型生成的作品之后,如果我們想DIY,訓練自己的文圖生成模型,應該如何進行呢?以下我們簡要介紹在EasyNLP框架對預訓練的文圖生成模型進行Fine-tune和推理。

安裝EasyNLP

用戶可以直接參考鏈接的說明安裝EasyNLP算法框架。

數據準備

首先準備訓練數據與驗證數據,為tsv文件。這一文件包含以制表符\t分隔的兩列,第一列為索引號,第二列為文本,第三列為圖片的base64編碼。用于測試的輸入文件為兩列,僅包含索引號和文本。

為了方便開發者,我們也提供了轉換圖片到base64編碼的示例代碼:

import base64
from io import BytesIO
from PIL import Image

img = Image.open(fn)
img_buffer = BytesIO()
img.save(img_buffer, format=img.format)
byte_data = img_buffer.getvalue()
base64_str = base64.b64encode(byte_data) # bytes

下列文件已經完成預處理,可用于測試:

# train
https://atp-modelzoo-sh.oss-cn-shanghai.aliyuncs.com/release/tutorials/painter_text2image/MUGE_train_text_imgbase64.tsv

# valid
https://atp-modelzoo-sh.oss-cn-shanghai.aliyuncs.com/release/tutorials/painter_text2image/MUGE_val_text_imgbase64.tsv

# test
https://atp-modelzoo-sh.oss-cn-shanghai.aliyuncs.com/release/tutorials/painter_text2image/MUGE_test.text.tsv

模型訓練

我們采用以下命令對模型進行fine-tune:

easynlp \
–mode=train \
–worker_gpu=1 \
–tables=MUGE_val_text_imgbase64.tsv,MUGE_val_text_imgbase64.tsv \
–input_schema=idx:str:1,text:str:1,imgbase64:str:1 \
–first_sequence=text \
–second_sequence=imgbase64 \
–checkpoint_dir=./finetuned_model/ \
–learning_rate=4e-5 \
–epoch_num=1 \
–random_seed=42 \
–logging_steps=100 \
–save_checkpoint_steps=1000 \
–sequence_length=288 \
–micro_batch_size=16 \
–app_name=text2image_generation \
–user_defined_parameters=’
pretrain_model_name_or_path=alibaba-pai/pai-painter-large-zh
size=256
text_len=32
img_len=256
img_vocab_size=16384

我們提供base和large兩個版本的預訓練模型,pretrain_model_name_or_path

分別為alibaba-pai/pai-painter-base-zh和alibaba-pai/pai-painter-large-zh。

訓練完成后模型被保存到./finetuned_model/。

模型批量推理

模型訓練完畢后,我們可以將其用于圖像生成,其示例如下:

easynlp \
–mode=predict \
–worker_gpu=1 \
–tables=MUGE_test.text.tsv \
–input_schema=idx:str:1,text:str:1 \
–first_sequence=text \
–outputs=./T2I_outputs.tsv \
–output_schema=idx,text,gen_imgbase64 \
–checkpoint_dir=./finetuned_model/ \
–sequence_length=288 \
–micro_batch_size=8 \
–app_name=text2image_generation \
–user_defined_parameters=’
size=256
text_len=32
img_len=256
img_vocab_size=16384

結果存儲在一個tsv文件中,每行對應輸入中的一個文本,輸出的圖像以base64編碼。

使用Pipeline接口快速體驗文圖生成效果

為了進一步方便開發者使用,我們在EasyNLP框架內也實現了Inference Pipeline功能。用戶可以使用如下命令調用Fine-tune過的電商場景下的文圖生成模型:

# 直接構建pipeline
default_ecommercial_pipeline = pipeline(“pai-painter-commercial-base-zh”)

# 模型預測
data = [“寬松T恤”]
results = default_ecommercial_pipeline(data) # results的每一條是生成圖像的base64編碼

# base64轉換為圖像
def base64_to_image(imgbase64_str):
image = Image.open(BytesIO(base64.urlsafe_b64decode(imgbase64_str)))
return image

# 保存以文本命名的圖像
for text, result in zip(data, results):
imgpath = ‘{}.png’.format(text)
imgbase64_str = result[‘gen_imgbase64’]
image = base64_to_image(imgbase64_str)
image.save(imgpath)
print(‘text: {}, save generated image: {}’.format(text, imgpath))

除了電商場景,我們還提供了以下場景的模型:

● 自然風光場景:“pai-painter-scenery-base-zh”

● 中國山水畫場景:“pai-painter-painting-base-zh”

在上面的代碼當中替換“pai-painter-commercial-base-zh”,就可以直接體驗,歡迎試用。

對于用戶Fine-tune的文圖生成模型,我們也開放了自定義模型加載的Pipeline接口:

# 加載模型,構建pipeline
local_model_path = …
text_to_image_pipeline = pipeline(“text2image_generation”, local_model_path)

# 模型預測
data = [“xxxx”]
results = text_to_image_pipeline(data) # results的每一條是生成圖像的base64編碼

未來展望

在這一期的工作中,我們在EasyNLP框架中集成了中文文圖生成功能,同時開放了模型的Checkpoint,方便開源社區用戶在資源有限情況下進行少量領域相關的微調,進行各種藝術創作。在未來,我們計劃在EasyNLP框架中推出更多相關模型,敬請期待。我們也將在EasyNLP框架中集成更多SOTA模型(特別是中文模型),來支持各種NLP和多模態任務。此外,阿里云機器學習PAI團隊也在持續推進中文多模態模型的自研工作,歡迎用戶持續關注我們,也歡迎加入我們的開源社區,共建中文NLP和多模態算法庫!

Github地址:https://github.com/alibaba/EasyNLP

Reference

Chengyu Wang, Minghui Qiu, Taolin Zhang, Tingting Liu, Lei Li, Jianing Wang, Ming Wang, Jun Huang, Wei Lin. EasyNLP: A Comprehensive and Easy-to-use Toolkit for Natural Language Processing. arXivAditya Ramesh, Mikhail Pavlov, Gabriel Goh, Scott Gray, Chelsea Voss, Alec Radford, Mark Chen, Ilya Sutskever. Zero-Shot Text-to-Image Generation. ICML 2021: 8821-8831Ming Ding, Zhuoyi Yang, Wenyi Hong, Wendi Zheng, Chang Zhou, Da Yin, Junyang Lin, Xu Zou, Zhou Shao, Hongxia Yang, Jie Tang. CogView: Mastering Text-to-Image Generation via Transformers. NeurIPS 2021: 19822-19835Han Zhang, Weichong Yin, Yewei Fang, Lanxin Li, Boqiang Duan, Zhihua Wu, Yu Sun, Hao Tian, Hua Wu, Haifeng Wang. ERNIE-ViLG: Unified Generative Pre-training for Bidirectional Vision-Language Generation. arXivPeng Wang, An Yang, Rui Men, Junyang Lin, Shuai Bai, Zhikang Li, Jianxin Ma, Chang Zhou, Jingren Zhou, Hongxia Yang. Unifying Architectures, Tasks, and Modalities Through a Simple Sequence-to-Sequence Learning Framework. ICML 2022Aditya Ramesh, Prafulla Dhariwal, Alex Nichol, Casey Chu, Mark Chen. Hierarchical Text-Conditional Image Generation with CLIP Latents. arXivVan Den Oord A, Vinyals O. Neural discrete representation learning. NIPS 2017Esser P, Rombach R, Ommer B. Taming transformers for high-resolution image synthesis. CVPR 2021: 12873-12883.Chitwan Saharia, William Chan, Saurabh Saxena, Lala Li, Jay Whang, Emily Denton, Seyed Kamyar Seyed Ghasemipour, Burcu Karagol Ayan, S. Sara Mahdavi, Rapha Gontijo Lopes, Tim Salimans, Jonathan Ho, David J. Fleet, Mohammad Norouzi: Photorealistic Text-to-Image Diffusion Models with Deep Language Understanding. arXivJiahui Yu, Yuanzhong Xu, Jing Yu Koh, Thang Luong, Gunjan Baid, Zirui Wang, Vijay Vasudevan, Alexander Ku, Yinfei Yang, Burcu Karagol Ayan, Ben Hutchinson, Wei Han, Zarana Parekh, Xin Li, Han Zhang, Jason Baldridge, Yonghui Wu. Scaling Autoregressive Models for Content-Rich Text-to-Image Generation. arXiv

(0)
上一篇 2022年7月29日 09:59
下一篇 2022年7月29日 11:03
最近免费中文字幕视频2019| 国产亚洲欧美一区二区三区| 成人欧美一区二区三区小说 | 男女爱爱网站| 婷婷激情5月天| 国产精品国产三级国产专区53 | 色先锋影音av| 国产男男gay网站| 蜜桃精品成人影片| 国产精品视频网站在线观看 | 91国偷自产一区二区开放时间 | 国产精品一区二区av交换| 污污视频在线| 夜夜操天天干| 午夜视频www| 91杏吧porn蝌蚪| 国产精品19p| 日韩av电影免费观看| 午夜精品久久久久久99热软件| 日韩欧美一区二区免费| 国产精品丝袜在线| 日本美女一区二区| 成人免费电影网址| 黄色软件视频在线观看| 天堂中文在线资| 三级特黄视频| 亚洲精品7777xxxx青睐| 久久婷婷国产| 免费观看一二区视频网站| 欧美一级黄色带| 伊人网综合在线| 97精品在线播放| 国产一区视频免费观看| 精品欧美黑人一区二区三区| 精品久久香蕉国产线看观看亚洲| 91免费国产在线观看| 久久久久久久高潮| 欧美日韩理论| 精品久久影院| 欧美sss在线视频| jizz内谢中国亚洲jizz| 成人在线观看亚洲| 最新在线观看av| 99热热99| 日韩色级片先锋影音| 国产偷拍一区二区| 欧美一区二区三区四| 懂色av粉嫩av蜜臀av一区二区三区| 黄色三级视频在线播放| 日韩毛片在线免费看| 精品免费久久久久久久| 一区二区不卡在线| 手机在线观看国产精品| 欧美一区二区高清在线观看| 国产精品区一区| 91美女福利视频高清| 国产精品视频资源| 国产欧美日韩精品丝袜高跟鞋| 日韩美女在线观看一区| 最近中文字幕一区二区三区| 成人午夜电影久久影院| 国产精品7777| 国产野外作爱视频播放| 亚洲 欧美 日韩 国产综合 在线| av中文字幕av| 第九区2中文字幕| 亚洲 欧美 综合 另类 中字| 日本人妻伦在线中文字幕| 久久观看最新视频| 国产va亚洲va在线va| 国产精品12345| 免费黄色日本网站| 国产精品99久久免费黑人人妻| 国产午夜伦鲁鲁| av在线无限看| 天天看片天天操| 国产成人精品综合久久久久99 | 在线观看一区| 亚洲深夜av| 人人狠狠综合久久亚洲| 国内精品免费**视频| 北岛玲heyzo一区二区| 2020国产在线| 国产精品蜜月aⅴ在线| 国产电影一区| 国产精品调教视频| 欧美日韩一二| 亚洲精品一二| 久草这里只有精品视频| 成人国产精品免费观看动漫| 国产目拍亚洲精品99久久精品| 亚洲精品久久7777| 欧美性视频一区二区三区| 精品国产91亚洲一区二区三区婷婷 | 一区二区三区在线| 国产日韩1区| 国模一区二区三区白浆| 久久综合九色综合欧美98 | 国产精品视频免费观看www| 92国产精品久久久久首页| 久久精品二区| 国产精品久久中文字幕| 国内自拍偷拍视频| 国产suv精品一区二区68| 一级做a爰片久久毛片| 后进极品白嫩翘臀在线视频| xxx欧美尤物xxx| 国产毛片视频| 最新黄网在线观看| 99国内精品久久久久| 成人高清av| 毛片一区二区三区| 国产精品天干天干在线综合| 欧美日韩在线播放三区| 一区二区亚洲欧洲国产日韩| 2019中文在线观看| 蜜桃日韩视频| 欧美伦理视频在线观看| 亚洲国产日韩一区无码精品久久久| 久久高清免费视频| 四虎永久在线精品免费网址| www.老鸭窝.com| 在线免费观看黄色网址| 成人国产激情| 一区二区三区在线电影| 成人综合在线观看| 色域天天综合网| 久久精品在线播放| 国产成人免费电影| 国产日韩一区二区在线观看| 男人操女人动态图| 一级片在线免费观看视频| 国产二区视频| 日本在线观看www| 久久三级中文| 午夜影院韩国伦理在线| 91超碰免费在线| 欧美午夜精彩| 成人免费不卡视频| 欧洲一区在线观看| 欧美国产日韩一区二区在线观看| 久久精品日产第一区二区三区精品版 | 久久精品免费电影| 精品国产一区二区三区免费| 亚洲欧美日韩一级| 日本在线视频免费观看| 日韩簧片在线观看| 黄色大片在线看| 91综合精品国产丝袜长腿久久| 三级欧美在线一区| 性做久久久久久久久| 中文字幕一区二区精品| 精品欧美一区二区精品久久| 日韩av片免费观看| 69亚洲精品久久久蜜桃小说| 娇小发育未年成性色xxx8| 牛牛电影国产一区二区| 天天做天天爱天天综合网| 久久免费偷拍视频| 亚洲成年人在线| 波多野结衣成人在线| www.com污| 久久久国产精品成人免费| 偷偷看偷偷操| 鲁鲁在线中文| 9色国产精品| 亚洲成人精品在线观看| 欧美大片免费观看| 久久久久久久9| 免费在线观看日韩| 日日操夜夜爽| 手机看片久久| 在线一区免费观看| 五月激情六月综合| 午夜精品福利电影| 精品国产三级a∨在线| 91日韩中文字幕| 女同性互吃奶乳免费视频| 三级在线看中文字幕完整版| 中文字幕久久av| 国产a久久精品一区二区三区 | 视频在线不卡免费观看| 成年人网站免费看| 日韩欧美高清在线| 国产美女高潮在线观看| 2021狠狠干| 免费一区二区三区视频导航| 国产精品区免费视频| 成人羞羞网站| 亚欧视频在线观看| 亚洲品质自拍视频网站| www.国产com| 国产在线精品免费| 国产一区第一页| 国产乱码一区二区三区| 亚洲精品国产久| 亚洲欧美视频| 三级男人添奶爽爽爽视频| 国产欧美日韩在线一区二区| 欧美亚洲日本一区二区三区| 四虎5151久久欧美毛片| 亚洲激情图片| 日本亚洲视频| 国内自拍中文字幕| 国产探花一区| 中文视频在线观看| 国产精品卡一卡二| 日本h视频在线观看| 2021久久精品国产99国产精品| 黄视频在线播放| 国产一区二区三区奇米久涩| 岛国精品一区| 久久免费一区| 性欧美freehd18| 不卡一区二区三区四区五区| 国产亚洲人成a在线v网站| 久久夜色精品国产亚洲aⅴ| 1769视频在线播放免费观看| 清纯唯美亚洲激情| 9色在线观看| 久久久久国产精品视频| 国产在线88av| 激情小说网站亚洲综合网| 黄色日韩网站| 国产av不卡一区二区| 欧美91在线| 国产乱人乱偷精品视频| 欧美一级理论片| 白白色视频在线| 国产在线一区二区三区欧美| 97精品国产综合久久久动漫日韩 | 久久夜色撩人精品| 精品人妻大屁股白浆无码| 亚洲中文字幕无码爆乳av | 久久久久一区| 亚洲第一区中文字幕| 色哺乳xxxxhd奶水米仓惠香| 丰满人妻一区二区三区四区| 91caoporn在线| 久久国产福利| 在线看日韩欧美| 亚洲精品自拍网| 91深夜福利| 欧美热在线视频精品999| 日本韩国欧美在线| 亚洲色图丝袜美腿| 4438五月综合| 国产性天天综合网| 国产精品久久久久久久久久ktv | 国内精品久久久久久久影视麻豆| 欧美一二三区在线观看| 亚洲精品视频免费看| 91久久大香伊蕉在人线| 国产亚洲精品av| av在线播放av| 国产一区二区三区黄视频| 国产69精品久久久久99| 尤物视频最新网址| 伊人久久青青草| 久久精品999| 久久乐国产精品| 手机看片国产日韩| 91社区在线观看播放| 国产成人精品免费在线| 日本不卡高字幕在线2019| 国产一二三四区| 97超碰在线公开在线看免费| 久久久久久免费| 国产精品二区在线| 国产精品国产三级国产aⅴ| 成人在线黄色| 亚洲h动漫在线| 久久久天堂国产精品| 日本亚洲欧美美色| 成人影视亚洲图片在线| 亚洲精品美女在线观看| 日本黄色大片在线观看| 桃乃木香奈av在线| 精品影视av免费| 国产精品久久久久久久av大片 | 在线免费看a| 久久精品免视看| 欧美久久久久久一卡四| 黄色美女一级片| 精品国产影院| 亚洲精品91美女久久久久久久| 99999精品| 在线播放av片| 成人激情综合网站| 97中文在线| xxxx18国产| 猛男gaygay欧美视频| 亚洲美女av在线| 高清国产在线观看| h片在线播放| 一区二区成人在线视频| 91黄色在线看| av一线二线| 国产一区二区视频在线| ts人妖另类在线| 高清国产mv在线观看| 精品美女视频| 久久精品福利视频| 免费视频网站www| 国产a亚洲精品| 日韩午夜在线播放| 午夜男人的天堂| 伊人影院蕉久影院在线播放| 亚洲在线观看免费视频| 日韩黄色片视频| 中文字幕一二三区在线观看| 久久先锋影音av| 宅男在线精品国产免费观看| 女人天堂网站| 激情深爱一区二区| 久久久久网址| 国产三级电影| 免费观看久久久4p| 国产精品日韩一区二区三区| 香蕉久久视频| 性xx色xx综合久久久xx| 亚洲自拍偷拍色片视频| 2018中文字幕在线| 性色一区二区三区| 99国产超薄丝袜足j在线观看| 中文字幕第8页| 青青草一区二区三区| 精品欧美国产一区二区三区不卡| 国产黄色在线看| 极品尤物av久久免费看| 日本不卡高清视频一区| 操操操日日日| 久久噜噜亚洲综合| 久久久亚洲国产精品| 在线观看污网站| 亚洲一区日韩精品中文字幕| 啊啊啊国产视频| 日本欧美在线视频免费观看| 色综合久久88色综合天天6| 91精品人妻一区二区三区四区| 日本天码aⅴ片在线电影网站| 日本高清不卡在线观看| 日韩精品一区二区三区高清免费| 亚洲插插视频| 亚洲精品视频网上网址在线观看| 国产真实的和子乱拍在线观看| 日韩大尺度在线观看| 欧美日韩成人网| 午夜精品久久久久久久99老熟妇| 伊人久久久大香线蕉综合直播| 高清国产在线一区| 福利视频大全| 国产精品久久久久天堂| 三上悠亚在线一区二区| 国产精品偷拍| 亚洲精品国产欧美| 99精品在线播放| 91日韩在线| 97超碰资源| 狠狠色噜噜狠狠狠888奇米| 久久精品日韩一区二区三区| 孩娇小videos精品| 美女av在线免费看| 国产一区二区三区在线| 中文字幕 日韩有码| 亚洲美女视频在线免费观看 | 日日摸天天添天天添破| 99久久亚洲精品| 国产精品播放| 天天干夜夜干| 日韩欧美精品中文字幕| 男人天堂资源网| 精品一区二区三区中文字幕老牛| 国产欧美精品日韩精品| 免费观看的成年网址| 亚洲品质自拍视频| 老司机福利av| 香蕉久久精品日日躁夜夜躁| 欧美日韩视频在线一区二区观看视频| 二区三区不卡不卡视频| 老司机精品视频在线| 日本黄xxxxxxxxx100| 国产69精品久久app免费版| 91精品国产综合久久久蜜臀图片| 精品国产欧美日韩不卡在线观看| 羞羞视频免费| 精品国产免费观看一区| 欧美乱大交xxxxx免费| 亚洲小说春色综合另类网蜜桃| 97久久久久久久| 91香蕉视频在线播放| 国产91在线免费观看| 久久久久久久久久久福利| 三级黄色的网站| 国产精品天美传媒入口| www.国产.com| 国产精品无码免费播放| 日本免费精品视频| 国产又粗又大又爽| 欧美娇小性xxxx|