午夜激情电影在线播放_色佬视频在线观看_国产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
国产精品草莓在线免费观看| 国产欧美精品在线观看| 国产精品麻豆一区二区三区| 成年人小视频在线观看| 亚洲va电影大全| 日韩欧美在线免费| 国产99精品视频| 日韩精品诱惑一区?区三区| 超碰在线中文| 五月婷婷一区二区三区| 中文字幕在线观看成人| 黄大色黄女片18第一次| 日韩精品伦理第一区| 亚洲**2019国产| 亚洲第一av网| 欧美日韩在线免费观看| 日韩成人精品| h网站视频在线观看| 黄色片一区二区| 欧美性x x x| 亚洲免费在线精品一区| 97色在线观看| 亚洲欧美精品在线| 欧美在线观看18| 国产深夜视频在线观看| 天天性天天草| 中日韩在线观看视频| 久久精品视频18| 国产精品嫩草影院8vv8| 国产伦精品一区二区三毛| 欧美精品一区二区在线播放| 91麻豆成人久久精品二区三区| 一区二区在线视频观看| 免费亚色电影在线观看| 91片黄在线观看喷潮| www.99re6| 国产精品熟妇一区二区三区四区| 久久精品一二三区| 国产精品扒开腿做| 不卡av在线播放| 亚洲男人天堂古典| 精品免费日韩av| 精品视频资源站| 亚洲高清不卡在线| 国产在线麻豆精品观看| 欧美一区视频| 国产精品久久久久久吹潮| 日本成本人片免费观看| 国产成人精品久久一区二区小说| 国产高潮久久久| 中国美女黄色一级片| 日韩伦理在线免费观看| 久久免费99精品久久久久久| 91丝袜美腿美女视频网站| 在线观看中文字幕亚洲| 亚洲精品在线免费观看视频| 欧美日本一道本在线视频| 精品久久久久久久久久久久| 亚洲精品你懂的| 国产精品灌醉下药二区| 日韩专区欧美专区| 18成人免费观看视频| 五月久久久综合一区二区小说| 电影网一区二区| 98色花堂精品视频在线观看| 午夜激情在线| 日韩另类在线| 亚洲啪啪aⅴ一区二区三区9色| 午夜国产福利| 中文字幕国产视频| 色妇色综合久久夜夜| 综合激情网五月| 99免费在线观看| 伊人国产在线观看| 欧产日产国产精品98| 亚洲一区二区三区四区精品| 欧美日韩视频免费在线观看| 中国成人在线视频| 91国产在线播放| 欧美激情一二区| 欧美激情按摩在线| 91国语精品自产拍在线观看性色| 亚洲精品国产免费| 91久久精品一区二区三| 在线亚洲+欧美+日本专区| 欧美日韩免费观看一区二区三区| ...av二区三区久久精品| 国产精品初高中害羞小美女文| 美女一区二区久久| 久久久久美女| 欧美日韩国产精品一区二区亚洲| 香蕉视频亚洲一级| 毛片在线播放a| 在免费jizzjizz在线视频| 国产极品一区二区三区| 日本免费三片免费观看| 一本久中文高清| 精品卡一卡卡2卡3网站| 国产99999| 四虎地址8848jia| 99久久99久久免费精品小说| 99免费视频| 你懂的视频在线观看| 黄色小说在线播放| 国产亚洲亚洲国产一二区| 精品国产一区二区三区小蝌蚪| 黄色在线看片| 97精品国产99久久久久久免费| 超免费在线视频| 欧美性www| 国产一区二区三区探花| 最新亚洲激情| 成人av资源网站| 国产一区视频网站| 国产香蕉久久精品综合网| www..com久久爱| 成人美女视频在线看| 国产精品18久久久久久久久 | 黄色一区三区| 国产又黄又爽免费视频| 伊人狠狠色丁香综合尤物| 国产二区视频在线| 中文字幕在线播放视频| 日韩少妇裸体做爰视频| 婷婷激情五月网| 无码精品人妻一区二区三区影院| 三级在线观看网站| 性一交一乱一色一视频麻豆| 亚洲色图图片区| 三级av网站| 在线播放毛片| 青春草视频在线观看| 一区二区三区| 欧美激情性爽国产精品17p| 亚洲精品乱码久久久久久| 日韩经典一区二区三区| 一本大道久久a久久综合| xxx在线免费观看| www欧美xxxx| 99久热这里只有精品视频免费观看| 夜夜摸夜夜操| 麻豆电影传媒二区| 亚洲无线看天堂av| 国产精品麻豆| 999国产精品视频| 热久久一区二区| 国产精品美女一区二区| 2022成人影院| 日韩中文在线不卡| 能看毛片的网站| 麻豆影视在线观看_| 午夜影院在线观看欧美| 青青草手机在线视频| 精品精品国产毛片在线看| 久99久视频| 在线看片黄色| 日韩电影中文字幕在线| 日本黄色一级视频| 久久久另类综合| 国内精品久久99人妻无码| 欧美影院精品| 国产精品视频999| 污视频在线看| 日本韩国精品在线| 国产乱色精品成人免费视频 | 日韩欧美理论片| 国产熟女一区二区| 人人妻人人玩人人澡人人爽| www.男人的天堂| 天天操夜夜欢| 污的网站在线观看| 欧美一区电影| 久久综合图片| 亚洲第一av色| 九九精品在线视频| 四虎4hu永久免费入口| www亚洲色图| 亚洲依依成人| 免费在线午夜视频| 四季av一区二区三区免费观看 | 一本一道久久a久久| 麻豆成人91精品二区三区| 欧美日韩免费区域视频在线观看| 久久中文字幕在线| 欧美 日韩 国产 在线观看| 精品人妻中文无码av在线| 热99re久久精品精品免费| 成人日韩欧美| 99re国产精品| 在线视频一区二区三区| 国产精品中文久久久久久久| 91 视频免费观看| 高h调教冰块play男男双性文| 国产永久av在线| 亚洲成人99| 亚洲成人av福利| 日韩免费观看av| 在线免费黄色网| 人妻精品无码一区二区| 色开心亚洲综合| 一区在线观看| 欧美日本在线视频| 久久青青草原| 国产女人被狂躁到高潮小说| av电影不卡在线观看| 国产精品免费麻豆入口| 国产丝袜在线播放| 日本欧美加勒比视频| 91精品国产91久久久久久最新毛片| 国产精品视频网| youjizz.com国产| 韩国福利一区| 亚洲男女网站| 中文在线一区二区| 45www国产精品网站| 国产一二三区av| 少妇高潮一区二区三区69| 亚洲七七久久综合桃花剧情介绍| 国产精品日韩久久久| 欧美精品第一页| 久久国产精品高清| 久久久久久久国产精品毛片| 黄色三级高清在线播放| 精品国产aⅴ| 色八戒一区二区三区| 国产美女在线精品免费观看| 欧美丰满熟妇bbbbbb| 三上悠亚在线观看二区| 欧美一区不卡| 日韩欧美一区二区在线视频| 欧美专区在线视频| 五月天六月丁香| 国产女人免费看a级丨片| 成人全视频在线观看在线播放高清 | 国产午夜精品美女毛片视频| 久久久久久国产精品三级玉女聊斋 | 午夜性色一区二区三区免费视频| 欧美日韩亚洲不卡| 在线一区高清| av片免费播放| 日韩国产网站| 国产精品成人一区二区三区夜夜夜| 国产精品白嫩美女在线观看 | 青青草视频在线视频| 国产免费av观看| 中文字幕在线免费观看视频| 一区二区毛片| 日韩精品日韩在线观看| 精品中文字幕av| 久在线观看福利视频| heyzo欧美激情| 一本大道久久a久久精品综合| 青青草久久网络| 国产一区二区三区在线观看| 亚洲美女尤物影院| 亚洲国产精品黑人久久久 | 青青青视频在线免费观看| 992tv在线| 久久久久国产精品午夜一区| 欧美日韩国产专区| 欧洲亚洲一区| 国产丰满美女做爰| 视频欧美精品| 久久综合999| 91久久国产精品| 欧美一级片免费在线观看| a免费在线观看| 欧美国产欧美亚州国产日韩mv天天看完整 | 1000部国产精品成人观看| 成人在线观看91| 中文无码av一区二区三区| 超碰国产一区| 亚洲成av人**亚洲成av**| 亚洲综合欧美日韩| 影音先锋亚洲天堂| 欧美精品videosex| 中文字幕一区在线观看| 免费看成人午夜电影| 国产黄色片网站| 操欧美女人视频| 91成人国产| 亚洲日韩欧美视频一区| 免费人成视频在线播放| 在线激情视频| 国产经典欧美精品| 亚洲a成v人在线观看| 国产又粗又猛又爽又| 国产69精品久久久久按摩| 欧美性xxxxx| 狠狠爱免费视频| 中出中文字幕| 日韩在线综合| 日韩在线观看网站| 成人三级视频在线观看| 成人在线直播| 日韩理论片在线| 最新av网址在线观看| 2023国产在线观看| 亚洲一区二区网站| 热re99久久精品国产66热| 一级片视频在线观看| 国外成人福利视频| 91精品国产色综合久久ai换脸| 日韩精品你懂的| 在线91av| 国产精品久久久久久久久免费樱桃| 伊人久久av导航| 九九热视频免费在线观看| 日韩精品亚洲一区| 91中文字幕在线| 五月婷中文字幕| 国产一区亚洲| 国产精品视频区1| 狠狠躁夜夜躁av无码中文幕| 亚欧美无遮挡hd高清在线视频| 欧美日韩国产二区| 亚洲精品中文字幕乱码三区91| 51社区在线成人免费视频| 亚洲男人的天堂在线播放| 成人在线观看小视频| 精品亚洲a∨| 精品一区二区三区四区| 97在线观看免费高| 久久精品97| 亚洲精品永久免费| 九九免费精品视频| 一区二区三区亚洲变态调教大结局| 亚洲女人天堂视频| 国产对白videos麻豆高潮| 免费一区二区三区在线视频| 亚洲日韩中文字幕| 香蕉免费毛片视频| 香蕉久久精品| 97精品伊人久久久大香线蕉 | 四虎影视国产在线视频| 91福利视频在线| 日韩免费高清一区二区| 蜜桃在线视频| 欧美xxxxx牲另类人与| 国产三级在线观看完整版| 国内欧美日韩| 中文字幕国产亚洲2019| 4438国产精品一区二区| 奇米狠狠一区二区三区| 奇米4444一区二区三区| 五月婷婷六月色| 久久精品国产网站| 亚洲激情一区二区三区| www.成人精品免费网站青椒| 亚洲视频 欧洲视频| 亚洲综合激情视频| 超碰在线中文字幕| 亚洲精品一区在线观看| 国产一级特黄毛片| 欧美人妖在线| 国产精品吴梦梦| 精品麻豆视频| 99re热视频这里只精品| 日韩最新中文字幕电影免费看| 久久久久久久久久一区二区三区| 偷拍亚洲色图| 国产精品网红直播| 91插插视频| 中文字幕欧美日本乱码一线二线| 黄色成人免费看| av白虎一区| 亚洲人线精品午夜| 又骚又黄的视频| 国产精品一二| 亚洲丰满在线| 九色视频在线观看免费播放| 欧美性xxxxx极品少妇| 中国美女黄色一级片| 香蕉人人精品| 国产日韩专区在线| 美女在线观看www| 亚洲欧美日韩一区| 精品无码人妻一区| 欧美深夜视频| 亚洲xxxx3d| 狠狠干夜夜操| 在线欧美日韩国产| 久久综合加勒比| 欧美1级日本1级| 神马影院午夜我不卡影院| 日韩精品福利| 日韩午夜av电影| 亚洲天堂网在线视频| 麻豆精品在线看| 国产主播在线看| 欧美一区 二区 三区| 欧美极品xxxx| 91啦中文成人| 亚洲电影一区二区| 精品国产精品国产精品| 99精品在线| 亚洲一区美女| 国产黄色小视频在线| 一本色道久久综合狠狠躁篇的优点| 囯产精品一品二区三区|