From 95bde087baf4d3245214a43d61a99de4df0837b8 Mon Sep 17 00:00:00 2001 From: charlescxk Date: Mon, 27 Jan 2025 23:46:51 +0800 Subject: [PATCH] add Janus-Pro --- README.md | 208 +++++++++++++++++++++++++++- demo/app_januspro.py | 245 +++++++++++++++++++++++++++++++++ images/teaser_januspro.png | Bin 0 -> 97999 bytes janus/models/processing_vlm.py | 9 +- janus/utils/conversation.py | 19 ++- 5 files changed, 475 insertions(+), 6 deletions(-) create mode 100644 demo/app_januspro.py create mode 100644 images/teaser_januspro.png diff --git a/README.md b/README.md index 87e1f8f..aff55b7 100755 --- a/README.md +++ b/README.md @@ -56,12 +56,14 @@ 📜 License | 📖 Citation
- 🤗 Online Demo (Janus, JanusFlow) + 🤗 Online Demo (Janus-Pro-7B, Janus, JanusFlow)

## News +**2025.01.27**: Janus-Pro is released, an advanced version of Janus, improving both multimodal understanding and visual generation significantly. See [paper](./janus_pro_tech_report.pdf) + **2024.11.13**: JanusFlow is released, a new unified model with rectified flow for image generation. See [paper](https://arxiv.org/abs/2411.07975), [demo](https://huggingface.co/spaces/deepseek-ai/JanusFlow-1.3B) and [usage](https://github.com/deepseek-ai/Janus?tab=readme-ov-file#janusflow). **2024.10.23**: Evaluation code for reproducing the multimodal understanding results from the paper has been added to VLMEvalKit. Please refer to [this link]( https://github.com/open-compass/VLMEvalKit/pull/541). @@ -71,6 +73,16 @@ ## 1. Introduction +Janus-Pro: Unified Multimodal Understanding and +Generation with Data and Model Scaling + +**Janus-Pro** is an advanced version of the previous work Janus. Specifically, Janus-Pro incorporates (1) an optimized training strategy, (2) expanded training data, and (3) scaling to larger model size. With these improvements, Janus-Pro achieves significant advancements in both multimodal understanding and text-to-image instruction-following capabilities, while also enhancing the stability of text-to-image generation. + +
+image +
+ + Janus: Decoupling Visual Encoding for Unified Multimodal Understanding and Generation **Janus** is a novel autoregressive framework that unifies multimodal understanding and generation. It addresses the limitations of previous approaches by decoupling visual encoding into separate pathways, while still utilizing a single, unified transformer architecture for processing. The decoupling not only alleviates the conflict between the visual encoder’s roles in understanding and generation, but also enhances the framework’s flexibility. Janus surpasses previous unified model and matches or exceeds the performance of task-specific models. The simplicity, high flexibility, and effectiveness of Janus make it a strong candidate for next-generation unified multimodal models. @@ -100,11 +112,197 @@ permitted under these terms. |-----------------------|-----------------|-----------------------------------------------------------------------------| | Janus-1.3B | 4096 | [🤗 Hugging Face](https://huggingface.co/deepseek-ai/Janus-1.3B) | | JanusFlow-1.3B | 4096 | [🤗 Hugging Face](https://huggingface.co/deepseek-ai/JanusFlow-1.3B) | - +| Janus-Pro-1B | 4096 | [🤗 Hugging Face](https://huggingface.co/deepseek-ai/Janus-Pro-1B) | +| Janus-Pro-7B | 4096 | [🤗 Hugging Face](https://huggingface.co/deepseek-ai/Janus-Pro-7B) | ## 3. Quick Start +
+

Janus-Pro

+ +### Installation + +On the basis of `Python >= 3.8` environment, install the necessary dependencies by running the following command: + +```shell +pip install -e . +``` + + +### Simple Inference Example + +#### Multimodal Understanding +```python + +import torch +from transformers import AutoModelForCausalLM +from janus.models import MultiModalityCausalLM, VLChatProcessor +from janus.utils.io import load_pil_images + +# specify the path to the model +model_path = "deepseek-ai/Janus-Pro-7B" +vl_chat_processor: VLChatProcessor = VLChatProcessor.from_pretrained(model_path) +tokenizer = vl_chat_processor.tokenizer + +vl_gpt: MultiModalityCausalLM = AutoModelForCausalLM.from_pretrained( + model_path, trust_remote_code=True +) +vl_gpt = vl_gpt.to(torch.bfloat16).cuda().eval() + +conversation = [ + { + "role": "<|User|>", + "content": f"\n{question}", + "images": [image], + }, + {"role": "<|Assistant|>", "content": ""}, +] + +# load images and prepare for inputs +pil_images = load_pil_images(conversation) +prepare_inputs = vl_chat_processor( + conversations=conversation, images=pil_images, force_batchify=True +).to(vl_gpt.device) + +# # run image encoder to get the image embeddings +inputs_embeds = vl_gpt.prepare_inputs_embeds(**prepare_inputs) + +# # run the model to get the response +outputs = vl_gpt.language_model.generate( + inputs_embeds=inputs_embeds, + attention_mask=prepare_inputs.attention_mask, + pad_token_id=tokenizer.eos_token_id, + bos_token_id=tokenizer.bos_token_id, + eos_token_id=tokenizer.eos_token_id, + max_new_tokens=512, + do_sample=False, + use_cache=True, +) + +answer = tokenizer.decode(outputs[0].cpu().tolist(), skip_special_tokens=True) +print(f"{prepare_inputs['sft_format'][0]}", answer) + +``` + +#### Text-to-Image Generation +```python +import os +import PIL.Image +import torch +import numpy as np +from transformers import AutoModelForCausalLM +from janus.models import MultiModalityCausalLM, VLChatProcessor + + +# specify the path to the model +model_path = "deepseek-ai/Janus-Pro-7B" +vl_chat_processor: VLChatProcessor = VLChatProcessor.from_pretrained(model_path) +tokenizer = vl_chat_processor.tokenizer + +vl_gpt: MultiModalityCausalLM = AutoModelForCausalLM.from_pretrained( + model_path, trust_remote_code=True +) +vl_gpt = vl_gpt.to(torch.bfloat16).cuda().eval() + +conversation = [ + { + "role": "<|User|>", + "content": "A stunning princess from kabul in red, white traditional clothing, blue eyes, brown hair", + }, + {"role": "<|Assistant|>", "content": ""}, +] + +sft_format = vl_chat_processor.apply_sft_template_for_multi_turn_prompts( + conversations=conversation, + sft_format=vl_chat_processor.sft_format, + system_prompt="", +) +prompt = sft_format + vl_chat_processor.image_start_tag + + +@torch.inference_mode() +def generate( + mmgpt: MultiModalityCausalLM, + vl_chat_processor: VLChatProcessor, + prompt: str, + temperature: float = 1, + parallel_size: int = 16, + cfg_weight: float = 5, + image_token_num_per_image: int = 576, + img_size: int = 384, + patch_size: int = 16, +): + input_ids = vl_chat_processor.tokenizer.encode(prompt) + input_ids = torch.LongTensor(input_ids) + + tokens = torch.zeros((parallel_size*2, len(input_ids)), dtype=torch.int).cuda() + for i in range(parallel_size*2): + tokens[i, :] = input_ids + if i % 2 != 0: + tokens[i, 1:-1] = vl_chat_processor.pad_id + + inputs_embeds = mmgpt.language_model.get_input_embeddings()(tokens) + + generated_tokens = torch.zeros((parallel_size, image_token_num_per_image), dtype=torch.int).cuda() + + for i in range(image_token_num_per_image): + outputs = mmgpt.language_model.model(inputs_embeds=inputs_embeds, use_cache=True, past_key_values=outputs.past_key_values if i != 0 else None) + hidden_states = outputs.last_hidden_state + + logits = mmgpt.gen_head(hidden_states[:, -1, :]) + logit_cond = logits[0::2, :] + logit_uncond = logits[1::2, :] + + logits = logit_uncond + cfg_weight * (logit_cond-logit_uncond) + probs = torch.softmax(logits / temperature, dim=-1) + + next_token = torch.multinomial(probs, num_samples=1) + generated_tokens[:, i] = next_token.squeeze(dim=-1) + + next_token = torch.cat([next_token.unsqueeze(dim=1), next_token.unsqueeze(dim=1)], dim=1).view(-1) + img_embeds = mmgpt.prepare_gen_img_embeds(next_token) + inputs_embeds = img_embeds.unsqueeze(dim=1) + + + dec = mmgpt.gen_vision_model.decode_code(generated_tokens.to(dtype=torch.int), shape=[parallel_size, 8, img_size//patch_size, img_size//patch_size]) + dec = dec.to(torch.float32).cpu().numpy().transpose(0, 2, 3, 1) + + dec = np.clip((dec + 1) / 2 * 255, 0, 255) + + visual_img = np.zeros((parallel_size, img_size, img_size, 3), dtype=np.uint8) + visual_img[:, :, :] = dec + + os.makedirs('generated_samples', exist_ok=True) + for i in range(parallel_size): + save_path = os.path.join('generated_samples', "img_{}.jpg".format(i)) + PIL.Image.fromarray(visual_img[i]).save(save_path) + + +generate( + vl_gpt, + vl_chat_processor, + prompt, +) +``` + +### Gradio Demo +We have deployed online demo in [Huggingface](https://huggingface.co/spaces/deepseek-ai/Janus-Pro-7B). + + +For the local gradio demo, you can run with the following command: + +``` +pip install -e .[gradio] + +python demo/app_januspro.py +``` + +Have Fun! +``` +
+ +

Janus

@@ -519,6 +717,12 @@ This code repository is licensed under [the MIT License](https://github.com/deep ## 5. Citation ```bibtex +@misc{chen2025januspro, + title={Janus-Pro: Unified Multimodal Understanding and Generation with Data and Model Scaling}, + author={Xiaokang Chen and Zhiyu Wu and Xingchao Liu and Zizheng Pan and Wen Liu and Zhenda Xie and Xingkai Yu and Chong Ruan}, + year={2025}, +} + @article{wu2024janus, title={Janus: Decoupling visual encoding for unified multimodal understanding and generation}, author={Wu, Chengyue and Chen, Xiaokang and Wu, Zhiyu and Ma, Yiyang and Liu, Xingchao and Pan, Zizheng and Liu, Wen and Xie, Zhenda and Yu, Xingkai and Ruan, Chong and others}, diff --git a/demo/app_januspro.py b/demo/app_januspro.py new file mode 100644 index 0000000..702e58e --- /dev/null +++ b/demo/app_januspro.py @@ -0,0 +1,245 @@ +import gradio as gr +import torch +from transformers import AutoConfig, AutoModelForCausalLM +from janus.models import MultiModalityCausalLM, VLChatProcessor +from janus.utils.io import load_pil_images +from PIL import Image + +import numpy as np +import os +import time +# import spaces # Import spaces for ZeroGPU compatibility + + +# Load model and processor +model_path = "deepseek-ai/Janus-Pro-7B" +config = AutoConfig.from_pretrained(model_path) +language_config = config.language_config +language_config._attn_implementation = 'eager' +vl_gpt = AutoModelForCausalLM.from_pretrained(model_path, + language_config=language_config, + trust_remote_code=True) +if torch.cuda.is_available(): + vl_gpt = vl_gpt.to(torch.bfloat16).cuda() +else: + vl_gpt = vl_gpt.to(torch.float16) + +vl_chat_processor = VLChatProcessor.from_pretrained(model_path) +tokenizer = vl_chat_processor.tokenizer +cuda_device = 'cuda' if torch.cuda.is_available() else 'cpu' + +@torch.inference_mode() +# @spaces.GPU(duration=120) +# Multimodal Understanding function +def multimodal_understanding(image, question, seed, top_p, temperature): + # Clear CUDA cache before generating + torch.cuda.empty_cache() + + # set seed + torch.manual_seed(seed) + np.random.seed(seed) + torch.cuda.manual_seed(seed) + + conversation = [ + { + "role": "<|User|>", + "content": f"\n{question}", + "images": [image], + }, + {"role": "<|Assistant|>", "content": ""}, + ] + + pil_images = [Image.fromarray(image)] + prepare_inputs = vl_chat_processor( + conversations=conversation, images=pil_images, force_batchify=True + ).to(cuda_device, dtype=torch.bfloat16 if torch.cuda.is_available() else torch.float16) + + + inputs_embeds = vl_gpt.prepare_inputs_embeds(**prepare_inputs) + + outputs = vl_gpt.language_model.generate( + inputs_embeds=inputs_embeds, + attention_mask=prepare_inputs.attention_mask, + pad_token_id=tokenizer.eos_token_id, + bos_token_id=tokenizer.bos_token_id, + eos_token_id=tokenizer.eos_token_id, + max_new_tokens=512, + do_sample=False if temperature == 0 else True, + use_cache=True, + temperature=temperature, + top_p=top_p, + ) + + answer = tokenizer.decode(outputs[0].cpu().tolist(), skip_special_tokens=True) + return answer + + +def generate(input_ids, + width, + height, + temperature: float = 1, + parallel_size: int = 5, + cfg_weight: float = 5, + image_token_num_per_image: int = 576, + patch_size: int = 16): + # Clear CUDA cache before generating + torch.cuda.empty_cache() + + tokens = torch.zeros((parallel_size * 2, len(input_ids)), dtype=torch.int).to(cuda_device) + for i in range(parallel_size * 2): + tokens[i, :] = input_ids + if i % 2 != 0: + tokens[i, 1:-1] = vl_chat_processor.pad_id + inputs_embeds = vl_gpt.language_model.get_input_embeddings()(tokens) + generated_tokens = torch.zeros((parallel_size, image_token_num_per_image), dtype=torch.int).to(cuda_device) + + pkv = None + for i in range(image_token_num_per_image): + with torch.no_grad(): + outputs = vl_gpt.language_model.model(inputs_embeds=inputs_embeds, + use_cache=True, + past_key_values=pkv) + pkv = outputs.past_key_values + hidden_states = outputs.last_hidden_state + logits = vl_gpt.gen_head(hidden_states[:, -1, :]) + logit_cond = logits[0::2, :] + logit_uncond = logits[1::2, :] + logits = logit_uncond + cfg_weight * (logit_cond - logit_uncond) + probs = torch.softmax(logits / temperature, dim=-1) + next_token = torch.multinomial(probs, num_samples=1) + generated_tokens[:, i] = next_token.squeeze(dim=-1) + next_token = torch.cat([next_token.unsqueeze(dim=1), next_token.unsqueeze(dim=1)], dim=1).view(-1) + + img_embeds = vl_gpt.prepare_gen_img_embeds(next_token) + inputs_embeds = img_embeds.unsqueeze(dim=1) + + + + patches = vl_gpt.gen_vision_model.decode_code(generated_tokens.to(dtype=torch.int), + shape=[parallel_size, 8, width // patch_size, height // patch_size]) + + return generated_tokens.to(dtype=torch.int), patches + +def unpack(dec, width, height, parallel_size=5): + dec = dec.to(torch.float32).cpu().numpy().transpose(0, 2, 3, 1) + dec = np.clip((dec + 1) / 2 * 255, 0, 255) + + visual_img = np.zeros((parallel_size, width, height, 3), dtype=np.uint8) + visual_img[:, :, :] = dec + + return visual_img + + + +@torch.inference_mode() +# @spaces.GPU(duration=120) # Specify a duration to avoid timeout +def generate_image(prompt, + seed=None, + guidance=5, + t2i_temperature=1.0): + # Clear CUDA cache and avoid tracking gradients + torch.cuda.empty_cache() + # Set the seed for reproducible results + if seed is not None: + torch.manual_seed(seed) + torch.cuda.manual_seed(seed) + np.random.seed(seed) + width = 384 + height = 384 + parallel_size = 5 + + with torch.no_grad(): + messages = [{'role': '<|User|>', 'content': prompt}, + {'role': '<|Assistant|>', 'content': ''}] + text = vl_chat_processor.apply_sft_template_for_multi_turn_prompts(conversations=messages, + sft_format=vl_chat_processor.sft_format, + system_prompt='') + text = text + vl_chat_processor.image_start_tag + + input_ids = torch.LongTensor(tokenizer.encode(text)) + output, patches = generate(input_ids, + width // 16 * 16, + height // 16 * 16, + cfg_weight=guidance, + parallel_size=parallel_size, + temperature=t2i_temperature) + images = unpack(patches, + width // 16 * 16, + height // 16 * 16, + parallel_size=parallel_size) + + return [Image.fromarray(images[i]).resize((768, 768), Image.LANCZOS) for i in range(parallel_size)] + + +# Gradio interface +with gr.Blocks() as demo: + gr.Markdown(value="# Multimodal Understanding") + with gr.Row(): + image_input = gr.Image() + with gr.Column(): + question_input = gr.Textbox(label="Question") + und_seed_input = gr.Number(label="Seed", precision=0, value=42) + top_p = gr.Slider(minimum=0, maximum=1, value=0.95, step=0.05, label="top_p") + temperature = gr.Slider(minimum=0, maximum=1, value=0.1, step=0.05, label="temperature") + + understanding_button = gr.Button("Chat") + understanding_output = gr.Textbox(label="Response") + + examples_inpainting = gr.Examples( + label="Multimodal Understanding examples", + examples=[ + [ + "explain this meme", + "images/doge.png", + ], + [ + "Convert the formula into latex code.", + "images/equation.png", + ], + ], + inputs=[question_input, image_input], + ) + + + gr.Markdown(value="# Text-to-Image Generation") + + + + with gr.Row(): + cfg_weight_input = gr.Slider(minimum=1, maximum=10, value=5, step=0.5, label="CFG Weight") + t2i_temperature = gr.Slider(minimum=0, maximum=1, value=1.0, step=0.05, label="temperature") + + prompt_input = gr.Textbox(label="Prompt. (Prompt in more detail can help produce better images!)") + seed_input = gr.Number(label="Seed (Optional)", precision=0, value=12345) + + generation_button = gr.Button("Generate Images") + + image_output = gr.Gallery(label="Generated Images", columns=2, rows=2, height=300) + + examples_t2i = gr.Examples( + label="Text to image generation examples.", + examples=[ + "Master shifu racoon wearing drip attire as a street gangster.", + "The face of a beautiful girl", + "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k", + "A glass of red wine on a reflective surface.", + "A cute and adorable baby fox with big brown eyes, autumn leaves in the background enchanting,immortal,fluffy, shiny mane,Petals,fairyism,unreal engine 5 and Octane Render,highly detailed, photorealistic, cinematic, natural colors.", + "The image features an intricately designed eye set against a circular backdrop adorned with ornate swirl patterns that evoke both realism and surrealism. At the center of attention is a strikingly vivid blue iris surrounded by delicate veins radiating outward from the pupil to create depth and intensity. The eyelashes are long and dark, casting subtle shadows on the skin around them which appears smooth yet slightly textured as if aged or weathered over time.\n\nAbove the eye, there's a stone-like structure resembling part of classical architecture, adding layers of mystery and timeless elegance to the composition. This architectural element contrasts sharply but harmoniously with the organic curves surrounding it. Below the eye lies another decorative motif reminiscent of baroque artistry, further enhancing the overall sense of eternity encapsulated within each meticulously crafted detail. \n\nOverall, the atmosphere exudes a mysterious aura intertwined seamlessly with elements suggesting timelessness, achieved through the juxtaposition of realistic textures and surreal artistic flourishes. Each component\u2014from the intricate designs framing the eye to the ancient-looking stone piece above\u2014contributes uniquely towards creating a visually captivating tableau imbued with enigmatic allure.", + ], + inputs=prompt_input, + ) + + understanding_button.click( + multimodal_understanding, + inputs=[image_input, question_input, und_seed_input, top_p, temperature], + outputs=understanding_output + ) + + generation_button.click( + fn=generate_image, + inputs=[prompt_input, seed_input, cfg_weight_input, t2i_temperature], + outputs=image_output + ) + +demo.launch(share=True) +# demo.queue(concurrency_count=1, max_size=10).launch(server_name="0.0.0.0", server_port=37906, root_path="/path") \ No newline at end of file diff --git a/images/teaser_januspro.png b/images/teaser_januspro.png new file mode 100644 index 0000000000000000000000000000000000000000..c203a0a58d8bb83714b5ea6ed196f032e18794f2 GIT binary patch literal 97999 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 KugheO1O5vroMLbQ literal 0 HcmV?d00001 diff --git a/janus/models/processing_vlm.py b/janus/models/processing_vlm.py index 97003d0..eba6895 100644 --- a/janus/models/processing_vlm.py +++ b/janus/models/processing_vlm.py @@ -88,6 +88,7 @@ class VLChatProcessor(ProcessorMixin): image_tag: str = "", image_start_tag: str = "", image_end_tag: str = "", + pad_tag: str = "<|▁pad▁|>", num_image_tokens: int = 576, add_special_token: bool = False, sft_format: str = "deepseek", @@ -108,6 +109,7 @@ class VLChatProcessor(ProcessorMixin): self.image_tag = image_tag self.image_start_tag = image_start_tag self.image_end_tag = image_end_tag + self.pad_tag = pad_tag self.num_image_tokens = num_image_tokens self.add_special_token = add_special_token @@ -203,9 +205,10 @@ class VLChatProcessor(ProcessorMixin): @property def pad_id(self): - pad_id = self.tokenizer.pad_token_id - if pad_id is None: - pad_id = self.tokenizer.eos_token_id + pad_id = self.tokenizer.vocab.get(self.pad_tag) + # pad_id = self.tokenizer.pad_token_id + # if pad_id is None: + # pad_id = self.tokenizer.eos_token_id return pad_id diff --git a/janus/utils/conversation.py b/janus/utils/conversation.py index 711512f..98609d0 100644 --- a/janus/utils/conversation.py +++ b/janus/utils/conversation.py @@ -275,7 +275,7 @@ register_conv_template( # deepseek template register_conv_template( Conversation( - name="deepseek", + name="deepseek_old", system_template="{system_message}", # system_message="You are a helpful assistant. Please answer truthfully and write out your " # "thinking step by step to be sure you get the right answer.", @@ -290,6 +290,23 @@ register_conv_template( stop_str=["User:", "<|end▁of▁sentence|>"], ) ) +register_conv_template( + Conversation( + name="deepseek", + system_template="{system_message}", + # system_message="You are a helpful assistant. Please answer truthfully and write out your " + # "thinking step by step to be sure you get the right answer.", + system_message="", + roles=("<|User|>", "<|Assistant|>"), + messages=(), + offset=0, + sep_style=SeparatorStyle.DeepSeek, + sep="\n\n", + sep2="<|end▁of▁sentence|>", + stop_token_ids=[100001], + stop_str=["<|User|>", "<|end▁of▁sentence|>"] + ) +) register_conv_template( Conversation(