hakakusan commited on
Commit
f117889
·
verified ·
1 Parent(s): 5784262

Experiment with Huihui Qwen3-VL text encoder

Browse files
Files changed (1) hide show
  1. app.py +21 -2
app.py CHANGED
@@ -13,6 +13,7 @@ import gradio as gr
13
  import spaces
14
  import torch
15
  from huggingface_hub import hf_hub_download
 
16
 
17
  from diffusers import Ideogram4Pipeline
18
  from diffusers.quantizers.bitsandbytes.bnb_quantizer import BnB4BitDiffusersQuantizer
@@ -30,6 +31,7 @@ BnB4BitDiffusersQuantizer.check_quantized_param_shape = _check_quantized_param_s
30
 
31
  MODEL_ID = "ideogram-ai/ideogram-4-nf4"
32
  AOTI_REPO = "multimodalart/i4-block-aoti"
 
33
  MAX_SEED = 2**31 - 1
34
  HF_TOKEN = os.environ.get("HF_TOKEN")
35
 
@@ -96,7 +98,23 @@ def normalize_caption(raw_caption):
96
 
97
 
98
  t = time.perf_counter()
99
- pipe = Ideogram4Pipeline.from_pretrained(MODEL_ID, torch_dtype=torch.bfloat16, token=HF_TOKEN)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
100
  pipe.transformer.dequantize()
101
  pipe.unconditional_transformer.dequantize()
102
  pipe.to("cuda")
@@ -180,7 +198,8 @@ textarea { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace
180
  with gr.Blocks(theme=gr.themes.Citrus(), title="Ideogram 4 JSON Lab", css=CSS) as demo:
181
  gr.Markdown(
182
  "# Ideogram 4 JSON Lab\n"
183
- "Direct structured JSON caption input for Ideogram 4. No remote magic prompt, no local Qwen prompt upsampling."
 
184
  )
185
 
186
  with gr.Row():
 
13
  import spaces
14
  import torch
15
  from huggingface_hub import hf_hub_download
16
+ from transformers import AutoModel
17
 
18
  from diffusers import Ideogram4Pipeline
19
  from diffusers.quantizers.bitsandbytes.bnb_quantizer import BnB4BitDiffusersQuantizer
 
31
 
32
  MODEL_ID = "ideogram-ai/ideogram-4-nf4"
33
  AOTI_REPO = "multimodalart/i4-block-aoti"
34
+ TEXT_ENCODER_ID = os.environ.get("TEXT_ENCODER_ID", "huihui-ai/Huihui-Qwen3-VL-8B-Instruct-abliterated")
35
  MAX_SEED = 2**31 - 1
36
  HF_TOKEN = os.environ.get("HF_TOKEN")
37
 
 
98
 
99
 
100
  t = time.perf_counter()
101
+ if TEXT_ENCODER_ID:
102
+ text_encoder = AutoModel.from_pretrained(
103
+ TEXT_ENCODER_ID,
104
+ torch_dtype=torch.bfloat16,
105
+ token=HF_TOKEN,
106
+ low_cpu_mem_usage=True,
107
+ )
108
+ print(f"[model] using alternate text encoder: {TEXT_ENCODER_ID}", flush=True)
109
+ else:
110
+ text_encoder = None
111
+
112
+ pipe = Ideogram4Pipeline.from_pretrained(
113
+ MODEL_ID,
114
+ text_encoder=text_encoder,
115
+ torch_dtype=torch.bfloat16,
116
+ token=HF_TOKEN,
117
+ )
118
  pipe.transformer.dequantize()
119
  pipe.unconditional_transformer.dequantize()
120
  pipe.to("cuda")
 
198
  with gr.Blocks(theme=gr.themes.Citrus(), title="Ideogram 4 JSON Lab", css=CSS) as demo:
199
  gr.Markdown(
200
  "# Ideogram 4 JSON Lab\n"
201
+ "Direct structured JSON caption input for Ideogram 4. No remote magic prompt, no local Qwen prompt upsampling.\n\n"
202
+ f"Text encoder: `{TEXT_ENCODER_ID or 'ideogram-ai/ideogram-4-nf4 bundled Qwen3-VL'}`"
203
  )
204
 
205
  with gr.Row():