libcom 0.1.8__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (310) hide show
  1. libcom/__init__.py +23 -0
  2. libcom/color_transfer/__init__.py +3 -0
  3. libcom/color_transfer/reinhard.py +57 -0
  4. libcom/fopa_heat_map/__init__.py +4 -0
  5. libcom/fopa_heat_map/fopa_heat_map.py +212 -0
  6. libcom/fopa_heat_map/source/__init__.py +0 -0
  7. libcom/fopa_heat_map/source/backbone/ResNet.py +229 -0
  8. libcom/fopa_heat_map/source/backbone/__init__.py +0 -0
  9. libcom/fopa_heat_map/source/data/OBdataset.py +292 -0
  10. libcom/fopa_heat_map/source/data/__init__.py +0 -0
  11. libcom/fopa_heat_map/source/data/all_transforms.py +25 -0
  12. libcom/fopa_heat_map/source/network/BaseBlocks.py +26 -0
  13. libcom/fopa_heat_map/source/network/DynamicModules.py +43 -0
  14. libcom/fopa_heat_map/source/network/ObPlaNet_simple.py +112 -0
  15. libcom/fopa_heat_map/source/network/__init__.py +1 -0
  16. libcom/fopa_heat_map/source/network/tensor_ops.py +37 -0
  17. libcom/fopa_heat_map/source/prepare_multi_fg_scales.py +85 -0
  18. libcom/fos_score/__init__.py +4 -0
  19. libcom/fos_score/fos_score_prediction.py +218 -0
  20. libcom/fos_score/source/__init__.py +0 -0
  21. libcom/fos_score/source/config/__init__.py +1 -0
  22. libcom/fos_score/source/config/config.py +68 -0
  23. libcom/fos_score/source/config/config.sfosd.yaml +43 -0
  24. libcom/fos_score/source/config/config_rfosd.yaml +43 -0
  25. libcom/fos_score/source/loss_function.py +118 -0
  26. libcom/fos_score/source/networks.py +355 -0
  27. libcom/harmony_score/__init__.py +3 -0
  28. libcom/harmony_score/harmony_score_prediction.py +119 -0
  29. libcom/harmony_score/source/__init__.py +0 -0
  30. libcom/harmony_score/source/bargainnet.py +226 -0
  31. libcom/image_harmonization/__init__.py +4 -0
  32. libcom/image_harmonization/image_harmonization.py +193 -0
  33. libcom/image_harmonization/source/__init__.py +0 -0
  34. libcom/image_harmonization/source/functions.py +747 -0
  35. libcom/image_harmonization/source/pct_net.py +85 -0
  36. libcom/image_harmonization/source/src/__init__.py +0 -0
  37. libcom/image_harmonization/source/src/lbm/__init__.py +0 -0
  38. libcom/image_harmonization/source/src/lbm/config.py +141 -0
  39. libcom/image_harmonization/source/src/lbm/data/__init__.py +62 -0
  40. libcom/image_harmonization/source/src/lbm/data/datasets/__init__.py +9 -0
  41. libcom/image_harmonization/source/src/lbm/data/datasets/collation_fn.py +41 -0
  42. libcom/image_harmonization/source/src/lbm/data/datasets/dataset.py +243 -0
  43. libcom/image_harmonization/source/src/lbm/data/datasets/datasets_config.py +42 -0
  44. libcom/image_harmonization/source/src/lbm/data/filters/__init__.py +12 -0
  45. libcom/image_harmonization/source/src/lbm/data/filters/base.py +21 -0
  46. libcom/image_harmonization/source/src/lbm/data/filters/filter_wrapper.py +36 -0
  47. libcom/image_harmonization/source/src/lbm/data/filters/filters.py +33 -0
  48. libcom/image_harmonization/source/src/lbm/data/filters/filters_config.py +32 -0
  49. libcom/image_harmonization/source/src/lbm/data/mappers/__init__.py +19 -0
  50. libcom/image_harmonization/source/src/lbm/data/mappers/base.py +26 -0
  51. libcom/image_harmonization/source/src/lbm/data/mappers/mappers.py +135 -0
  52. libcom/image_harmonization/source/src/lbm/data/mappers/mappers_config.py +109 -0
  53. libcom/image_harmonization/source/src/lbm/data/mappers/mappers_wrapper.py +31 -0
  54. libcom/image_harmonization/source/src/lbm/inference/__init__.py +4 -0
  55. libcom/image_harmonization/source/src/lbm/inference/inference.py +70 -0
  56. libcom/image_harmonization/source/src/lbm/inference/utils.py +222 -0
  57. libcom/image_harmonization/source/src/lbm/models/__init__.py +0 -0
  58. libcom/image_harmonization/source/src/lbm/models/base/__init__.py +4 -0
  59. libcom/image_harmonization/source/src/lbm/models/base/base_model.py +66 -0
  60. libcom/image_harmonization/source/src/lbm/models/base/model_config.py +8 -0
  61. libcom/image_harmonization/source/src/lbm/models/embedders/__init__.py +4 -0
  62. libcom/image_harmonization/source/src/lbm/models/embedders/base/__init__.py +4 -0
  63. libcom/image_harmonization/source/src/lbm/models/embedders/base/base_conditioner.py +60 -0
  64. libcom/image_harmonization/source/src/lbm/models/embedders/base/base_conditioner_config.py +27 -0
  65. libcom/image_harmonization/source/src/lbm/models/embedders/conditioners_wrapper.py +114 -0
  66. libcom/image_harmonization/source/src/lbm/models/embedders/latents_concat/__init__.py +4 -0
  67. libcom/image_harmonization/source/src/lbm/models/embedders/latents_concat/latents_concat_embedder_config.py +31 -0
  68. libcom/image_harmonization/source/src/lbm/models/embedders/latents_concat/latents_concat_embedder_model.py +80 -0
  69. libcom/image_harmonization/source/src/lbm/models/lbm/__init__.py +4 -0
  70. libcom/image_harmonization/source/src/lbm/models/lbm/lbm_config.py +101 -0
  71. libcom/image_harmonization/source/src/lbm/models/lbm/lbm_model.py +359 -0
  72. libcom/image_harmonization/source/src/lbm/models/unets/__init__.py +14 -0
  73. libcom/image_harmonization/source/src/lbm/models/unets/unet.py +148 -0
  74. libcom/image_harmonization/source/src/lbm/models/utils.py +377 -0
  75. libcom/image_harmonization/source/src/lbm/models/vae/__init__.py +4 -0
  76. libcom/image_harmonization/source/src/lbm/models/vae/autoencoderKL.py +136 -0
  77. libcom/image_harmonization/source/src/lbm/models/vae/autoencoderKL_config.py +27 -0
  78. libcom/image_harmonization/source/src/lbm/trainer/__init__.py +85 -0
  79. libcom/image_harmonization/source/src/lbm/trainer/loggers.py +324 -0
  80. libcom/image_harmonization/source/src/lbm/trainer/trainer.py +199 -0
  81. libcom/image_harmonization/source/src/lbm/trainer/training_config.py +82 -0
  82. libcom/image_harmonization/source/src/lbm/trainer/utils.py +193 -0
  83. libcom/inharmonious_region_localization/__init__.py +4 -0
  84. libcom/inharmonious_region_localization/inharmonious_region_localization.py +97 -0
  85. libcom/inharmonious_region_localization/source/__init__.py +0 -0
  86. libcom/inharmonious_region_localization/source/blocks.py +368 -0
  87. libcom/inharmonious_region_localization/source/functions.py +679 -0
  88. libcom/inharmonious_region_localization/source/madis_net.py +79 -0
  89. libcom/kontext_blending_harmonization/__init__.py +3 -0
  90. libcom/kontext_blending_harmonization/kontext_blending_harmonization.py +148 -0
  91. libcom/kontext_blending_harmonization/source/__init__.py +0 -0
  92. libcom/kontext_blending_harmonization/source/pipeline.py +1135 -0
  93. libcom/naive_composition/__init__.py +3 -0
  94. libcom/naive_composition/generate_composite_image.py +116 -0
  95. libcom/opa_score/__init__.py +3 -0
  96. libcom/opa_score/opa_score_prediction.py +101 -0
  97. libcom/opa_score/source/__init__.py +3 -0
  98. libcom/opa_score/source/object_place_net.py +55 -0
  99. libcom/opa_score/source/oblect_place_config.py +66 -0
  100. libcom/opa_score/source/resnet_4ch.py +213 -0
  101. libcom/os_insert/__init__.py +3 -0
  102. libcom/os_insert/diffusers_osinsert/__init__.py +78 -0
  103. libcom/os_insert/diffusers_osinsert/_patched_pipeline_flux_fill.py +878 -0
  104. libcom/os_insert/os_insert.py +534 -0
  105. libcom/os_insert/source/__init__.py +1 -0
  106. libcom/os_insert/source/ia_utils.py +183 -0
  107. libcom/os_insert/source/insertanything_infer.py +529 -0
  108. libcom/os_insert/source/ldm/__init__.py +0 -0
  109. libcom/os_insert/source/ldm/data/__init__.py +0 -0
  110. libcom/os_insert/source/ldm/data/base.py +23 -0
  111. libcom/os_insert/source/ldm/data/datamodule.py +128 -0
  112. libcom/os_insert/source/ldm/data/imagenet.py +394 -0
  113. libcom/os_insert/source/ldm/data/lsun.py +92 -0
  114. libcom/os_insert/source/ldm/data/open_images.py +728 -0
  115. libcom/os_insert/source/ldm/lr_scheduler.py +98 -0
  116. libcom/os_insert/source/ldm/models/__init__.py +0 -0
  117. libcom/os_insert/source/ldm/models/autoencoder.py +443 -0
  118. libcom/os_insert/source/ldm/models/diffusion/__init__.py +0 -0
  119. libcom/os_insert/source/ldm/models/diffusion/classifier.py +267 -0
  120. libcom/os_insert/source/ldm/models/diffusion/ddim.py +263 -0
  121. libcom/os_insert/source/ldm/models/diffusion/ddpm.py +1417 -0
  122. libcom/os_insert/source/ldm/models/diffusion/plms.py +252 -0
  123. libcom/os_insert/source/ldm/modules/__init__.py +0 -0
  124. libcom/os_insert/source/ldm/modules/attention.py +261 -0
  125. libcom/os_insert/source/ldm/modules/diffusionmodules/__init__.py +0 -0
  126. libcom/os_insert/source/ldm/modules/diffusionmodules/model.py +835 -0
  127. libcom/os_insert/source/ldm/modules/diffusionmodules/openaimodel.py +1108 -0
  128. libcom/os_insert/source/ldm/modules/diffusionmodules/util.py +267 -0
  129. libcom/os_insert/source/ldm/modules/distributions/__init__.py +0 -0
  130. libcom/os_insert/source/ldm/modules/distributions/distributions.py +92 -0
  131. libcom/os_insert/source/ldm/modules/ema.py +76 -0
  132. libcom/os_insert/source/ldm/modules/encoders/__init__.py +0 -0
  133. libcom/os_insert/source/ldm/modules/encoders/modules.py +190 -0
  134. libcom/os_insert/source/ldm/modules/encoders/xf.py +130 -0
  135. libcom/os_insert/source/ldm/modules/losses/__init__.py +1 -0
  136. libcom/os_insert/source/ldm/modules/losses/contperceptual.py +111 -0
  137. libcom/os_insert/source/ldm/modules/losses/vqperceptual.py +167 -0
  138. libcom/os_insert/source/ldm/modules/x_transformer.py +641 -0
  139. libcom/os_insert/source/ldm/util.py +203 -0
  140. libcom/os_insert/source/objectstitch_data.py +66 -0
  141. libcom/os_insert/source/objectstitch_infer.py +618 -0
  142. libcom/os_insert/source/sam_on_objectstitch.py +253 -0
  143. libcom/os_insert/source/utils.py +41 -0
  144. libcom/os_insert/source/v1.yaml +108 -0
  145. libcom/painterly_image_harmonization/__init__.py +4 -0
  146. libcom/painterly_image_harmonization/painterly_image_harmonization.py +215 -0
  147. libcom/painterly_image_harmonization/source/PHDNet/__init__.py +0 -0
  148. libcom/painterly_image_harmonization/source/PHDNet/networks.py +202 -0
  149. libcom/painterly_image_harmonization/source/PHDNet/phdnet.py +47 -0
  150. libcom/painterly_image_harmonization/source/PHDNet/phdnet_config.py +18 -0
  151. libcom/painterly_image_harmonization/source/PHDiffusion/__init__.py +0 -0
  152. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/__init__.py +0 -0
  153. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/inference_base.py +300 -0
  154. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/lr_scheduler.py +98 -0
  155. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/models/__init__.py +0 -0
  156. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/models/autoencoder.py +211 -0
  157. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/models/diffusion/__init__.py +3 -0
  158. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/models/diffusion/ddim.py +336 -0
  159. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/models/diffusion/ddpm.py +1400 -0
  160. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/models/diffusion/dpm_solver/__init__.py +1 -0
  161. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/models/diffusion/dpm_solver/dpm_solver.py +1217 -0
  162. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/models/diffusion/dpm_solver/sampler.py +87 -0
  163. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/models/diffusion/plms.py +243 -0
  164. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/models/diffusion/scheduling_pndm.py +518 -0
  165. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/modules/__init__.py +0 -0
  166. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/modules/attention.py +378 -0
  167. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/modules/diffusionmodules/__init__.py +0 -0
  168. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/modules/diffusionmodules/model.py +857 -0
  169. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/modules/diffusionmodules/openaimodel.py +823 -0
  170. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/modules/diffusionmodules/util.py +270 -0
  171. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/modules/distributions/__init__.py +0 -0
  172. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/modules/distributions/distributions.py +92 -0
  173. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/modules/ema.py +80 -0
  174. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/modules/encoders/__init__.py +0 -0
  175. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/modules/encoders/adapter.py +213 -0
  176. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/modules/encoders/modules.py +82 -0
  177. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/modules/extra_condition/__init__.py +1 -0
  178. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/modules/extra_condition/api.py +269 -0
  179. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/modules/extra_condition/midas/__init__.py +0 -0
  180. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/modules/extra_condition/midas/api.py +175 -0
  181. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/modules/extra_condition/midas/midas/__init__.py +0 -0
  182. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/modules/extra_condition/midas/midas/base_model.py +16 -0
  183. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/modules/extra_condition/midas/midas/blocks.py +342 -0
  184. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/modules/extra_condition/midas/midas/dpt_depth.py +109 -0
  185. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/modules/extra_condition/midas/midas/midas_net.py +76 -0
  186. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/modules/extra_condition/midas/midas/midas_net_custom.py +128 -0
  187. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/modules/extra_condition/midas/midas/transforms.py +234 -0
  188. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/modules/extra_condition/midas/midas/vit.py +491 -0
  189. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/modules/extra_condition/midas/utils.py +189 -0
  190. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/modules/extra_condition/model_edge.py +653 -0
  191. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/modules/extra_condition/openpose/__init__.py +0 -0
  192. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/modules/extra_condition/openpose/api.py +35 -0
  193. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/modules/extra_condition/openpose/body.py +209 -0
  194. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/modules/extra_condition/openpose/hand.py +75 -0
  195. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/modules/extra_condition/openpose/model.py +178 -0
  196. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/modules/extra_condition/openpose/util.py +203 -0
  197. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/modules/extra_condition/utils.py +72 -0
  198. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/modules/fusion/__init__.py +0 -0
  199. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/modules/fusion/dual_encoder_fusion.py +93 -0
  200. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/modules/image_degradation/__init__.py +2 -0
  201. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/modules/image_degradation/bsrgan.py +730 -0
  202. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/modules/image_degradation/bsrgan_light.py +651 -0
  203. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/modules/image_degradation/utils_image.py +916 -0
  204. libcom/painterly_image_harmonization/source/PHDiffusion/ldm/util.py +200 -0
  205. libcom/painterly_image_harmonization/source/PHDiffusion/stable_diffusion.yaml +75 -0
  206. libcom/painterly_image_harmonization/source/__init__.py +0 -0
  207. libcom/reflection_generation/__init__.py +3 -0
  208. libcom/reflection_generation/reflection_generation.py +174 -0
  209. libcom/reflection_generation/source/PostProcessModel.py +513 -0
  210. libcom/reflection_generation/source/__init__.py +0 -0
  211. libcom/reflection_generation/source/cldm/__init__.py +0 -0
  212. libcom/reflection_generation/source/cldm/base_network.py +166 -0
  213. libcom/reflection_generation/source/cldm/cldm.py +509 -0
  214. libcom/reflection_generation/source/cldm/ddim_hacked.py +317 -0
  215. libcom/reflection_generation/source/cldm/hack.py +111 -0
  216. libcom/reflection_generation/source/cldm/logger.py +127 -0
  217. libcom/reflection_generation/source/cldm/model.py +26 -0
  218. libcom/reflection_generation/source/cldm_v15.yaml +81 -0
  219. libcom/reflection_generation/source/cluster_feature.py +109 -0
  220. libcom/reflection_generation/source/ldm/__init__.py +0 -0
  221. libcom/reflection_generation/source/ldm/models/__init__.py +0 -0
  222. libcom/reflection_generation/source/ldm/models/autoencoder.py +219 -0
  223. libcom/reflection_generation/source/ldm/models/diffusion/__init__.py +0 -0
  224. libcom/reflection_generation/source/ldm/models/diffusion/attention_processor.py +188 -0
  225. libcom/reflection_generation/source/ldm/models/diffusion/ddim.py +340 -0
  226. libcom/reflection_generation/source/ldm/models/diffusion/ddpm.py +1892 -0
  227. libcom/reflection_generation/source/ldm/models/diffusion/dpm_solver/__init__.py +1 -0
  228. libcom/reflection_generation/source/ldm/models/diffusion/dpm_solver/dpm_solver.py +1154 -0
  229. libcom/reflection_generation/source/ldm/models/diffusion/dpm_solver/sampler.py +87 -0
  230. libcom/reflection_generation/source/ldm/models/diffusion/ip_adapter.py +57 -0
  231. libcom/reflection_generation/source/ldm/models/diffusion/plms.py +244 -0
  232. libcom/reflection_generation/source/ldm/models/diffusion/sampling_util.py +22 -0
  233. libcom/reflection_generation/source/ldm/modules/__init__.py +0 -0
  234. libcom/reflection_generation/source/ldm/modules/attention.py +341 -0
  235. libcom/reflection_generation/source/ldm/modules/diffusionmodules/__init__.py +0 -0
  236. libcom/reflection_generation/source/ldm/modules/diffusionmodules/model.py +852 -0
  237. libcom/reflection_generation/source/ldm/modules/diffusionmodules/openaimodel.py +786 -0
  238. libcom/reflection_generation/source/ldm/modules/diffusionmodules/upscaling.py +81 -0
  239. libcom/reflection_generation/source/ldm/modules/diffusionmodules/util.py +280 -0
  240. libcom/reflection_generation/source/ldm/modules/distributions/__init__.py +0 -0
  241. libcom/reflection_generation/source/ldm/modules/distributions/distributions.py +92 -0
  242. libcom/reflection_generation/source/ldm/modules/ema.py +80 -0
  243. libcom/reflection_generation/source/ldm/modules/encoders/__init__.py +0 -0
  244. libcom/reflection_generation/source/ldm/modules/encoders/modules.py +214 -0
  245. libcom/reflection_generation/source/ldm/modules/image_degradation/__init__.py +0 -0
  246. libcom/reflection_generation/source/ldm/modules/image_degradation/bsrgan.py +730 -0
  247. libcom/reflection_generation/source/ldm/modules/image_degradation/bsrgan_light.py +651 -0
  248. libcom/reflection_generation/source/ldm/modules/image_degradation/utils_image.py +916 -0
  249. libcom/reflection_generation/source/ldm/util.py +198 -0
  250. libcom/reflection_generation/source/local_clip.py +749 -0
  251. libcom/reflection_generation/source/tool_add_control.py +49 -0
  252. libcom/shadow_generation/__init__.py +3 -0
  253. libcom/shadow_generation/shadow_generation.py +754 -0
  254. libcom/shadow_generation/source/PostProcessModel.py +511 -0
  255. libcom/shadow_generation/source/__init__.py +0 -0
  256. libcom/shadow_generation/source/attention_processor.py +234 -0
  257. libcom/shadow_generation/source/cldm/__init__.py +0 -0
  258. libcom/shadow_generation/source/cldm/base_network.py +166 -0
  259. libcom/shadow_generation/source/cldm/cldm.py +524 -0
  260. libcom/shadow_generation/source/cldm/model.py +28 -0
  261. libcom/shadow_generation/source/ldm/__init__.py +0 -0
  262. libcom/shadow_generation/source/ldm/models/__init__.py +0 -0
  263. libcom/shadow_generation/source/ldm/models/autoencoder.py +219 -0
  264. libcom/shadow_generation/source/ldm/models/diffusion/__init__.py +0 -0
  265. libcom/shadow_generation/source/ldm/models/diffusion/attention_processor.py +188 -0
  266. libcom/shadow_generation/source/ldm/models/diffusion/ddim.py +340 -0
  267. libcom/shadow_generation/source/ldm/models/diffusion/ddpm.py +1893 -0
  268. libcom/shadow_generation/source/ldm/models/diffusion/dpm_solver/__init__.py +1 -0
  269. libcom/shadow_generation/source/ldm/models/diffusion/dpm_solver/dpm_solver.py +1154 -0
  270. libcom/shadow_generation/source/ldm/models/diffusion/dpm_solver/sampler.py +87 -0
  271. libcom/shadow_generation/source/ldm/models/diffusion/ip_adapter.py +57 -0
  272. libcom/shadow_generation/source/ldm/models/diffusion/plms.py +244 -0
  273. libcom/shadow_generation/source/ldm/models/diffusion/sampling_util.py +22 -0
  274. libcom/shadow_generation/source/ldm/modules/__init__.py +0 -0
  275. libcom/shadow_generation/source/ldm/modules/attention.py +341 -0
  276. libcom/shadow_generation/source/ldm/modules/diffusionmodules/__init__.py +0 -0
  277. libcom/shadow_generation/source/ldm/modules/diffusionmodules/model.py +852 -0
  278. libcom/shadow_generation/source/ldm/modules/diffusionmodules/openaimodel.py +786 -0
  279. libcom/shadow_generation/source/ldm/modules/diffusionmodules/upscaling.py +81 -0
  280. libcom/shadow_generation/source/ldm/modules/diffusionmodules/util.py +270 -0
  281. libcom/shadow_generation/source/ldm/modules/distributions/__init__.py +0 -0
  282. libcom/shadow_generation/source/ldm/modules/distributions/distributions.py +92 -0
  283. libcom/shadow_generation/source/ldm/modules/ema.py +80 -0
  284. libcom/shadow_generation/source/ldm/modules/encoders/__init__.py +0 -0
  285. libcom/shadow_generation/source/ldm/modules/encoders/modules.py +214 -0
  286. libcom/shadow_generation/source/ldm/modules/image_degradation/__init__.py +2 -0
  287. libcom/shadow_generation/source/ldm/modules/image_degradation/bsrgan.py +730 -0
  288. libcom/shadow_generation/source/ldm/modules/image_degradation/bsrgan_light.py +651 -0
  289. libcom/shadow_generation/source/ldm/modules/image_degradation/utils_image.py +916 -0
  290. libcom/shadow_generation/source/ldm/modules/midas/__init__.py +0 -0
  291. libcom/shadow_generation/source/ldm/modules/midas/api.py +170 -0
  292. libcom/shadow_generation/source/ldm/modules/midas/midas/__init__.py +0 -0
  293. libcom/shadow_generation/source/ldm/modules/midas/midas/base_model.py +16 -0
  294. libcom/shadow_generation/source/ldm/modules/midas/midas/blocks.py +342 -0
  295. libcom/shadow_generation/source/ldm/modules/midas/midas/dpt_depth.py +109 -0
  296. libcom/shadow_generation/source/ldm/modules/midas/midas/midas_net.py +76 -0
  297. libcom/shadow_generation/source/ldm/modules/midas/midas/midas_net_custom.py +128 -0
  298. libcom/shadow_generation/source/ldm/modules/midas/midas/transforms.py +234 -0
  299. libcom/shadow_generation/source/ldm/modules/midas/midas/vit.py +491 -0
  300. libcom/shadow_generation/source/ldm/modules/midas/utils.py +189 -0
  301. libcom/shadow_generation/source/ldm/util.py +199 -0
  302. libcom/utils/__init__.py +0 -0
  303. libcom/utils/environment.py +12 -0
  304. libcom/utils/model_download.py +67 -0
  305. libcom/utils/process_image.py +108 -0
  306. libcom-0.1.8.dist-info/METADATA +157 -0
  307. libcom-0.1.8.dist-info/RECORD +310 -0
  308. libcom-0.1.8.dist-info/WHEEL +5 -0
  309. libcom-0.1.8.dist-info/licenses/LICENSE +201 -0
  310. libcom-0.1.8.dist-info/top_level.txt +1 -0
@@ -0,0 +1,234 @@
1
+ # modified from https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py
2
+ import torch
3
+ import torch.nn as nn
4
+ import torch.nn.functional as F
5
+ import numpy as np
6
+ from typing import Any, Callable, Dict, List, Optional, Tuple, Union
7
+ import inspect
8
+ import warnings
9
+ from packaging import version
10
+
11
+ class AttnProcessor(nn.Module):
12
+ r"""
13
+ Default processor for performing attention-related computations.
14
+ """
15
+
16
+ def __init__(
17
+ self,
18
+ hidden_size=None,
19
+ cross_attention_dim=None,
20
+ ):
21
+ super().__init__()
22
+
23
+ def __call__(
24
+ self,
25
+ attn,
26
+ hidden_states,
27
+ encoder_hidden_states=None,
28
+ attention_mask=None,
29
+ temb=None,
30
+ *args,
31
+ **kwargs,
32
+ ):
33
+ residual = hidden_states
34
+
35
+ if attn.spatial_norm is not None:
36
+ hidden_states = attn.spatial_norm(hidden_states, temb)
37
+
38
+ input_ndim = hidden_states.ndim
39
+
40
+ if input_ndim == 4:
41
+ batch_size, channel, height, width = hidden_states.shape
42
+ hidden_states = hidden_states.view(batch_size, channel, height * width).transpose(1, 2)
43
+
44
+ batch_size, sequence_length, _ = (
45
+ hidden_states.shape if encoder_hidden_states is None else encoder_hidden_states.shape
46
+ )
47
+ attention_mask = attn.prepare_attention_mask(attention_mask, sequence_length, batch_size)
48
+
49
+ if attn.group_norm is not None:
50
+ hidden_states = attn.group_norm(hidden_states.transpose(1, 2)).transpose(1, 2)
51
+
52
+ query = attn.to_q(hidden_states)
53
+
54
+ if encoder_hidden_states is None:
55
+ encoder_hidden_states = hidden_states
56
+ elif attn.norm_cross:
57
+ encoder_hidden_states = attn.norm_encoder_hidden_states(encoder_hidden_states)
58
+
59
+ key = attn.to_k(encoder_hidden_states)
60
+ value = attn.to_v(encoder_hidden_states)
61
+
62
+ query = attn.head_to_batch_dim(query)
63
+ key = attn.head_to_batch_dim(key)
64
+ value = attn.head_to_batch_dim(value)
65
+
66
+ attention_probs = attn.get_attention_scores(query, key, attention_mask)
67
+ hidden_states = torch.bmm(attention_probs, value)
68
+ hidden_states = attn.batch_to_head_dim(hidden_states)
69
+
70
+ # linear proj
71
+ hidden_states = attn.to_out[0](hidden_states)
72
+ # dropout
73
+ hidden_states = attn.to_out[1](hidden_states)
74
+
75
+ if input_ndim == 4:
76
+ hidden_states = hidden_states.transpose(-1, -2).reshape(batch_size, channel, height, width)
77
+
78
+ if attn.residual_connection:
79
+ hidden_states = hidden_states + residual
80
+
81
+ hidden_states = hidden_states / attn.rescale_output_factor
82
+
83
+ return hidden_states
84
+
85
+ class IPAttnProcessor(nn.Module):
86
+ r"""
87
+ Attention processor for IP-Adapater.
88
+ Args:
89
+ hidden_size (`int`):
90
+ The hidden size of the attention layer.
91
+ cross_attention_dim (`int`):
92
+ The number of channels in the `encoder_hidden_states`.
93
+ scale (`float`, defaults to 1.0):
94
+ the weight scale of image prompt.
95
+ num_tokens (`int`, defaults to 4 when do ip_adapter_plus it should be 16):
96
+ The context length of the image features.
97
+ """
98
+
99
+ def __init__(self, hidden_size, cross_attention_dim=None, scale=1.0, num_tokens=64):
100
+ super().__init__()
101
+
102
+ self.hidden_size = hidden_size
103
+ self.cross_attention_dim = cross_attention_dim
104
+ self.scale = scale
105
+ self.num_tokens = num_tokens
106
+
107
+ self.to_k_ip = nn.Linear(cross_attention_dim or hidden_size, hidden_size, bias=False)
108
+ self.to_v_ip = nn.Linear(cross_attention_dim or hidden_size, hidden_size, bias=False)
109
+
110
+ def __call__(
111
+ self,
112
+ attn,
113
+ hidden_states,
114
+ encoder_hidden_states=None,
115
+ attention_mask=None,
116
+ temb=None,
117
+ *args,
118
+ **kwargs,
119
+ ):
120
+ residual = hidden_states
121
+
122
+ if attn.spatial_norm is not None:
123
+ hidden_states = attn.spatial_norm(hidden_states, temb)
124
+
125
+ input_ndim = hidden_states.ndim
126
+
127
+ if input_ndim == 4:
128
+ batch_size, channel, height, width = hidden_states.shape
129
+ hidden_states = hidden_states.view(batch_size, channel, height * width).transpose(1, 2)
130
+
131
+ batch_size, sequence_length, _ = (
132
+ hidden_states.shape if encoder_hidden_states is None else encoder_hidden_states.shape
133
+ )
134
+ attention_mask = attn.prepare_attention_mask(attention_mask, sequence_length, batch_size)
135
+
136
+ if attn.group_norm is not None:
137
+ hidden_states = attn.group_norm(hidden_states.transpose(1, 2)).transpose(1, 2)
138
+
139
+ query = attn.to_q(hidden_states)
140
+
141
+ if encoder_hidden_states is None:
142
+ encoder_hidden_states = hidden_states
143
+ else:
144
+ # get encoder_hidden_states, ip_hidden_states
145
+ end_pos = encoder_hidden_states.shape[1] - self.num_tokens
146
+ encoder_hidden_states, ip_hidden_states = (
147
+ encoder_hidden_states[:, :end_pos, :],
148
+ encoder_hidden_states[:, end_pos:, :],
149
+ )
150
+ if attn.norm_cross:
151
+ encoder_hidden_states = attn.norm_encoder_hidden_states(encoder_hidden_states)
152
+
153
+ key = attn.to_k(encoder_hidden_states)
154
+ value = attn.to_v(encoder_hidden_states)
155
+
156
+ query = attn.head_to_batch_dim(query)
157
+ key = attn.head_to_batch_dim(key)
158
+ value = attn.head_to_batch_dim(value)
159
+
160
+ attention_probs = attn.get_attention_scores(query, key, attention_mask)
161
+ hidden_states = torch.bmm(attention_probs, value)
162
+ hidden_states = attn.batch_to_head_dim(hidden_states)
163
+
164
+ # for ip-adapter
165
+ ip_key = self.to_k_ip(ip_hidden_states)
166
+ ip_value = self.to_v_ip(ip_hidden_states)
167
+
168
+ ip_key = attn.head_to_batch_dim(ip_key)
169
+ ip_value = attn.head_to_batch_dim(ip_value)
170
+
171
+ ip_attention_probs = attn.get_attention_scores(query, ip_key, None)
172
+ self.attn_map = ip_attention_probs
173
+ ip_hidden_states = torch.bmm(ip_attention_probs, ip_value)
174
+ ip_hidden_states = attn.batch_to_head_dim(ip_hidden_states)
175
+
176
+ hidden_states = hidden_states + self.scale * ip_hidden_states
177
+
178
+ # linear proj
179
+ hidden_states = attn.to_out[0](hidden_states)
180
+ # dropout
181
+ hidden_states = attn.to_out[1](hidden_states)
182
+
183
+ if input_ndim == 4:
184
+ hidden_states = hidden_states.transpose(-1, -2).reshape(batch_size, channel, height, width)
185
+
186
+ if attn.residual_connection:
187
+ hidden_states = hidden_states + residual
188
+
189
+ hidden_states = hidden_states / attn.rescale_output_factor
190
+
191
+ return hidden_states
192
+
193
+ def deprecate(*args, take_from: Optional[Union[Dict, Any]] = None, standard_warn=True, stacklevel=2):
194
+ from .. import __version__
195
+
196
+ deprecated_kwargs = take_from
197
+ values = ()
198
+ if not isinstance(args[0], tuple):
199
+ args = (args,)
200
+
201
+ for attribute, version_name, message in args:
202
+ if version.parse(version.parse(__version__).base_version) >= version.parse(version_name):
203
+ raise ValueError(
204
+ f"The deprecation tuple {(attribute, version_name, message)} should be removed since diffusers'"
205
+ f" version {__version__} is >= {version_name}"
206
+ )
207
+
208
+ warning = None
209
+ if isinstance(deprecated_kwargs, dict) and attribute in deprecated_kwargs:
210
+ values += (deprecated_kwargs.pop(attribute),)
211
+ warning = f"The `{attribute}` argument is deprecated and will be removed in version {version_name}."
212
+ elif hasattr(deprecated_kwargs, attribute):
213
+ values += (getattr(deprecated_kwargs, attribute),)
214
+ warning = f"The `{attribute}` attribute is deprecated and will be removed in version {version_name}."
215
+ elif deprecated_kwargs is None:
216
+ warning = f"`{attribute}` is deprecated and will be removed in version {version_name}."
217
+
218
+ if warning is not None:
219
+ warning = warning + " " if standard_warn else ""
220
+ warnings.warn(warning + message, FutureWarning, stacklevel=stacklevel)
221
+
222
+ if isinstance(deprecated_kwargs, dict) and len(deprecated_kwargs) > 0:
223
+ call_frame = inspect.getouterframes(inspect.currentframe())[1]
224
+ filename = call_frame.filename
225
+ line_number = call_frame.lineno
226
+ function = call_frame.function
227
+ key, value = next(iter(deprecated_kwargs.items()))
228
+ raise TypeError(f"{function} in {filename} line {line_number - 1} got an unexpected keyword argument `{key}`")
229
+
230
+ if len(values) == 0:
231
+ return
232
+ elif len(values) == 1:
233
+ return values[0]
234
+ return values
File without changes
@@ -0,0 +1,166 @@
1
+ import torch
2
+ import torch.nn as nn
3
+ import torchvision.models as models
4
+
5
+ class BaseNetwork(nn.Module):
6
+ def __init__(self):
7
+ super(BaseNetwork, self).__init__()
8
+
9
+ def init_weights(self, init_type='normal', gain=0.02):
10
+ def init_func(m):
11
+ classname = m.__class__.__name__
12
+ if hasattr(m, 'weight') and (classname.find('Conv') != -1 or classname.find('Linear') != -1):
13
+ if init_type == 'normal':
14
+ nn.init.normal_(m.weight.data, 0.0, gain)
15
+ elif init_type == 'xavier':
16
+ nn.init.xavier_normal_(m.weight.data, gain=gain)
17
+ elif init_type == 'kaiming':
18
+ nn.init.kaiming_normal_(m.weight.data, a=0, mode='fan_in')
19
+ elif init_type == 'orthogonal':
20
+ nn.init.orthogonal_(m.weight.data, gain=gain)
21
+
22
+ if hasattr(m, 'bias') and m.bias is not None:
23
+ nn.init.constant_(m.bias.data, 0.0)
24
+
25
+ elif classname.find('BatchNorm2d') != -1:
26
+ nn.init.normal_(m.weight.data, 1.0, gain)
27
+ nn.init.constant_(m.bias.data, 0.0)
28
+
29
+ self.apply(init_func)
30
+
31
+ class DoubleConv(BaseNetwork):
32
+ """(convolution => [BN] => ReLU) * 2"""
33
+ def __init__(self, in_channels, out_channels, mid_channels=None, norm_layer = nn.InstanceNorm2d):
34
+ super().__init__()
35
+ self.norm_layer = norm_layer
36
+ if not mid_channels:
37
+ mid_channels = out_channels
38
+ self.double_conv = nn.Sequential(
39
+ nn.Conv2d(in_channels, mid_channels, kernel_size=3, padding=1),
40
+ self.norm_layer(mid_channels),
41
+ nn.ReLU(inplace=True),
42
+ nn.Conv2d(mid_channels, out_channels, kernel_size=3, padding=1),
43
+ self.norm_layer(out_channels),
44
+ nn.ReLU(inplace=True)
45
+ )
46
+
47
+ def forward(self, x):
48
+ return self.double_conv(x)
49
+
50
+ class Bottleneck(BaseNetwork):
51
+ def __init__(self,in_places,out_places,stride=1,downsampling=False,expansion=4, norm_layer = nn.InstanceNorm2d):
52
+ super(Bottleneck,self).__init__()
53
+ self.expansion = expansion
54
+ self.downsampling = downsampling
55
+ self.norm_layer = norm_layer
56
+ self.bottleneck = nn.Sequential(
57
+ nn.Conv2d(in_channels=in_places,out_channels=out_places,kernel_size=1,stride=1),
58
+ self.norm_layer(out_places),
59
+ nn.ReLU(inplace=True),
60
+ nn.Conv2d(in_channels=out_places,out_channels=out_places,kernel_size=3,stride=stride,padding=1),
61
+ self.norm_layer(out_places),
62
+ nn.ReLU(inplace=True),
63
+ nn.Conv2d(in_channels=out_places,out_channels=out_places*self.expansion,kernel_size=1,stride=1),
64
+ self.norm_layer(out_places*self.expansion)
65
+ )
66
+
67
+ if self.downsampling :
68
+ self.downsample = nn.Sequential(
69
+ nn.Conv2d(in_channels=in_places,out_channels=out_places*self.expansion,kernel_size=1,stride=stride),
70
+ self.norm_layer(out_places*self.expansion)
71
+ )
72
+ self.relu = nn.ReLU(inplace=True)
73
+
74
+ def forward(self,x):
75
+ residual = x
76
+ out = self.bottleneck(x)
77
+
78
+ if self.downsampling:
79
+ residual = self.downsample(x)
80
+ out += residual
81
+ out = self.relu(out)
82
+ return out
83
+
84
+ class ResNet(BaseNetwork):
85
+ def __init__(self, blocks, out_places=[64,16,32,64,64], input_nc = 4, expansion=4, norm_layer=nn.InstanceNorm2d):
86
+ super(ResNet, self).__init__()
87
+ self.expansion = expansion
88
+ self.norm_layer = norm_layer
89
+ self.bilinear = True
90
+ self.conv = DoubleConv(input_nc, 64, norm_layer=nn.BatchNorm2d) #TODO:
91
+ self.conv.eval()
92
+
93
+ self.layer1 = self.make_layer(in_places=out_places[0], out_places=out_places[1], block=blocks[0], stride=2,
94
+ norm_layer=self.norm_layer)
95
+ self.layer2 = self.make_layer(in_places=4*out_places[1], out_places=out_places[2], block=blocks[1], stride=2,
96
+ norm_layer=self.norm_layer)
97
+ self.layer3 = self.make_layer(in_places=4*out_places[2], out_places=out_places[3], block=blocks[2], stride=2,
98
+ norm_layer=self.norm_layer)
99
+ self.layer4 = self.make_layer(in_places=4*out_places[3], out_places=out_places[4], block=blocks[3], stride=2,
100
+ norm_layer=self.norm_layer)
101
+
102
+
103
+ for m in self.modules():
104
+ if isinstance(m, nn.Conv2d):
105
+ nn.init.kaiming_normal_(m.weight, mode='fan_out', nonlinearity='relu')
106
+
107
+ def make_layer(self, in_places, out_places, block, stride, norm_layer=nn.InstanceNorm2d):
108
+ layers = []
109
+ layers.append(
110
+ Bottleneck(in_places, out_places, stride, downsampling=True, norm_layer=norm_layer))
111
+ for i in range(1, block):
112
+ layers.append(
113
+ Bottleneck(out_places * self.expansion, out_places, norm_layer=norm_layer))
114
+
115
+ return nn.Sequential(*layers)
116
+
117
+ def forward(self, input):
118
+ f1 = self.conv(input)
119
+ f2 = self.layer1(f1)
120
+ f3 = self.layer2(f2)
121
+ f4 = self.layer3(f3)
122
+ f5 = self.layer4(f4)
123
+ return f5
124
+
125
+ class RegNetwork(BaseNetwork):
126
+
127
+ def __init__(self,input_dim=256, norm_layer=nn.InstanceNorm2d):
128
+ super(RegNetwork,self).__init__()
129
+ self.norm_layer = norm_layer
130
+ self.FeatureEncoder = ResNet([3,4,6,3],input_nc=4,norm_layer=self.norm_layer)
131
+ self.net = nn.Sequential(
132
+ nn.Conv2d(input_dim,input_dim*2,kernel_size=3,padding=1,stride=2),
133
+ self.norm_layer(input_dim*2),
134
+ nn.ReLU(inplace=True),
135
+ nn.Conv2d(input_dim*2,input_dim*2,kernel_size=3,padding=1,stride=1),
136
+ self.norm_layer(input_dim*2),
137
+ nn.ReLU(inplace=True),
138
+ nn.Conv2d(input_dim*2,input_dim*2,kernel_size=3,padding=1,stride=1),
139
+ self.norm_layer(input_dim*2),
140
+ nn.ReLU(inplace=True),
141
+ nn.AdaptiveAvgPool2d(1),
142
+ nn.Flatten(),
143
+ )
144
+ self.fc_bbx = nn.Linear(input_dim*2, 5)
145
+
146
+ def forward(self, x):
147
+ x = self.FeatureEncoder(x)
148
+ x = self.net(x)
149
+ pred_t = self.fc_bbx(x)
150
+ pred_t[:, 4] = torch.tanh(pred_t[:, 4]) * (torch.pi / 2)
151
+ return pred_t
152
+
153
+ class MaskCls(BaseNetwork):
154
+
155
+ def __init__(self, num_classes=256):
156
+ super(MaskCls, self).__init__()
157
+ # 加载预训练的ResNet模型,这里选择ResNet50作为基础模型
158
+ self.resnet = models.resnet50(pretrained=True)
159
+ self.resnet.conv1 = nn.Conv2d(4, 64, kernel_size=7, stride=2, padding=3, bias=False)
160
+ # 替换最后一层全连接层
161
+ num_features = self.resnet.fc.in_features
162
+ self.resnet.fc = nn.Linear(num_features, num_classes)
163
+
164
+ def forward(self, x):
165
+ x = self.resnet(x)
166
+ return x