k-l-lambda commited on
Commit
bdec242
1 Parent(s): 97ebe70

upgraded novita_client to 0.5.0

Browse files
Files changed (3) hide show
  1. README.md +1 -1
  2. app.py +47 -68
  3. requirements.txt +1 -1
README.md CHANGED
@@ -4,7 +4,7 @@ emoji: 📈
4
  colorFrom: indigo
5
  colorTo: red
6
  sdk: gradio
7
- sdk_version: 4.15.0
8
  app_file: app.py
9
  pinned: false
10
  license: mit
 
4
  colorFrom: indigo
5
  colorTo: red
6
  sdk: gradio
7
+ sdk_version: 4.19.2
8
  app_file: app.py
9
  pinned: false
10
  license: mit
app.py CHANGED
@@ -7,7 +7,7 @@ import base64
7
  from io import BytesIO
8
  import PIL.Image
9
  from typing import Tuple
10
- from novita_client import NovitaClient, V3TaskResponseStatus
11
  from time import time
12
 
13
  from style_template import styles
@@ -120,26 +120,26 @@ LORA_MODELS = [
120
 
121
 
122
  CONTROLNET_DICT = dict(
123
- pose={
124
- 'model_name': 'controlnet-openpose-sdxl-1.0',
125
- 'strength': 1,
126
- 'preprocessor': 'openpose',
127
- },
128
- depth={
129
- 'model_name': 'controlnet-depth-sdxl-1.0',
130
- 'strength': 1,
131
- 'preprocessor': 'depth',
132
- },
133
- canny={
134
- 'model_name': 'controlnet-canny-sdxl-1.0',
135
- 'strength': 1,
136
- 'preprocessor': 'canny',
137
- },
138
- lineart={
139
- 'model_name': 'controlnet-softedge-sdxl-1.0',
140
- 'strength': 1,
141
- 'preprocessor': 'lineart',
142
- },
143
  )
144
 
145
  last_check = 0
@@ -309,62 +309,41 @@ def generate_image (
309
  height = int(height * scaling)
310
 
311
  (
312
- CONTROLNET_DICT['pose']['strength'],
313
- CONTROLNET_DICT['canny']['strength'],
314
- CONTROLNET_DICT['depth']['strength'],
315
- CONTROLNET_DICT['lineart']['strength'],
316
  ) = [controlnet_strength_1, controlnet_strength_2, controlnet_strength_3, controlnet_strength_4]
317
 
318
- face_image_uploaded, ref_image_uploaded = upload_assets_with_cache(client, [face_image_path, ref_image_path])
319
-
320
- res = client._post('/v3/async/instant-id', {
321
- 'extra': {
322
- 'response_image_type': 'jpeg',
323
- },
324
- 'model_name': f'{model_name}.safetensors',
325
- 'face_image_assets_ids': [face_image_uploaded],
326
- 'ref_image_assets_ids': [ref_image_uploaded],
327
- 'prompt': prompt,
328
- 'negative_prompt': negative_prompt,
329
- 'controlnet': {
330
- 'units': [CONTROLNET_DICT[name] for name in controlnet_selection if name in CONTROLNET_DICT],
331
- },
332
- 'loras': [dict(
333
- model_name=f'{name}.safetensors',
334
- scale=1,
335
- ) for name in lora_selection],
336
- 'image_num': 1,
337
- 'steps': num_steps,
338
- 'seed': seed,
339
- 'guidance_scale': guidance_scale,
340
- 'sampler_name': scheduler,
341
- 'id_strength': identitynet_strength_ratio,
342
- 'adapter_strength': adapter_strength_ratio,
343
- 'width': width,
344
- 'height': height,
345
- })
346
-
347
- print('task_id:', res['task_id'])
348
- def progress (x):
349
  global last_check
350
  t = time()
351
  if t > last_check + 5:
352
  last_check = t
353
- print('progress:', t, x.task.status)
354
- final_res = client.wait_for_task_v3(res['task_id'], callback=progress)
355
- if final_res is None or final_res.task.status == V3TaskResponseStatus.TASK_STATUS_FAILED:
356
- raise RuntimeError(f'Novita task failed: {final_res and final_res.task.status}')
357
- print('status:', final_res.task.status)
358
- print('returned images:', final_res.images)
359
-
360
- final_res.download_images()
 
 
 
 
 
 
 
 
 
 
 
 
361
  except Exception as e:
362
  raise gr.Error(f'Error: {e}')
363
 
364
- #print('final_res:', final_res)
365
- #print('final_res.images_encoded:', final_res.images_encoded)
366
-
367
- image = PIL.Image.open(BytesIO(base64.b64decode(final_res.images_encoded[0])))
368
 
369
  return image, gr.update(visible=True)
370
 
 
7
  from io import BytesIO
8
  import PIL.Image
9
  from typing import Tuple
10
+ from novita_client import NovitaClient, V3TaskResponseStatus, InstantIDControlnetUnit
11
  from time import time
12
 
13
  from style_template import styles
 
120
 
121
 
122
  CONTROLNET_DICT = dict(
123
+ pose=InstantIDControlnetUnit(
124
+ model_name='controlnet-openpose-sdxl-1.0',
125
+ strength=1,
126
+ preprocessor='openpose',
127
+ ),
128
+ depth=InstantIDControlnetUnit(
129
+ model_name='controlnet-depth-sdxl-1.0',
130
+ strength=1,
131
+ preprocessor='depth',
132
+ ),
133
+ canny=InstantIDControlnetUnit(
134
+ model_name='controlnet-canny-sdxl-1.0',
135
+ strength=1,
136
+ preprocessor='canny',
137
+ ),
138
+ lineart=InstantIDControlnetUnit(
139
+ model_name='controlnet-softedge-sdxl-1.0',
140
+ strength=1,
141
+ preprocessor='lineart',
142
+ ),
143
  )
144
 
145
  last_check = 0
 
309
  height = int(height * scaling)
310
 
311
  (
312
+ CONTROLNET_DICT['pose'].strength,
313
+ CONTROLNET_DICT['canny'].strength,
314
+ CONTROLNET_DICT['depth'].strength,
315
+ CONTROLNET_DICT['lineart'].strength,
316
  ) = [controlnet_strength_1, controlnet_strength_2, controlnet_strength_3, controlnet_strength_4]
317
 
318
+ def progress_ (x):
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
319
  global last_check
320
  t = time()
321
  if t > last_check + 5:
322
  last_check = t
323
+ print('progress:', t, x)
324
+
325
+ res = client.instant_id(
326
+ model_name=f'{model_name}.safetensors',
327
+ face_images=[face_image_path],
328
+ ref_images=[ref_image_path],
329
+ prompt=prompt,
330
+ negative_prompt=negative_prompt,
331
+ controlnets=[CONTROLNET_DICT[name] for name in controlnet_selection if name in CONTROLNET_DICT],
332
+ steps=num_steps,
333
+ seed=seed,
334
+ guidance_scale=guidance_scale,
335
+ sampler_name=scheduler,
336
+ id_strength=identitynet_strength_ratio,
337
+ adapter_strength=adapter_strength_ratio,
338
+ width=width,
339
+ height=height,
340
+ #response_image_type='jpeg', # wait for novita_client 0.5.1 to fix this argument
341
+ callback=progress_,
342
+ )
343
  except Exception as e:
344
  raise gr.Error(f'Error: {e}')
345
 
346
+ image = PIL.Image.open(BytesIO(base64.b64decode(res.images_encoded[0])))
 
 
 
347
 
348
  return image, gr.update(visible=True)
349
 
requirements.txt CHANGED
@@ -1,2 +1,2 @@
1
- novita_client==0.4.12
2
  gradio==4.15.0
 
1
+ novita_client==0.5.0
2
  gradio==4.15.0