text:
use 🧨diffusers model

The goal is to reduce the amount of model code InvokeAI has to maintain by integrating https://github.com/huggingface/diffusers , using that to replace the existing ldm (descended from the original CompVis implementation).
I think the plan is that we keep the public APIs in ldm.invoke.generator stable while swapping out the implementations to be diffusers-based.
Discord discussion thread: https://discord.com/channels/1020123559063990373/1031668022294884392
[This is a continuation of #1384. The branch is now hosted in the InvokeAI repo instead of a fork for easier collaboration.]
Usage
Add a section to your models.yaml like this:
diffusers-1.5:
  description: Diffusers version of Stable Diffusion version 1.5
  format: diffusers
  repo_name: runwayml/stable-diffusion-v1-5

Note the format: diffusers.
The repo_name is as it appears on huggingface.co.
Sub-Tasks
i.e. things keturn would love to delegate.

[x] #1690
[x] #1997
[x] #1777
[x] #1778
[ ] #2160
[ ] #1779
[ ] #1876
[ ] #2042

To Do: txt2img

[x] don't load redundant models! (i.e. both the ckpt and the diffusers formats)
[x] allow scheduler selection
[x] support extra scheduler parameters (e.g. DDIM's eta).
[x] honor float16 setting for loading model
[x] update callback users with the new signature.

at least done for invoke_ai_web_server. Not sure if the other instances are still in use?

[x] fix prompt fragment weighting. Refer to WeightedFrozenCLIPEmbedder.
[x] honor safety-checker setting
[x] allow loading a custom VAE
[x] make work with inpainting model
[ ] karras_max?

waiting on upstream diffusers

[x] fix seamless. (it looks like it's trying to work, but the padding is off somehow.) see https://github.com/huggingface/diffusers/issues/556
[ ] models.diffusion.cross_attention_control might be an obstacle, as that's not in stock diffusers yet and it meddles with some internals. The prompt-to-prompt authors do have a reference implementation that uses diffusers: https://nbviewer.org/github/google/prompt-to-prompt/blob/main/prompt-to-prompt_stable.ipynb

To Do: img2img

[ ] bug: crashes when strength is too low (zero timestamps. upstream bug in img2img pipeline?)
[ ] make sure we use the correct seeded noise
[x] make work with inpainting model
[x] decide if we need to keep --inpaint_replace now that --strength works. (Or should it apply to the results of the infill method?)

decision: drop inpaint_replace

To Do: txt2img2img (high-res optimization)

[x] rewrite to our diffusers-based pipeline

To Do: inpainting

[x] work with the inpainting-specific model
[x] make sure masks are being used correctly
[ ] remove this kludge that has something to do with inpainting? https://github.com/keturn/InvokeAI/blob/f49317c4f5e4a29c747aaaa433e617ff8ae98f13/ldm/generate.py#L1004-L1006

To Do: embiggen

[x] embiggen!

(I took a quick look: it mostly goes through invoke's generate API instead of directly accessing the model or schedulers, so hopefully doesn't need to change much.)

currently getting an error doing txt2img
Generating:   0%|                                                                                | 0/1 [00:00<?, ?it/s]
Traceback (most recent call last):
  File "/Users/damian/2.current/stablediffusion/stable-diffusion/ldm/invoke/CLI.py", line 122, in main
    main_loop(gen, opt)
  File "/Users/damian/2.current/stablediffusion/stable-diffusion/ldm/invoke/CLI.py", line 347, in main_loop
    gen.prompt2image(
  File "/Users/damian/2.current/stablediffusion/stable-diffusion/ldm/generate.py", line 487, in prompt2image
    results = generator.generate(
  File "/Users/damian/2.current/stablediffusion/stable-diffusion/ldm/invoke/generator/base.py", line 102, in generate
    image = make_image(x_T)
  File "/Users/damian/2.current/stablediffusion/stable-diffusion/ldm/invoke/generator/txt2img.py", line 36, in make_image
    pipeline_output = pipeline.image_from_embeddings(
  File "/Users/damian/miniforge3/envs/invokeai/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1207, in __getattr__
    raise AttributeError("'{}' object has no attribute '{}'".format(
AttributeError: 'LatentDiffusion' object has no attribute 'image_from_embeddings'

fix was "read the instructions about putting a format: diffusers model in your models.yaml"

looks like this needs torch==1.13 on macOS, or it crashes with an error about views having to be contiguous

something weird is going on because this is not a cat playing with a ball in the forest -s 10 -S 1699080397 -W 512 -H 512 -C 7.5 -A k_lms

Seems to have worked on mps here with torch 1.12: https://github.com/invoke-ai/InvokeAI/actions/runs/3559296062/jobs/5978550236
I haven't looked at the output to see how well, but it didn't crash.
Does torch 1.13 on mac perform any better with this diffusers implementation? Or is it still much much slower than torch 1.12 with the old implementation?

Seems to have worked on mps here with torch 1.12: https://github.com/invoke-ai/InvokeAI/actions/runs/3559296062/jobs/5978550236

that's actually x64, not m1/mps (check the install requirements step, calls x64 python) - github does not offer M1 hosts afaik.

Does torch 1.13 on mac perform any better with this diffusers implementation? Or is it still much much slower than torch 1.12 with the old implementation?

it seems slow but i haven't paid too much attention

something is definitely broke on mps because this is supposedly banana sushi -s 10 -S 42 -W 512 -H 512 -C 7.5 -A k_lms

apricot sushi produces exactly the same image, as does empty string. ok, so that means that on MPS the prompt embeddings tensor is being zero'd (or inf'd?) somehow. i'll look into it later.

that's actually x64, not m1/mps (check the install requirements step, calls x64 python) - github does not offer M1 hosts afaik.

yeah, hmm, I think you're right. Well that makes it very misleading to have a check named mac-mps-cpu

there is shared memory shenanigans going on in self.clip_embedder.encode (diffusers_pipeline.py line 309) on MPS that means that the second call overwrites the first-returned tensor. .clone() should fix it, testing now.

ok there's some deep in the weeds bug in pytorch, because:
conditioned_next_x - unconditioned_next_x

result = lots of zeros
conditioned_next_x.clone() - unconditioned_next_x

result = looks reasonable
i don't know why this is happening and i don't know what to do about it

Some change I just pulled in from development introduced a crash on model load, so I threw this in there as a stopgap: invoke-ai/InvokeAI@185aa24 (#1583)
If I'm reading things correctly, embedding_manager is currently a submodel defined by https://github.com/invoke-ai/InvokeAI/blob/8423be539b8968f82124360576a6b4c7957934ff/configs/stable-diffusion/v1-inference.yaml#L29-L30
The model configs like https://huggingface.co/runwayml/stable-diffusion-v1-5/blob/main/model_index.json have no such personalization_config.
Does it feel necessary to have that be data-driven, or is that class reference something we can hardcode?

conditioned_next_x - unconditioned_next_x

result = all zeros

That's weird. Both on the same device and same dtype?

development brought in a few more references to model.embedding_manager on the default code path, so I've patched over them in a few more places.
It was a kludge in one place before, but now it's spreading. Should probably the the next thing we tackle in this branch.

I had it create an EmbeddingManager. I am not sure if it's working yet but at least it's back to not-crashing.
Also pushed a couple of fixes for deprecated diffusers things, cleaning up some of the warning messages it was spewing.

realising i never answered your question about the personalization_config keturn - yes, i think it can be hardcoded

oof. re-resolving all the conflicts after the entirety of 2.2 was rebased was a doozy, but I think I did it okay.

🚧 🚨 PLZ HOLD. DO NOT PUSH TO THIS BRANCH FOR A BIT, I WILL NEED TO FORCE-PUSH IT. 🚨🚧
oh fiddlesticks.
this branch was based off of develop, so it contains that history.
but that history all got squashed away when it merged in to main.
that means I'm going to have to rebase this branch on main so it's not dragging in the duplicate history... okay.

All clear.
As long as you're based of this current branch and not dragging in the old pre-2.2 development history, it's okay to push to here again.

But just in case:

the branch based on old development is here: https://github.com/invoke-ai/InvokeAI/commit/6d6c03527c892ee6ed7a8c5232c1084ef2675d7e
one of the attempts at rebasing that on top of main is here: https://github.com/invoke-ai/InvokeAI/commit/89c6fbff495716d3be734243b4f8cffe4a8675e2
this branch is currently at https://github.com/invoke-ai/InvokeAI/commit/494936a8d24a09cb278a8e4520db3238b0e63125 which is made from 89c6fbff495716d3be734243b4f8cffe4a8675e2 but with some of the fiddly troubeshooting commits squashed out.

I'd been thinking of doing "high res optimization" (txt2img2img) next, but after seeing how much the Unified Canvas relies on inpainting, and that it doesn't use txt2img2img, I'm working on invoke.generator.inpaint next.
This one certainly has a lot more code in it than img2img did!

note to self for when self gets back to working on inpainting: you can distinguish the inpainting-specific model from the normal model by looking at unet.conv_in.in_channels. Normal models have 4, inpainting model has 9. (4 + 1-channel mask + 4-channel encoded masked image).

I did some further work on inpaint, getting it working with the inpainting-specific model.
It's working well -- on the one test case I've thrown at it so far.
Still need to fix it so we can inpaint with the normal 4-channel model.
A few notes for next steps there:

I think we can combine the inpainting and img2img methods on the diffusers pipeline by treating img2img as inpainting with a flat mask.
This is maybe code that should be in InvokeAIDiffuserComponent? The use of the inpainting model is a modification to what gets passed to its model_forward_callback, and masking without the inpainting model is a change to the guidance function we apply to the model output.

f3570d8 👀

Note I have not yet implemented inpaint_replace, because it seems to me it's redundant with strength. Do we need both?

@keturn - Inpaint replace is functionally different than strength. Can you clarify why it seems redundant?

Inpaint replace is functionally different than strength. Can you clarify why it seems redundant?

Can you clarify how they're functionally different? #inpainting code in developer-forums discord.

Masked img2img (inpainting) is now working well with DDIM, and is functional with DPM Solver++, but is a horrible mess with K-LMS and Euler schedulers. There are a few open PRs upstream related to img2img or inpainting; I'm thinking I can pause inpainting troubleshooting here until those are resolved and then we can sync up with the upstream implementation again.

https://github.com/huggingface/diffusers/pull/1583 (omg that's the same number as this PR! Twins!)
https://github.com/huggingface/diffusers/pull/1585

In other news, I opened an issue about model management. Not a showstopper at this point but something to keep an eye on.

https://github.com/huggingface/huggingface_hub/issues/1259

@damian0815 I did have some trouble merging in the attention maps code from the main branch. Do we know how to hook that callback up here? cd358c4 (#1583)

currently getting this on linux:
models.yaml:
diffusers-1.5:
  description: Diffusers version of Stable Diffusion version 1.5
  format: diffusers
  repo_name: runwayml/stable-diffusion-v1-5
  default: true

log:
>> Current VRAM usage:  0.00G
** model diffusers-1.5 could not be loaded: Missing key config
    full_key: diffusers-1.5.config
    object_type=dict
Traceback (most recent call last):
  File "/invokeai/ldm/invoke/model_cache.py", line 80, in get_model
    requested_model, width, height, hash = self._load_model(model_name)
  File "/invokeai/ldm/invoke/model_cache.py", line 201, in _load_model
    config = mconfig.config
  File "/invokeai/.venv/lib/python3.10/site-packages/omegaconf/dictconfig.py", line 355, in __getattr__
    self._format_and_raise(
  File "/invokeai/.venv/lib/python3.10/site-packages/omegaconf/base.py", line 231, in _format_and_raise
    format_and_raise(
  File "/invokeai/.venv/lib/python3.10/site-packages/omegaconf/_utils.py", line 899, in format_and_raise
    _raise(ex, cause)
  File "/invokeai/.venv/lib/python3.10/site-packages/omegaconf/_utils.py", line 797, in _raise
    raise ex.with_traceback(sys.exc_info()[2])  # set env var OC_CAUSE=1 for full trace
  File "/invokeai/.venv/lib/python3.10/site-packages/omegaconf/dictconfig.py", line 351, in __getattr__
    return self._get_impl(
  File "/invokeai/.venv/lib/python3.10/site-packages/omegaconf/dictconfig.py", line 442, in _get_impl
    node = self._get_child(
  File "/invokeai/.venv/lib/python3.10/site-packages/omegaconf/basecontainer.py", line 73, in _get_child
    child = self._get_node(
  File "/invokeai/.venv/lib/python3.10/site-packages/omegaconf/dictconfig.py", line 480, in _get_node
    raise ConfigKeyError(f"Missing key {key!s}")
omegaconf.errors.ConfigAttributeError: Missing key config
    full_key: diffusers-1.5.config
    object_type=dict

and on mac:
** model diffusers-1.5 could not be loaded: 'Transformer2DModel' object has no attribute 'width'
Traceback (most recent call last):
  File "/Users/damian/2.current/stablediffusion/stable-diffusion/ldm/invoke/model_cache.py", line 87, in get_model
    requested_model, width, height, hash = self._load_model(model_name)
  File "/Users/damian/2.current/stablediffusion/stable-diffusion/ldm/invoke/model_cache.py", line 223, in _load_model
    model, width, height, model_hash = self._load_diffusers_model(mconfig)
  File "/Users/damian/2.current/stablediffusion/stable-diffusion/ldm/invoke/model_cache.py", line 357, in _load_diffusers_model
    pipeline = StableDiffusionGeneratorPipeline.from_pretrained(
  File "/Users/damian/miniforge3/envs/invokeai/lib/python3.10/site-packages/diffusers/pipeline_utils.py", line 709, in from_pretrained
    loaded_sub_model = load_method(os.path.join(cached_folder, name), **loading_kwargs)
  File "/Users/damian/miniforge3/envs/invokeai/lib/python3.10/site-packages/diffusers/modeling_utils.py", line 484, in from_pretrained
    model = cls.from_config(config, **unused_kwargs)
  File "/Users/damian/miniforge3/envs/invokeai/lib/python3.10/site-packages/diffusers/configuration_utils.py", line 210, in from_config
    model = cls(**init_dict)
  File "/Users/damian/miniforge3/envs/invokeai/lib/python3.10/site-packages/diffusers/configuration_utils.py", line 567, in inner_init
    init(self, *args, **init_kwargs)
  File "/Users/damian/miniforge3/envs/invokeai/lib/python3.10/site-packages/diffusers/models/unet_2d_condition.py", line 151, in __init__
    down_block = get_down_block(
  File "/Users/damian/miniforge3/envs/invokeai/lib/python3.10/site-packages/diffusers/models/unet_2d_blocks.py", line 69, in get_down_block
    return CrossAttnDownBlock2D(
  File "/Users/damian/miniforge3/envs/invokeai/lib/python3.10/site-packages/diffusers/models/unet_2d_blocks.py", line 552, in __init__
    Transformer2DModel(
  File "/Users/damian/miniforge3/envs/invokeai/lib/python3.10/site-packages/diffusers/configuration_utils.py", line 567, in inner_init
    init(self, *args, **init_kwargs)
  File "/Users/damian/miniforge3/envs/invokeai/lib/python3.10/site-packages/diffusers/models/attention.py", line 146, in __init__
    num_embed=num_vector_embeds, embed_dim=inner_dim, height=self.height, width=self.width
  File "/Users/damian/miniforge3/envs/invokeai/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1207, in __getattr__
    raise AttributeError("'{}' object has no attribute '{}'".format(
AttributeError: 'Transformer2DModel' object has no attribute 'width'

no idea what to do :(
(invokeai) damian@d-mba2 stable-diffusion % pip list | grep trans
taming-transformers-rom1504   0.0.6
transformers                  4.25.1
(invokeai) damian@d-mba2 stable-diffusion % pip list | grep torch
pytorch-lightning             1.7.7
torch                         1.12.1
torch-fidelity                0.3.0
torchdiffeq                   0.2.3
torchmetrics                  0.10.3
torchsde                      0.2.5
torchvision                   0.13.1

@damian0815, It Works On My Machine.
Are you on the right branch? The line numbers don't line up with model_cache.py here.

File "/invokeai/ldm/invoke/model_cache.py", line 80, in get_model
requested_model, width, height, hash = self._load_model(model_name)
File "/invokeai/ldm/invoke/model_cache.py", line 201, in _load_model
config = mconfig.config

Welp, I fixed some of the powershell-related test failures, only to have the tests fail because the runner ran out of storage space while trying to pack up the model cache at the end:
Post job cleanup.
/usr/bin/tar --posix --use-compress-program zstdmt -cf cache.tzst --exclude cache.tzst -P -C /home/runner/work/InvokeAI/InvokeAI --files-from manifest.txt
zstd: error 25 : Write error : No space left on device (cannot write compressed block)
/usr/bin/tar: cache.tzst: Wrote only 6144 of 10240 bytes
/usr/bin/tar: Child returned status 25
/usr/bin/tar: Error is not recoverable: exiting now
Warning: Failed to save: Tar failed with error: The process '/usr/bin/tar' failed with exit code 2
Error: Unable to process command 'warning' successfully.
Error: No space left on device : '/home/runner/runners/2.299.1/_diag/pages/a14bda00-78cd-41e5-b3f5-da93b4ebd092_b25d23e2-194a-557c-e00b-59b8e09f4e39_1.log'

I guess it is no longer necessary to store the models in a github cache, because they no longer require secrets to retrieve, but it does seem irresponsible to have every single job re-download them from the upstream host every time.
I haven't checked to see how many models --no-interactive --yes downloads these days. Is it more than we need?

I haven't checked to see how many models --no-interactive --yes downloads these days. Is it more than we need?

It gets the ones recommended by https://github.com/invoke-ai/InvokeAI/blob/dev/diffusers/configs/INITIAL_MODELS.yaml
And we still have this branch's download_diffusers_in_config which gets some more diffusers-format models on top of that.
So yeah, we're probably downloading more than we need.

@keturn i apparently managed to mess up my pytorch in pip's cache - i blew it all away, started again with a fresh conda env, which fixed the problem.

I would suggest instead of downloading blobs of these repos to the cache, to actually git clone each repo, and put them in the models folder, then on boot just verify the repo is at the origin's HEAD, and load the model locally https://huggingface.co/docs/diffusers/using-diffusers/loading#loading-pipelines-locally
this would enable automatic and others to also read these models, while still keeping them up to date, at least in invoke

I would suggest instead of downloading blobs of these repos to the cache, to actually git clone each repo […]

@AskAlice, I'm afraid I don't follow. What is there to be gained by not using the huggingface API for retrieving model data from the huggingface model hub?
If you're looking for a way to use this branch with files you have already cloned (for use with other UIs that don't use the huggingface API), you can configure your models.yaml to load from a local path like so:
diffusers-1.5:
  description: 🤗🧨 Stable Diffusion v1.5
  format: diffusers
  path: /opt/models/stable-diffusion/v1.5

Note path replaces repo_name there, and you can put any filesystem path. It should point to a directory containing a model_index.json file.

I would suggest instead of downloading blobs of these repos to the cache, to actually git clone each repo […]

@AskAlice, I'm afraid I don't follow. What is there to be gained by not using the huggingface API for retrieving model data from the huggingface model hub?
If you're looking for a way to use this branch with files you have already cloned (for use with other UIs that don't use the huggingface API), you can configure your models.yaml to load from a local path like so:
diffusers-1.5:
  description: 🤗🧨 Stable Diffusion v1.5
  format: diffusers
  path: /opt/models/stable-diffusion/v1.5

Note path replaces repo_name there, and you can put any filesystem path. It should point to a directory containing a model_index.json file.

ahh okay, i guess i thought that because initially the models that were in my config from before switching to this fork had stopped importing properly, and the example config in the repo only had the always online spec

@keturn I've started to work against this branch. Is it correct that CompVis weight files are not working and that I should only be testing against Diffuser weight files? When I try to load a CompVis weights file I'm getting the error LatentDiffusion object has no attribute 'image_from_embeddings', which stems from ldm/invoke/generator/txt2img.py line 33.

@lstein - Indeed; this is a conversation that's been ongoing w/ the Diffusers work. There are a number of devs upstream looking to have Diffusers support .ckpt files natively, but so far their stance has been to push for conversion as part of the process to using these.
The conversion process is ~40-50s long from what I've been told - It should probably happen on the model addition/importing flow.

Is there an example of a diffusers-style models.yaml file that includes loading a VAE? I'm not getting it from reading the code.

In commit 0e8072 I have made a number of changes that address model loading and caching. I'm comfortable calling this an MVP.

configure_invokeai.py downloads both .ckpt and diffuser models, along with their VAEs. Both types of download are controlled by  a unified INITIAL_MODELS.yaml file.

model_cache can load both type of model and switches back and forth in CPU. No memory leaks detected

TO DO:

I have not yet turned on the LocalOnly flag for diffuser models, so the code will check the Hugging Face repo for updates before using the locally cached models. This will break firewalled systems. I am thinking of putting in a global check for internet connectivity at startup time and setting the LocalOnly flag based on this. It would be good to check
updates if there is connectivity.

I have not gone completely through INITIAL_MODELS.yaml to check which models are available as diffusers and which are not. So models like PaperCut and VoxelArt may not load properly. The runway and stability models are checked, as well as the Trinart models.

Add stanzas for SD 2.0 and 2.1 in INITIAL_MODELS.yaml

Update the !import_weights CLI command so that diffuser models can be imported with the same syntax.

PROBLEMS I ENCOUNTERED, WHICH I DEFER TO OTHERS:

When loading a .ckpt file there are lots of messages like this: Warning! ldm.modules.attention.CrossAttention is no longer being maintained. Please use InvokeAICrossAttention instead.
The .ckpt models don't actually run. They crash inside the generator's txt2img or img2img routines because there is an assumption there that these are diffuser models.
The inpainting model is crashing with RuntimeError: The size of tensor a (9) must match the size of tensor b (4) at non-singleton dimension 1 I remember getting this error when I first ported the CompVis code over. At the time I solved the issue by setting the unet_config in_channels in the config file to 9.

Current status:

Image generation now works with both .ckpt weights files and diffuser models.
Online conversion of ckpt to diffuser models is now implemented. The CLI functionality is triggered by !optimize_model and the underlying conversion function can be found in ldm/invoke/ckpt_to_diffuser.py
configure_invokeai.py is now aware of the platform's preferred precision and tries to fetch the right version of the model file.

A conversion session on the CLI looks like this:
invoke> !optimize /home/lstein/invokeai/models/ldm/stable-diffusion-v1/sd-v1-4.ckpt
INFO: Converting legacy weights file /home/lstein/invokeai/models/ldm/stable-diffusion-v1/sd-v1-4.ckpt to optimized diffuser model.
      This operation will take 30-60s to complete.
Success. Optimized model is now located at /home/lstein/tmp/invokeai/models/optimized-ckpts/sd-v1-4
Writing new config file entry for sd-v1-4...

>> New configuration:
sd-v1-4:
  description: Optimized version of sd-v1-4
  format: diffusers
  path: /home/lstein/tmp/invokeai/models/optimized-ckpts/sd-v1-4

OK to import [n]? y
>> Verifying that new model loads...
>> Current VRAM usage:  2.60G
>> Offloading stable-diffusion-2.1 to CPU
>> Loading diffusers model from /home/lstein/tmp/invokeai/models/optimized-ckpts/sd-v1-4
  | Using faster float16 precision
  | training width x height = (512 x 512)
>> Model loaded in 3.48s
>> Max VRAM used to load the model: 2.17G
>> Current VRAM usage:2.17G
>> Textual inversions available:
>> Setting Sampler to k_lms (LMSDiscreteScheduler)
Keep model loaded? [y]```

Image generation now works with both .ckpt weights files and diffuser models.
Online conversion of ckpt to diffuser models is now implemented. The CLI functionality is triggered by !optimize_model and the underlying conversion function can be found in ldm/invoke/ckpt_to_diffuser.py

Does this include conversion from safetensors, or is that a separate project?

Is there an example of a diffusers-style models.yaml file that includes loading a VAE? I'm not getting it from reading the code.

https://github.com/invoke-ai/InvokeAI/blob/10b2870dafe794d23a49b6caccdf6b85d9daa3fd/configs/models.yaml.example#L17-L22
It's sticking with the current organization, with vae being nested within the model's configuration, and uses repo_name (HF hub) or path (local filesystem) with the same semantics as the top-level model configs.

I have not gone completely through INITIAL_MODELS.yaml to check which models are available as diffusers and which are not. So models like PaperCut and VoxelArt may not load properly. The runway and stability models are checked, as well as the Trinart models.

See https://github.com/invoke-ai/InvokeAI/blob/10b2870dafe794d23a49b6caccdf6b85d9daa3fd/configs/INITIAL_MODELS.diffusers.yaml as mentioned in https://github.com/invoke-ai/InvokeAI/issues/1997#issue-1497366309
I added that .diffusers.yaml expecting it would be a temporary thing; we can remove it if you've merged them in to one unified INITIAL_MODELS file.

The inpainting model is crashing with RuntimeError: The size of tensor a (9) must match the size of tensor b (4) at non-singleton dimension 1

But it works when actually doing inpainting (masked img2img), right?
If so, then this is what those "make work with inpainting model" checkboxes are about in the to-do list. I guess for these cases, we pass a mask that's a solid "overwrite this" and all zeroes for the init-image channels?

got an error when attempting inpainting:
  File "InvokeAI/ldm/generate.py", line 793, in _make_inpaint
    return self._load_generator('inpaint','Inpaint')
  File "InvokeAI/ldm/generate.py", line 805, in _load_generator
    module = importlib.import_module(mn)
  File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1004, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'ldm.invoke.generatorinpaint'

@lstein is this something to do with the dual ldm-or-diffusers generators thing?

@damian0815 I saw you pushed a fix for the cross-attention crash. Confirmed that it works here, thanks!
Unfortunately it only works if both xformers_memory_efficient_attention and attention_slicing are disabled. If either is enabled, it doesn't crash, but it silently fails to do its thing and just results in rendering the replacement prompt.
How would you like to handle this? Should setup_cross_attention_control disable those things? Or should we move on to using the 0.12.dev diffusers API first, and figure out something based on that? I'm looking forward to that in any case so we can get rid of the monkeypatch.

@keturn so the monkey-patched InvokeAIDiffusersCrossAttention does its own slicing internally, using a technique with better performance than the diffusers attention_slicing functionality. as for the xformers_memory_efficient_attention, yeah it's unsupported for now. fwiw patrick actually posted what looks to be a better version than mine in the PR description and this comment links to an xformers-compatible implementation.
my thinking here is, it would be prudent to get the dev/diffusers branch into main before doing extra work enabling xformers - since xformers is currently unsupported in main, it's an extra concern for this PR that ought to be shuffled into the future. (unless there's Politics i'm unaware of that make xformers support a necessity before merge..?)
for reference the diffusers update to allow custom CrossAttentionProcessors (https://github.com/huggingface/diffusers/commit/4125756e88e82370c197fecf28e9f0b4d7eee6c3) was merged to diffusers main after the v0.11 tag, so it won't appear until v0.12.

Hmm, okay, I can respect a "current functionality before optimizations and new stuff" argument against scope creep. But with some concerns:

for several versions of diffusers, it had xformers enabled by default when available. Having swap silently not-work in those cases is bad. I'd say at a minimum we need to:

replace the current "if available: enable" code in our initialization code to always explicitly disable the incompatible features.
some kind of assertion that can detect whether the right thing was called. i.e. if it goes to apply a cross-attention control but no attention was ever wrangled, there's a problem we need to detect at some point. Whether that's an integration test or a runtime assertion.

"monkeypatch third-party classes" and "use a not-yet-released API" are both bad options for something we want to merge to main. Between the two, I think going with the not-yet-released API is better in this case. It won't be unreleased for long, and since it is being added specifically for our needs here, it'd be good to try out and see it needs any revisions.

Are you up for giving that 0.12.dev API a try? Or would you like me to take a crack at trying to translate the pseudo-code you mentioned to something that'll work with what we've got here?

Doing a configure_invokeai.py for a fresh new root directory, and got this error:
Download <r>ecommended models, <a>ll models, <c>ustomized list, or <s>kip this step? [r]: r

A problem occurred during initialization.
The error was: "Missing key recommended
    full_key: waifu-diffusion-1.3.recommended
    object_type=dict"

[...]
File "InvokeAI/scripts/configure_invokeai.py", line 196, in recommended_datasets
    if Datasets[ds]['recommended']:

omegaconf.errors.ConfigKeyError: Missing key recommended
    full_key: waifu-diffusion-1.3.recommended
    object_type=dict

Doing a customized install with these:

stable-diffusion-2.1
stable-diffusion-1.5
inpainting-1.5

completed configuration and then ran successfully, though its 1.5 configuration came with the MSE-finetuned VAE set, and it seems like that VAE did not get preloaded during the configuration phase. It got downloaded later on demand after I switched to the model. @lstein

Regarding the item

remove this kludge that has something to do with inpainting? keturn/InvokeAI@f49317c/ldm/generate.py#L1004-L1006

There is one place left that uses it: https://github.com/invoke-ai/InvokeAI/blob/e294fcabeb88f8b56b7b9d9fc57a1e6ac5b72de0/ldm/generate.py#L715-L724
I'm not sure what that's about, as I don't think anything in this branch uses "omnibus" anymore. But we have these parallel generator modules for the legacy model support, so maybe it's something we can't get rid of until we drop that?

Regarding the item

remove this kludge that has something to do with inpainting? keturn/InvokeAI@f49317c/ldm/generate.py#L1004-L1006

There is one place left that uses it: https://github.com/invoke-ai/InvokeAI/blob/e294fcabeb88f8b56b7b9d9fc57a1e6ac5b72de0/ldm/generate.py#L715-L724
I'm not sure what that's about, as I don't think anything in this branch uses "omnibus" anymore. But we have these parallel generator modules for the legacy model support, so maybe it's something we can't get rid of until we drop that?

confirmed an install of recommended  models now works in a fresh root directory! :star2:

oops, found another inpainting scaling bug.

the MPS issues I am aware of are all fixed as of 30 minutes ago on the master branch at  https://github.com/kulinseth/pytorch , which i understand will at some point be merged into pytorch main. performance also seems to come back to near-1.12.1 levels, too, which is nice.

in the meantime: the workaround to make general diffusion work is still in place. further, on MPS .swap() won't work until the fix makes its way to pytorch main.

oops, found another inpainting scaling bug.

The bug that I was referring to here but was too sleepy to type up:
Doing inpainting on the canvas with a smaller bounding box, the generation would happen at the smaller size, despite the "scale before processing" option being on.
but I can no longer reproduce it.

Not working if one switched to diffusers and back, hope this hasn't been done by too many users 😅
│ /Users/mauwii/git/invoke-ai/InvokeAI/ldm/invoke/model_manager.py:765 in migrate_models           │
│                                                                                │
│   762 │   │   │   source = models_dir /model                                                     │
│   763 │   │   │   if source.exists():                                                            │
│   764 │   │   │   │   print(f'DEBUG: Moving {models_dir / model} into hub')                      │
│ ❱ 765 │   │   │   │   move(models_dir / model, hub)                                              │
│   766 │   │                                                                                │
│   767 │   │   # anything else gets moved into the diffusers directory                            │
│   768 │   │   diffusers = models_dir / 'diffusers'                                               │
│                                                                                │
│ /Users/mauwii/.pyenv/versions/3.10.9/lib/python3.10/shutil.py:814 in move                        │
│                                                                                │
│    811 │   │   real_dst = os.path.join(dst, _basename(src))                                      │
│    812 │   │                                                                                │
│    813 │   │   if os.path.exists(real_dst):                                                      │
│ ❱  814 │   │   │   raise Error("Destination path '%s' already exists" % real_dst)                │
│    815 │   try:                                                                                │
│    816 │   │   os.rename(src, real_dst)                                                          │
│    817 │   except OSError:                                                                       │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
Error: Destination path '/Users/mauwii/git/invoke-ai/InvokeAI/models/hub/models--CompVis--stable-diffusion-safety-checker' already exists

same for models/hub/models--bert-base-uncased and /models/hub/models--openai--clip-vit-large-patch14
Having 2.1 as the default model is also kind of inconvenient, since it is not really working on my mac (while 1.5 is working better):

2.1 with k_heun
1.5 with k_heun

Since I created a fresh venv I assume that I am not the only User with this issue 🤔

Re: models--CompVis--stable-diffusion-safety-checker' already exists - Deleting the \hub\ folder if you're trying to switch back resolves the issue.
As far as 2.1 - I believe that might just be model quality, but we should be able to confirm by testing w/ a different tool, if anyone can offer to do that.

authors: AskAlice damian0815 hipsterusername keturn lstein mauwii whosawhatsis


text:
Fix masked generation with inpaint models

What type of PR is this? (check all applicable)

[ ] Refactor
[ ] Feature
[x] Bug Fix
[ ] Optimization
[ ] Documentation Update
[ ] Community Node Submission

Have you discussed this change with the InvokeAI team?

[x] Yes
[ ] No, because:

Have you updated all relevant documentation?

[ ] Yes
[x] No

Description
Fix masked generation with inpaint models
Related Tickets & Documents

Closes #4295

Added/updated tests?

[ ] Yes
[x] No

I think @lstein 's issue is unrelated to this PR. I get it also on Canvas, while inpainting. @blessedcoolant ... uhh...

I think @lstein 's issue is unrelated to this PR. I get it also on Canvas, while inpainting. @blessedcoolant ... uhh...

That's expected coz I don't know what the goal of the PR is. I just created a new InpaintMask field coz Stalker wanted to test something. If he's entirely replacing the socket, then the graphs need to be updated. Coz the "mask" slot is no longer mask but rather inpaintmask.

PR is fully synced with main.
Renamed InpaintMask to DenoiseMask as it is more apt
Create Inpaint Mask renamed to Create Denoise Mask
Updated the socket fields to reflect the above changes.
Unified Canvas now works with these new stuff.

Needs a round of testing before we merge.
@hipsterusername @StAlKeR7779 @psychedelicious @Millu

Been testing, can't say anything other than - "Wow, somehow we managed to stumble into some wild inpainting improvements in this refactor"
It's pretty awesome

@lstein Give it a review when you can - we should try to get these things merged in sooner vs later for an RC

Just gave this a test, seems to be working great!

source: gharchive/pull-request

authors: Millu StAlKeR7779 blessedcoolant hipsterusername psychedelicious

repo: invoke-ai/InvokeAI

license_type: permissive

license_source: github-api


text:
🛑 Bitwage API (Sandbox) is down

In 5d71c77, Bitwage API (Sandbox) (https://api.sandbox.bitwage.com) was down:

HTTP code: 403
Response time: 89 ms

Resolved: Bitwage API (Sandbox) is back up in 51af7fe after 1 hour, 7 minutes.

source: gharchive/issue

license: MIT


text:
🛑 Bitwage API (Sandbox) is down

In 3e886f4, Bitwage API (Sandbox) (https://api.sandbox.bitwage.com) was down:

HTTP code: 403
Response time: 289 ms

Resolved: Bitwage API (Sandbox) is back up in 21f7fd3 after 6 minutes.


text:
🛑 Bitwage API (Sandbox) is down

In f3a4538, Bitwage API (Sandbox) (https://api.sandbox.bitwage.com) was down:

HTTP code: 403
Response time: 262 ms

Resolved: Bitwage API (Sandbox) is back up in 69d8510 after 9 minutes.


text:
🛑 Bitwage API (Sandbox) is down

In 7f15f94, Bitwage API (Sandbox) (https://api.sandbox.bitwage.com) was down:

HTTP code: 403
Response time: 273 ms

Resolved: Bitwage API (Sandbox) is back up in dc2b34b after 1 hour, 26 minutes.


text:
🛑 Bitwage API (Sandbox) is down

In cd856df, Bitwage API (Sandbox) (https://api.sandbox.bitwage.com) was down:

HTTP code: 403
Response time: 60 ms

Resolved: Bitwage API (Sandbox) is back up in 58aae3f after 1 hour.


text:
dockerapp-dockerapp-1 exited with code 1 - Task 8 in Lab 2

Hi Tito and Majid,
Yesterday we had Lab 2, when it came to Task 8, it seemed that the docker-compose up didn't bring up 2 containers as expected, when following steps in the lab manual, and Tito also came across this problem later when presenting this lab:
$ docker-compose up
[+] Running 8/8
 ✔ redis 7 layers [⣿⣿⣿⣿⣿⣿⣿]      0B/0B      Pulled                                                                                4.8s
   ✔ 51f5c6a04d83 Pull complete                                                                                3.1s
   ✔ 6c8ccd839b1d Pull complete                                                                                3.2s
   ✔ 0fded1c9651d Pull complete                                                                                3.7s
   ✔ 7f1aa6a73799 Pull complete                                                                                3.8s
   ✔ 658be2e58dbd Pull complete                                                                                4.0s
   ✔ 3d3b67be53f9 Pull complete                                                                                4.1s
   ✔ 8a88e1919daf Pull complete                                                                                4.2s
[+] Building 0.5s (10/10) FINISHED
 => [internal] load build definition from Dockerfile                                                                                0.0s
 => => transferring dockerfile: 196B                                                                                0.0s
 => [internal] load .dockerignore                                                                                0.0s
 => => transferring context: 2B                                                                                0.0s
 => [internal] load metadata for docker.io/library/python:3.10                                                                              0.4s
 => [internal] load build context                                                                                0.0s
 => => transferring context: 132B                                                                                0.0s
 => [1/5] FROM docker.io/library/python:3.10@sha256:69a1e3bde8f6d3f1b5a9d3025daa24ccd76ecfe833be1d36cc3fcdf383b575f2                        0.0s
 => => resolve docker.io/library/python:3.10@sha256:69a1e3bde8f6d3f1b5a9d3025daa24ccd76ecfe833be1d36cc3fcdf383b575f2                        0.0s
 => CACHED [2/5] RUN pip install Flask==0.11.1 redis==2.10.5                                                                                0.0s
 => CACHED [3/5] RUN useradd -ms /bin/bash admin                                                                                0.0s
 => CACHED [4/5] WORKDIR /app                                                                                0.0s
 => CACHED [5/5] COPY app /app                                                                                0.0s
 => exporting to image                                                                                0.0s
 => => exporting layers                                                                                0.0s
 => => writing image sha256:e29f51bfce29030295f3f04dc89aeb8ab7d4c272474ee7c76098e83d7e10df7f                                                0.0s
 => => naming to docker.io/library/dockerapp-dockerapp                                                                                0.0s
[+] Running 3/3
 ✔ Network dockerapp_default        Created                                                                                0.1s
 ✔ Container dockerapp-redis-1      Created                                                                                0.0s
 ✔ Container dockerapp-dockerapp-1  Created                                                                                0.0s
Attaching to dockerapp-dockerapp-1, dockerapp-redis-1
dockerapp-redis-1      |                 _._
dockerapp-redis-1      |            _.-``__ ''-._
dockerapp-redis-1      |       _.-``    `.  `_.  ''-._           Redis 3.2.0 (00000000/0) 64 bit
dockerapp-redis-1      |   .-`` .-```.  ```\/    _.,_ ''-._
dockerapp-redis-1      |  (    '      ,       .-`  | `,    )     Running in standalone mode
dockerapp-redis-1      |  |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
dockerapp-redis-1      |  |    `-._   `._    /     _.-'    |     PID: 1
dockerapp-redis-1      |   `-._    `-._  `-./  _.-'    _.-'
dockerapp-redis-1      |  |`-._`-._    `-.__.-'    _.-'_.-'|
dockerapp-redis-1      |  |    `-._`-._        _.-'_.-'    |           http://redis.io
dockerapp-redis-1      |   `-._    `-._`-.__.-'_.-'    _.-'
dockerapp-redis-1      |  |`-._`-._    `-.__.-'    _.-'_.-'|
dockerapp-redis-1      |  |    `-._`-._        _.-'_.-'    |
dockerapp-redis-1      |   `-._    `-._`-.__.-'_.-'    _.-'
dockerapp-redis-1      |       `-._    `-.__.-'    _.-'
dockerapp-redis-1      |           `-._        _.-'
dockerapp-redis-1      |               `-.__.-'
dockerapp-redis-1      |
dockerapp-redis-1      | 1:M 10 May 16:51:13.034 # Server started, Redis version 3.2.0
dockerapp-redis-1      | 1:M 10 May 16:51:13.034 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
dockerapp-redis-1      | 1:M 10 May 16:51:13.034 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
dockerapp-redis-1      | 1:M 10 May 16:51:13.034 * The server is now ready to accept connections on port 6379
dockerapp-dockerapp-1  | Traceback (most recent call last):
dockerapp-dockerapp-1  |   File "/app/app.py", line 1, in <module>
dockerapp-dockerapp-1  |     from flask import Flask, request, render_template
dockerapp-dockerapp-1  |   File "/usr/local/lib/python3.10/site-packages/flask/__init__.py", line 19, in <module>
dockerapp-dockerapp-1  |     from jinja2 import Markup, escape
dockerapp-dockerapp-1  | ImportError: cannot import name 'Markup' from 'jinja2' (/usr/local/lib/python3.10/site-packages/jinja2/__init__.py)
dockerapp-dockerapp-1 exited with code 1

I searched the second last line ImportError: cannot import name 'Markup' from 'jinja2' (/usr/local/lib/python3.10/site-packages/jinja2/__init__.py), there is a question on StackExchange describing the same error. One of the answers mentioned that the error comes from calling jinja2.Markup() without arguments (see release note and issue). Another answer says that upgrading Flask to 2.0.3 can fix the issue. Honestly I don't know the reason you choose the version of Flask and Jinja in this Dockerfile, but I have forked the repo and changed the version of Flask from 0.11.1 to 2.0.3 in this commit. I can make a pull request if you think it can be accepted, or maybe you have your reasons to use specific versions of packages. Just trying to practice contributing to public repos, even if it is a minor change.

Hi  @kzyr6573
Thanks for opening this issue. Yes i have come across the error too  and i think the Flask version change is the solution.
In the spirit of collaboration, can you make a pull request and i will merge the change.
Thanks a lot.
Tito

Sure, thanks Tito for accepting this minor fix.


text:
ValueError: The truth value of a DataFrame is ambiguous.

When trying to use from_records to merge shape records with a dataframe I get:
/Users/<>/miniconda3/envs/science/lib/python3.5/site-packages/geoviews/element/geo.py in from_records(cls, records, dataset, on, value, index, **kwargs)
    316         Returns an NdOverlay of Shapes.
    317         """
--> 318         if dataset and not on:
    319             raise ValueError('To merge dataset with shapes mapping '
    320                              'must define attribute(s) to merge on.')

/Users/<>/miniconda3/envs/science/lib/python3.5/site-packages/pandas/core/generic.py in __nonzero__(self)
    915         raise ValueError("The truth value of a {0} is ambiguous. "
    916                          "Use a.empty, a.bool(), a.item(), a.any() or a.all()."
--> 917                          .format(self.__class__.__name__))
    918
    919     __bool__ = __nonzero__

ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

The from_records method expects a HoloViews type. You can simply wrap the dataframe in an hv.Dataset, see the example in the docs for more detail:
referendum = pd.read_csv('./assets/referendum.csv')
referendum = hv.Dataset(referendum)
gv.Shape.from_records(shapes.records(), referendum, on='code', value='leaveVoteshare',
                     index=['name', 'regionName'], crs=ccrs.PlateCarree())

Thanks, I missed the bit in the example where the dataframe was wrapped in a dataset. Perhaps this could be done automatically for pandas dataframes?

Thanks, I missed the bit in the example where the dataframe was wrapped in a dataset. Perhaps this could be done automatically for pandas dataframes?

Yes, not a bad idea.

Can't guarantee I'll get to it myself in the near future, very happy to accept PRs though.

This was implemented in be9eb7b031bccd5517887b4db9de3a771cb01584. Closing.

authors: mangecoeur philippjfr

repo: ioam/geoviews

license_source: bigquery


text:
Ensure changing CDS columns do not trigger errors

In https://github.com/ioam/holoviews/pull/3158 I made a change to the way bokeh events are handled, which sent each bokeh model change as a separate event and thereby avoided an error triggered by one event breaking a plot irreparably because subsequent errors would be ignored. Unfortunately that change introduced a noticeable delay between a CDS data and color mapper ranges being updated, resulting in undesirable flicker on updates. It was also a bit of a hack around the actual issue because the underlying issue would still trigger errors. This PR reverts that change and fixes the underlying problem.
It does this through a fairly involved change, so I'll step through it slowly:

It detects whether a glyph dataspec references a CDS.data column which does not yet exist
If this is the case it triggers a new ModelChangedEvent which replaces the data with empty columns which do contain the new column(s) and the old column(s)
Once the glyph has been updated to reference the new column(s), it sends another event containing the actual data

Going to merge so I can continue working on other PRs that depend on this.

repo: ioam/holoviews


text:
Incorrect output like 'reported error function toString() { [native code] }'

toString is missing () at several code places resulting in off behavior.
i.e.
        case snmp.ObjectType.OctetString: {
            switch (pFormat) {
                case F_TEXT /* 0 */:
                case F_AUTO /* 99 */:
                default:
                    retval.val = pVarbind.value.toString();
                    retval.format = F_TEXT;
                    break;
                case F_NUMERIC /* 1 */: {
                    const valint = parseInt(pVarbind.value.toString, 10);
                    retval.val = valint;
                    if (isNaN (valint)) retval.qual=0x01; // general error
                    break;
                }
                case F_BOOLEAN /* 2 */: {
                    const valint = parseInt(pVarbind.value.toString, 10);
                    retval.val = valint !== 0;
                    if (isNaN (valint)) retval.qual=0x01; // general error
                    break;

fixed with 2.4.8


text:
Adapter don t  start..

actual Version on Git don t start:
`

host.Masterbroker
2019-08-06 14:09:43.195
error
instance system.adapter.wifilight-community.0 terminated with code 0 (OK)

Caught
2019-08-06 14:09:43.195
error
by controller[0]:     at Socket.onack (/opt/iobroker/node_modules/socket.io-client/lib/socket.js:312:9)

Caught
2019-08-06 14:09:43.195
error
by controller[0]:     at Socket.that.objects.getObjectView  (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:2732:25)

Caught
2019-08-06 14:09:43.195
error
by controller[0]:     at /opt/iobroker/node_modules/iobroker.wifilight-community/node_modules/soef/soef.js:848:21

Caught
2019-08-06 14:09:43.195
error
by controller[0]:     at safeCallback  (/opt/iobroker/node_modules/iobroker.wifilight-community/node_modules/soef/soef.js:188:13)

Caught
2019-08-06 14:09:43.195
error
by controller[0]:     at /opt/iobroker/node_modules/iobroker.wifilight-community/node_modules/soef/soef.js:1297:9

Caught
2019-08-06 14:09:43.195
error
by controller[0]:     at main (/opt/iobroker/node_modules/iobroker.wifilight-community/main.js:917:54)

Caught
2019-08-06 14:09:43.195
error
by controller[0]:     at WifiLight.run (/opt/iobroker/node_modules/iobroker.wifilight-community/main.js:170:10)

Caught
2019-08-06 14:09:43.195
error
by controller[0]:     at WifiLight.createDevice (/opt/iobroker/node_modules/iobroker.wifilight-community/main.js:197:19)

Caught
2019-08-06 14:09:43.195
error
by controller[0]:     at CDevice.getFullId  (/opt/iobroker/node_modules/iobroker.wifilight-community/node_modules/soef/soef.js:1113:20)

Caught
2019-08-06 14:09:43.194
error
by controller[0]:     at dcs (/opt/iobroker/node_modules/iobroker.wifilight-community/node_modules/soef/soef.js:304:33)

Caught
2019-08-06 14:09:43.194
error
by controller[0]: TypeError: Cannot read property '0' of undefined

wifilight-community.0
2019-08-06 14:09:43.186
info
terminating

wifilight-community.0
2019-08-06 14:09:43.182
error
at Socket.onack (/opt/iobroker/node_modules/socket.io-client/lib/socket.js:312:9)

wifilight-community.0
2019-08-06 14:09:43.182
error
at Socket.that.objects.getObjectView (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:2732:25)

wifilight-community.0
2019-08-06 14:09:43.182
error
at /opt/iobroker/node_modules/iobroker.wifilight-community/node_modules/soef/soef.js:848:21

wifilight-community.0
2019-08-06 14:09:43.182
error
at safeCallback (/opt/iobroker/node_modules/iobroker.wifilight-community/node_modules/soef/soef.js:188:13)

wifilight-community.0
2019-08-06 14:09:43.182
error
at /opt/iobroker/node_modules/iobroker.wifilight-community/node_modules/soef/soef.js:1297:9

wifilight-community.0
2019-08-06 14:09:43.182
error
at main (/opt/iobroker/node_modules/iobroker.wifilight-community/main.js:917:54)

wifilight-community.0
2019-08-06 14:09:43.182
error
at WifiLight.run (/opt/iobroker/node_modules/iobroker.wifilight-community/main.js:170:10)

wifilight-community.0
2019-08-06 14:09:43.182
error
at WifiLight.createDevice (/opt/iobroker/node_modules/iobroker.wifilight-community/main.js:197:19)

wifilight-community.0
2019-08-06 14:09:43.182
error
at CDevice.getFullId (/opt/iobroker/node_modules/iobroker.wifilight-community/node_modules/soef/soef.js:1113:20)

wifilight-community.0
2019-08-06 14:09:43.182
error
at dcs (/opt/iobroker/node_modules/iobroker.wifilight-community/node_modules/soef/soef.js:304:33)

wifilight-community.0
2019-08-06 14:09:43.182
error
TypeError: Cannot read property '0' of undefined

wifilight-community.0
2019-08-06 14:09:43.181
error
uncaught exception: Cannot read property '0' of undefined

wifilight-community.0
2019-08-06 14:09:43.099
info
starting. Version 0.2.1 in /opt/iobroker/node_modules/iobroker.wifilight-community, node: v8.16.0

host.Masterbroker
2019-08-06 14:09:42.764
info
instance system.adapter.wifilight-community.0 started with pid 30098

host.Masterbroker
2019-08-06 14:09:42.752
info
object change system.adapter.wifilight-community.0

`

any news about? no changes with node 10.16.3, and js-controller 2.0.35.

fixed with 1.1.0


text:
Bug: Navigating to a page from the callback function of the native BLE connect method renders the ion-segment component inoperable on the target page

Ionic version:  (check one with "x")
(For Ionic 1.x issues, please use https://github.com/ionic-team/ionic-v1)
[ ] 2.x
[x ] 3.9.2
[] 4.x
I'm submitting a ...  (check one with "x")
[x] bug report
[ ] feature request
Please do not submit support requests or "How to" questions here. Instead, please use one of these channels: https://forum.ionicframework.com/ or http://ionicworldwide.herokuapp.com/
Current behavior:
Navigating to a page from the callback function from the native BLE connect() method renders the ion-segment component inoperable on the target page.
Expected behavior:
The ion-segment component should continue to work as expected after navigating.
Steps to reproduce:
I've provided an ionic3 application that reproduce the problem.
Simply deploy the application on ionic DevApp on an android device then on the home page simply press scan for BLE devices then press the connect button on any discovered device to navigate to the DevicePage that demonstrates the problem. Thanks!
Related code:
Here is the application: https://github.com/dgoosse/show
connect(device: any) {
    this.scanning = true;
    console.log("connecting to " + device.name);
    this.ble.connect(device.id).subscribe(device => this.onConnected(device), error => this.onConnectedError(error));
  }

  onConnected(device: any) {
    this.scanning = false;
    this.device = device;
    console.log("connected to " + device.id);
    this.navCtrl.push('DevicePage', { "device": device });
  }

Other information:
Ionic info: (run ionic info from a terminal/cmd prompt and paste output below):
ionic info

cli packages: (/usr/local/lib/node_modules)

    @ionic/cli-utils  : 1.19.0
    ionic (Ionic CLI) : 3.19.0

global packages:

    cordova (Cordova CLI) : 7.1.0

local packages:

    @ionic/app-scripts : 3.1.0
    Cordova Platforms  : android 6.3.0
    Ionic Framework    : ionic-angular 3.9.2

System:

    Node : v6.11.5
    npm  : 5.4.2
    OS   : macOS High Sierra

Environment Variables:

    ANDROID_HOME : not set

Misc:

    backend : legacy

Hello! Thank you for opening an issue with us!
It is hard to say if this is an issue with the Ionic Framework or with Ionic Native or with the plugin itself, but I see you already entered this in Ionic Native so I will leave that one open and close this one.
https://github.com/ionic-team/ionic-native/issues/2149
Thank you for using Ionic

authors: dgoosse kensodemann

repo: ionic-team/ionic


text:
Breaking change missing: attributes for ion-tabs

For your page, in ionic 3:
<ion-tabs [tabsPlacement]="tabsPlacement" [tabsLayout]="tabsLayout">

In ionic 4:
<ion-tabs [tabbarPlacement]="tabsPlacement" [tabbarLayout]="tabsLayout">

Cheers

Btw, title changed for label therefore tabbarLayout should have possibly value label-hideand not title-hide ;)

Thanks for the issue! I was actually just working on adding these. :smile:

@brandyscarney thanks for updating.
Fyi, https://github.com/ionic-team/ionic/issues/14611 is not working at all despite following comments in tabs.d.ts, thanks for the hard work !

authors: brandyscarney gydammin


text:
Proposal: ionic start in current working directory

Right now, ionic start . is interpreted as "create a project named .".
$ mkdir project; cd project
$ ionic start .
Please name your Ionic project something meaningful other than '.'

Instead, ionic start . could take the project name from the current working directory
$ mkdir project; cd project
$ ionic start .
Creating Ionic app in folder /home/me/project

I don't think this behaviour is surprising, but the user could be asked to approve if ionic is running in an interactive shell (ionic start is not a command that you repeatedly run):
$ ionic start .
Create project in current directory? [Y/n]

Greetings @slezica!
My sensors indicate that you need to update your issue through our custom issue form. We are now requiring all issues to be submitted this way, to ensure that we have all of the information necessary to fix them as quickly as possible.
Click Here To Update Your Issue
I will have no choice but to close this issue if it is not resubmitted through the form. Please fill out the rest of the form, so that I may use my friendly robot powers to assist you.
Thank you!

Turning an existing directory in to an ionic project opens a bigger can of worms than the benefits weigh. Sorry, not this time around.

What kind of worms, exactly?

I think the README should probably be changed then, to say, start with ionic start proj tabs then cd into that directory, and then do git add remote, git push.
I think the problem is people make the repo, check it out (or just git init) and then try to run the ionic start command, and it fails, or it makes another folder in their project, and they are confused.

authors: Cheezmeister Ionitron nycynik perrygovier slezica


text:
own-props-must-be-private for private properties

The own-props-must-be-private persists even for private properties. E.g.
@Component(/* ... */)
class MyComponent {
  #privateProperty = "secret";  // <-- false positive
}

I need this in my project, so I've made a PR. Hopefully the maintainers will come back soon and update 😄

authors: StevenMeyer runarberg

repo: ionic-team/stencil-eslint


text:
Not Able to run application in latest Flutter Version 3.0.0

Describe the bug
Not able to run the application with the latest version of flutter. Getting Below compile-time error.
/C:/Users/Deval/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/getwidget-2.0.5/lib/components/sticky_header/gf_sticky_header_builder.dart:63:28: Warning: Operand of null-aware operation '?.' has type 'WidgetsBinding' which excludes null.

'WidgetsBinding' is from 'package:flutter/src/widgets/binding.dart' ('/C:/Users/Deval/AppData/Local/Flutter/flutter/packages/flutter/lib/src/widgets/binding.dart').
WidgetsBinding.instance?.endOfFrame.then((_) {
^
/C:/Users/Deval/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/platform-3.0.0/lib/src/interface/local_platform.dart:46:19: Error: Member not found: 'packageRoot'.
io.Platform.packageRoot; // ignore: deprecated_member_use
^^^^^^^^^^^

FAILURE: Build failed with an exception.

Where:
Script 'C:\Users\Deval\AppData\Local\Flutter\flutter\packages\flutter_tools\gradle\flutter.gradle' line: 1156

What went wrong:
Execution failed for task ':app:compileFlutterBuildDebug'.

Process 'command 'C:\Users\Deval\AppData\Local\Flutter\flutter\bin\flutter.bat'' finished with non-zero exit value 1

Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

Get more help at https://help.gradle.org

BUILD FAILED in 15s
Exception: Gradle task assembleDebug failed with exit code 1
Flutter Doctor
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, 3.0.0, on Microsoft Windows [Version 10.0.22000.675], locale en-IN)
[√] Android toolchain - develop for Android devices (Android SDK version 32.0.0)
[√] Chrome - develop for the web
[X] Visual Studio - develop for Windows
X Visual Studio not installed; this is necessary for Windows development.
Download at https://visualstudio.microsoft.com/downloads/.
Please install the "Desktop development with C++" workload, including all of its default components
[√] Android Studio (version 2021.2)
[√] VS Code (version 1.67.1)
[√] Connected device (4 available)
[√] HTTP Host Availability
! Doctor found issues in 1 category.

yes, also the problem is running on 3.0

There is no update for this version 3.0.0

@devalp-pro , @SalahCheihbi New update for GetWidget has been releasesed

repo: ionicfirebaseapp/getwidget


text:
enhancement: add storage deposit to native token minting

Summary
This PR includes the preparation of the foundry creation  to deduce and display the required storage deposit
Changelog
- add storage deposit to native token minting

Relevant Issues
Closes #4892
Testing
Platforms

Please select any platforms where your changes have been tested.

Desktop

[ ] MacOS
[ ] Linux
[ ] Windows

Mobile

[ ] iOS
[ ] Android

Instructions

Please describe the specific instructions, configurations, and/or test cases necessary to test and verify that your changes work as intended.

...
Checklist

Please tick all of the following boxes that are relevant to your changes.

[ ] I have followed the contribution guidelines for this project
[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have added or modified tests that prove my changes work as intended
[ ] I have verified that new and existing unit tests pass locally with my changes
[ ] I have verified that my latest changes pass CI workflows for testing and linting
[ ] I have made corresponding changes to the documentation

Also something seems to have broken the alias id selector and it is showing undefined on the mint nft form. Perhaps we can fix that quickly in this pr.

authors: MarkNerdi nicole-obrien

repo: iotaledger/firefly


text:
Expose potential and decayed mana computation to bindings

Description
One should be able to compute how much mana is generated and decayed from a specific slot to another one
Motivation
So one can determine when one has enough mana to do something
Are you planning to do it yourself in a pull request?
No.

Closed by https://github.com/iotaledger/iota-sdk/pull/1874

authors: Thoralf-M thibault-martinez

repo: iotaledger/iota-sdk


text:
Message interface events

Description of change
Add event handling to message interface
Type of change

Enhancement (a non-breaking change which adds functionality)

Change checklist
Tick the boxes that are relevant to your changes, and delete any items that are not.

[x] I have performed a self-review of my own code
[x] I have added tests that prove that my feature works
[x] I have checked that new and existing unit tests pass locally with my changes

Closed this because I rebased on the wrong branch, see https://github.com/iotaledger/wallet.rs/pull/897 for correct one.


text:
🛑 备用KMS激活服务器 01 is down

In abd9d81, 备用KMS激活服务器 01 (s11.ikms.eu.org) was down:

HTTP code: 0
Response time: 0 ms

Resolved: 备用KMS激活服务器 01 is back up in f3bf325 after 21 minutes.

repo: iougemini/ikms-uptime


text:
🛑 备用KMS激活服务器 06 is down

In bbefbbe, 备用KMS激活服务器 06 (s06.ikms.eu.org) was down:

HTTP code: 0
Response time: 0 ms

Resolved: 备用KMS激活服务器 06 is back up in a670cb4 after 48 minutes.


text:
Remove self-ref files page link in "no files" screen

Removes the files screen's "manage files" link to itself when displaying no-files-here welcome text
Changes "You can drag and drop ..." to "Drag and drop here ..."
Fixes an it's/its typo

Closes https://github.com/ipfs-shipyard/ipfs-webui/issues/1530

@lidel, do you mind taking a look?

repo: ipfs-shipyard/ipfs-webui


text:
docs: add identity RFC

This is a proposal for an identity management system for Peer-Star, named Peer-Star-Identity. It's built upon standards to provide a good foundation for Peer-Star applications to authenticate and identify users.

I'm very excited to hear all of your feedback!

It's unclear to me how the identity-manager is aware of all of the devices?

It depends on the DID method. A naive solution for uPort is to use an attestation (something like IDM-Devices) to store an array of the devices. When a IDM gets setup on a new device, this array has one element. When IDM gets setup on a second device, this array will have two elements. Ofcourse the user will be prompted to accept the attestation on every device.

Say they're using uport -- which has an attested DID, is this their root identity and key?

Yes.
How does that get them a list of other devices that they logged in with?

Answered in the first question.

Hey, @fritzy, thank you for your comments. You point out some aspects which can be clarified in the RFC, @satazor and I will get to it. Regarding some of your questions,

Are they going to use their ethereum key as their root key?

That would be the case  if the user chooses to use an Ethereum based DID (such as ERC-725)

The web3 sign method doesn't work in any gateway that I've tried.

I am not entirely sure I understand the problem. I have used web3.eth sign methods before, usually in the browser, with Metamask, but also in a Nodejs environment using eth-sign-util. In order for the function to work you need to have your Ethereum account unlocked, so you need to call web3.eth.personal.unlockAccount() before calling the sign() function.
If, however, there is another problem with web3 signature methods, maybe you could open an issue on the Web3.js repo, so the team is made aware.

I've updated the RFC where I mistakenly said the the Session Private Keys where generated and stored on applications side.

repo: ipfs-shipyard/peer-star


text:
Update apps.yaml

What kind of PR is this?
Select only one to speed up review/approval; i.e., don't lump an addition and a removal into a single PR.

[x] Adding something new to awesome-ipfs
[ ] Editing something already listed on awesome-ipfs
[ ] Removing something from awesome-ipfs
[ ] Something else (if so, please explain in the "Additional details" section below)

Pre-submit checklist
Please confirm ALL of the following before submitting your PR.

[x] This PR includes only one addition, removal, or edit.
[x] I edited the /data directory instead of the README.md.
[x] I reviewed the content policy and the and the IPFS Community Code of Conduct to ensure my submission meets the requirements.
[x] I have followed the CONTRIBUTING.md guidelines.

Additional details
Is there anything else we should know about this PR?

For new additions: What is your project's current size/reach?

1500 monthly users

For new additions: What is your project's potential size/reach?

For new additions: How critical is IPFS to your project?

[x ] Essential
[ ] Somewhat critical
[ ] Useful, but not critical

For new additions: What core goal(s) does your project address?

[ ] Big-data solutions
[x] Freedom from corporate/government interference
[x] Data integrity
[ ] Dev tools or other ways to enable developers
[] Disaster resilience/recovery
[x] File storage/retrieval
[ ] File streaming
[] Permanent archiving
[ ] Self-sovereign identity
[ ] Platforms that utilize consensus, reputation, or incentivization
[ ] Other (please list)

Is anything about IPFS blocking your project?

Thanks for taking the time to review! My team and I built this consumer app on top of the IPFS network for users looking for a more secure & distributed file storage solution. Cheers!

Hey @piano375,
We've rebooted this list and require submissions to be open source to be in the apps/tools.
Is Auguron still active? We could add it to the services/platforms section.

repo: ipfs/awesome-ipfs


text:
Embed and Key Creation examples

I've included an example of creating an IPNS entry and embedding a public key into it, as well as generating an RSA and ED25519 keypair. I've included test files as well.

Thanks!

authors: Stebalien postables

repo: ipfs/go-ipns


text:
Cladistic tree of depths of integration

Preface: Understanding package managers -- let alone comprehensively enough to begin to describe the design spaces for growing them towards decentralizating and imagining the design space future ones -- is eternally tricky.  I've been hoping to get some more stuff rolling in terms of either short checklists, or terminology that we might define to help shortcut design discussions to clarity faster, and so on.  This is another attempt, and it certainly won't be an end-all, all-inclusive, etc; but it's a shot.
This is a quick, fairly high-level outline of tactical implementation choices that one could imagine making when designing a package manager with some level of IPFS integration.

We could present this as a cladistic tree of tactical choices, one bool choice at a time:

using IPFS: NO

(effect: womp womp)

using IPFS: YES

aware of IPFS for content: NO

(effect: this is implemented by doing crass bulk snapshotting of some static http filesystem.  works, but bulky.)

aware of IPFS for content: YES

(effect: means we've got CIDs in the index metadata.)
uses IPFS for index: NO

(effect: well, okay, at least we provided a good content bucket!)
(effect: presumably this means some centralized index service is in the mix.  we don't have snapshotting over it.  we're no closer to scoring nice properties like 'reproducible resolve'.)

uses IPFS for index: YES

(effect: pkgman clients can do full offline operation!)
(effect: n.b., it's not clear at this stage whether we're fully decentralized: keep reading.)
index is just bulk files: YES

(effect: easiest to build this way.  leaves a lot of work on the client.  not necessarily very optimal -- need to get the full index as files even if you're only interested in a subset of it.)
(effect: this does not get us any closer to 'pollination'-readiness or subset-of-index features -- effectively forces centralization for updating the index file...!!!)

index is just bulk files: NO

(effect: means we've got them to implement some index features in IPLD.)
(effect: dedup for storage should be skyrocketing, since IPLD-native implementations naturally get granular copy-on-write goodness.)
(effect: depends on how well it's done...!  but this might get us towards subsets, pollination, and real decentralization.)
TODO: EXPAND THIS.  What choices are important to get us towards subsets, pollination, and real decentralization?

The "TODO" on the end is intentional :) and should be read as an open invitation for future thoughts.  I suspect there's a lot of diverse choices possible here.

Another angle for looking at this is which broad categories of operation are part of the duties typically expected of the hosting side of a package manager:

distributing (read-only) content
distributing (read-only) "metadata"/"index" data -- mapping package names to content IDs, etc
updating the "metadata"/"index" -- accepting new content, reconciling metadata changes, etc

This is a much more compact view of things, but interestingly, the cladistic tree above maps surprising closely to this: as the tree above gets deeper, we're basically moving from "content" to "distributing the index" to (at the end, in TODOspace of the cladistic tree) "distributed publishing".

These are just a couple of angles to look at things from.  Are there better ways to lay this out?  Can we resolve deeper into that tree to see what yet-more decentralized operations would look like?

I put together a quick visual tree version of this on mural: https://app.mural.co/t/protocollabs6957/m/protocollabs6957/1556717261380/7d93181e586fc3416ef88a42ba6d6df4b964c89b

Planning on expanding it with the different paths that certain categories of package manager are likely to take.

Going to be moving the content of this issue into the /docs in the repository in https://github.com/ipfs/package-managers/pull/53

Wow, TIL that Mural is incredibly lacking as far as flowcharting is concerned. Sadness. With that in mind and with apologies to @andrew, I reorganized this in more of a table structure so that we could add @warpfork's original explanatory text (and ideally make this more consumable by external audiences). Link to the Mural is here and screenshot pasted below for good measure.
@andrew -- when you get a moment, do you mind moving the Mural out of your personal room and into the main package managers directory I just added to Mural?
Everyone else -- suggestions/addenda/corrections more than welcome!

Ohwow, you managed to add nontrivial amounts of text to mural, AND make it pretty.  This is super nice! :D:D
One thing I notice now that I look at the content in this nice layout is that the last branch is kind of a pattern-breaker: all the earlier ones, "yes" is the "nice" answer.  Not so with the last one.  If anyone can think of a better way to phrase that question, I think there's deffo room for improvement there.

@warpfork Yeah, that bothered me too. See below for alternate, but is "granular" the right word to use in the blue question box? Is there a better word?

Slightly related old pile of notes I made for approaches based on different implementations: https://gist.github.com/andrew/cda6a99556152e3a65794406d093fada

I also attempted to make the tree as a mermaid diagram: https://hackmd.io/rX0G1w1oQJGXh5kwlRZovw

Works quite well, although you have to control the line breaks yourself which is slightly annoying with longer lines of text.

authors: andrew jessicaschilling warpfork

repo: ipfs/package-managers


text:
键盘问题

点击标签进入搜索结果界面，右滑返回时取消，再右滑返回，会有键盘显示，在viewWillAppear里面直接[self.searchBar becomeFirstResponder];没有做处理

谢谢反馈！及时修复了。 欢迎下载最新版测试！

license: mit


text:
Getting static pictures

Hello.
I am trying Crow and had a problem of transfer static pictures from server to client(browser).
My program looks like:
void sendFile(crow::response& res, std::string filename, std::string contentType) {
    std::string ROOT_DIR = "publics/";
    std::string filename_path = ROOT_DIR.append(filename);
    std::ifstream InputContent;
    InputContent.open(filename_path, std::ifstream::in);
    InputContent.exceptions(std::ifstream::failbit | std::ifstream::badbit);
    std::ostringstream stringStream;
    stringStream << InputContent.rdbuf();
    InputContent.close();
    res.add_header("Content-Type", contentType);
    res.write(stringStream.str());
    res.end();
}
void sendHtml(crow::response& res, std::string filename) {
    sendFile(res, filename.append(".html"), "text/html");
}

void sendScript(crow::response& res, std::string filename) {
    std::string path = "js/" + filename;
    sendFile(res, path, "text/script");
}

void sendImage(crow::response& res, std::string filename) {
    std::string path = "images/" + filename;
    sendFile(res, path, "image/jpeg");
}

void sendStyle(crow::response& res, std::string filename) {
    std::string path = "css/" + filename;
    sendFile(res, path, "text/css");
}
int main()
{
    crow::SimpleApp app;

    CROW_ROUTE(app, "/")([](const crow::request& req, crow::response& res) {
        sendHtml(res, "index");
        });

    CROW_ROUTE(app, "/js/<string>")([](const crow::request& req, crow::response& res, std::string filename) {
        sendScript(res, filename);
        });

    CROW_ROUTE(app, "/css/<string>")([](const crow::request& req, crow::response& res, std::string filename) {
        sendStyle(res, filename);
        });
    CROW_ROUTE(app, "/images/<string>")([](const crow::request& req, crow::response& res, std::string filename) {
        sendImage(res, filename);
        });
    app.port(18080).multithreaded().run();
}

But on client (in browser) I got empty pictures.
Can you help me with this issuee?

What browser's 'Inspector' shows? Maybe this will help: https://github.com/mrozigor/mrozigor.net/blob/master/src/controllers/ResourcesController.cpp

Solution is here:
void sendFile(crow::response& res, std::string filename, std::string contentType) {

    std::string ROOT_DIR = "publics/";
    std::string filename_path = ROOT_DIR.append(filename);

    if (contentType == "images/jpeg") {

        std::ifstream inf(filename_path, std::ios::binary | std::ios::_Nocreate | std::ios::_Noreplace);
        std::vector<unsigned char> content;

        if (inf.is_open()) {

            inf.seekg(std::ios::beg);
            char c;
            while (!inf.eof())
            {
                inf.get(c);
                content.push_back(c);
            }

            inf.close();

            res.add_header("Content-Type", contentType);

            // Not really necessarily, but you can add them if you want to send these info to clients
            res.add_header("Content-Transfer-Encoding", "binary");   // you need to adapt the encoding type as not all file are send as binary (html, css, js are text file)
            res.add_header("Content-Length", std::to_string(content.size()));
            res.add_header("Charset", "ISO-8859-4");

            std::string output;
            std::for_each(
                std::begin(content), std::end(content),
                [&output](auto x) { output.append(1u, static_cast<char>(x)); }
            );
            res.write(output);
        }

        else {
            res.code = 404;
            res.write("Content not found...");
        }
    }
    else {

        std::string ROOT_DIR = "publics/";
        std::string filename_path = ROOT_DIR.append(filename);

        try {

            std::ifstream InputContent;
            InputContent.open(filename_path, std::ifstream::in);
            InputContent.exceptions(std::ifstream::failbit | std::ifstream::badbit);

            std::ostringstream stringStream;
            stringStream << InputContent.rdbuf();
            InputContent.close();

            res.add_header("Content-Type", contentType);
            res.write(stringStream.str());
        }
        catch (const std::exception& e)
        {
            std::cerr << e.what() << std::endl;
            res.code = 404;
            res.write("Content not found...");
        }
    }

    res.end();
}

authors: lapleski mrozigor

repo: ipkn/crow


text:
🛑 NowBoarding (tokyo) is down

In 8339fb2, NowBoarding (tokyo) (https://tokyo.nowboarding.club/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: NowBoarding (tokyo) is back up in 28c771b after 7 minutes.

repo: iplanwebsites/up


text:
🛑 NowBoarding (tokyo) is down

In e74e85c, NowBoarding (tokyo) (https://tokyo.nowboarding.club/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: NowBoarding (tokyo) is back up in 38a4be2 after 29 minutes.


text:
Wrong count of days in month

I disabled gray color to show this )
My region: country Russia and city Volgograd

I have the same issues and if I print the date I selected, it always prints the day before the one I selected and the hour is always 11.00 PM.

Its fix very easy)) add one day to ruturn date or add day while you init cell

i find solution to fix this )

@TAIIOK It would be really helpful and a ton of thanks to you if you can create a pull request for this :]

@ipraba i create pull )

authors: TAIIOK iFede94 ipraba

repo: ipraba/EPCalendarPicker


text:
Ports im install-script auswählen

Wenn man die Fehlerseite einrichten möchte, muss das setup nicht auf den ports 80/443 laufen, sondern anderswo. Vielleicht sollte das Setup-Script das abfragen?

Bin für Prod daran gescheitert einen anderen Port als 443 nutzbar zu machen. Daher erstaml nur für dev.

authors: paflov rhenck

repo: iqb-berlin/testcenter


text:
Error at loop step 52 or  foutarr{}(0) -- MATLAB:nonExistentField -- Reference to non-existent field 'N_EL'.

7fd582e Fredrik Johansson (2019-07-01 02:25:06 +0200) (HEAD -> master, origin/master, origin/HEAD) untested: MIP_XCAL interval filter

Found in ESC1-2, EXT1-3
Not found in ESC3, PRL
Related to issue #39 ? After this error, there is always an issue #39 error (not reverse).
Downsampling low frequency measurements
printing /data/rosetta/PDS_Archives/DATASETS/delivery/delivery_2019-06-30_DERIV_science_mp/gen_2019-04-17/gen_2019-06-26/RO-C-RPCLAP-5-ESC3-DERIV-V1.0/2015/JUL/D31/RPCLAP_20150731_091304_827_NEL.TAB, mode: Ion
skipping because of bool RPCLAP_20150731_091304_827_NEL.TAB, mode: Ion
printing /data/rosetta/PDS_Archives/DATASETS/delivery/delivery_2019-06-30_DERIV_science_mp/gen_2019-04-17/gen_2019-06-26/RO-C-RPCLAP-5-ESC3-DERIV-V1.0/2015/JUL/D31/RPCLAP_20150731_091304_32S_NEL.TAB, mode: I
Error at loop step 52 or  foutarr{}(0), file /data/rosetta/PDS_Archives/DATASETS/delivery/delivery_2019-06-30_DERIV_science_mp/gen_2019-04-17/gen_2019-06-26/RO-C-RPCLAP-5-ESC3-DERIV-V1.0/2015/JUL/D31/RPCLAP_20150731_091304_827_I1L.TAB
ans =
MATLAB:nonExistentField
ans =
Reference to non-existent field 'N_EL'.
an_NEL, 365,analysis, 99,rerun_analysis_createLBL___INTERNAL, 106,@()rerun_analysis_createLBL___INTERNAL(pdDatasetPath,ldDatasetPath,selectedSegments), 35,call_function_pointer, 207,lapdog_convention_wrapper, 188,rerun_analysis_createLBL, 34,macrono1=802, 2=802
some removal of saturation or contamination signatures. printing /data/rosetta/PDS_Archives/DATASETS/delivery/delivery_2019-06-30_DERIV_science_mp/gen_2019-04-17/gen_2019-06-26/RO-C-RPCLAP-5-ESC3-DERIV-V1.0/2015/AUG/D18/RPCLAP_20150818_193457_802_EFL.TAB, macro: 802
macrono1=802, 2=802
some removal of saturation or contamination signatures. printing /data/rosetta/PDS_Archives/DATASETS/delivery/delivery_2019-06-30_DERIV_science_mp/gen_2019-04-17/gen_2019-06-26/RO-C-RPCLAP-5-ESC3-DERIV-V1.0/2015/AUG/D25/RPCLAP_20150825_141945_802_EFL.TAB, macro: 802
macrono1=802, 2=802
some removal of saturation or contamination signatures. printing /data/rosetta/PDS_Archives/DATASETS/delivery/delivery_2019-06-30_DERIV_science_mp/gen_2019-04-17/gen_2019-06-26/RO-C-RPCLAP-5-ESC3-DERIV-V1.0/2015/SEP/D04/RPCLAP_20150904_140449_802_EFL.TAB, macro: 802
macrono1=802, 2=802
some removal of saturation or contamination signatures. printing /data/rosetta/PDS_Archives/DATASETS/delivery/delivery_2019-06-30_DERIV_science_mp/gen_2019-04-17/gen_2019-06-26/RO-C-RPCLAP-5-ESC3-DERIV-V1.0/2015/SEP/D18/RPCLAP_20150918_143202_802_EFL.TAB, macro: 802
Further below in same log file:

some removal of saturation or contamination signatures. printing /data/rosetta/PDS_Archives/DATASETS/delivery/delivery_2019-06-30_DERIV_science_mp/gen_2019-04-17/gen_2019-06-26/RO-C-RPCLAP-5-ESC3-DERIV-V1.0/2015/OCT/D16/RPCLAP_20151016_160410_802_EFL.TAB, macro: 802
macrono1=802, 2=802
some removal of saturation or contamination signatures. printing /data/rosetta/PDS_Archives/DATASETS/delivery/delivery_2019-06-30_DERIV_science_mp/gen_2019-04-17/gen_2019-06-26/RO-C-RPCLAP-5-ESC3-DERIV-V1.0/2015/OCT/D17/RPCLAP_20151017_180411_802_EFL.TAB, macro: 802
macrono1=802, 2=802
some removal of saturation or contamination signatures. printing /data/rosetta/PDS_Archives/DATASETS/delivery/delivery_2019-06-30_DERIV_science_mp/gen_2019-04-17/gen_2019-06-26/RO-C-RPCLAP-5-ESC3-DERIV-V1.0/2015/OCT/D18/RPCLAP_20151018_200411_802_EFL.TAB, macro: 802
macrono1=802, 2=802
some removal of saturation or contamination signatures. printing /data/rosetta/PDS_Archives/DATASETS/delivery/delivery_2019-06-30_DERIV_science_mp/gen_2019-04-17/gen_2019-06-26/RO-C-RPCLAP-5-ESC3-DERIV-V1.0/2015/OCT/D19/RPCLAP_20151019_220411_802_EFL.TAB, macro: 802
printing /data/rosetta/PDS_Archives/DATASETS/delivery/delivery_2019-06-30_DERIV_science_mp/gen_2019-04-17/gen_2019-06-26/RO-C-RPCLAP-5-ESC3-DERIV-V1.0/2015/AUG/D18/RPCLAP_20150818_193457_802_USC.TAB, mode: vfloat
Error at loop step 2 or  foutarr{}(2698), file /data/rosetta/PDS_Archives/DATASETS/delivery/delivery_2019-06-30_DERIV_science_mp/gen_2019-04-17/gen_2019-06-26/RO-C-RPCLAP-5-ESC3-DERIV-V1.0/2015/AUG/D18/RPCLAP_20150818_193457_802_V2L.TAB
ans =
MATLAB:structRefFromNonStruct
ans =
Struct contents reference from a non-struct array object.
an_USCprint, 28,an_downsample, 510,analysis, 113,rerun_analysis_createLBL___INTERNAL, 106,@()rerun_analysis_createLBL___INTERNAL(pdDatasetPath,ldDatasetPath,selectedSegments), 35,call_function_pointer, 207,lapdog_convention_wrapper, 188,rerun_analysis_createLBL, 34,printing /data/rosetta/PDS_Archives/DATASETS/delivery/delivery_2019-06-30_DERIV_science_mp/gen_2019-04-17/gen_2019-06-26/RO-C-RPCLAP-5-ESC3-DERIV-V1.0/2015/AUG/D18/RPCLAP_20150818_193457_802_NEL.TAB, mode: vfloat
Probe sometimes shadowed, switching probes
printing /data/rosetta/PDS_Archives/DATASETS/delivery/delivery_2019-06-30_DERIV_science_mp/gen_2019-04-17/gen_2019-06-26/RO-C-RPCLAP-5-ESC3-DERIV-V1.0/2015/AUG/D25/RPCLAP_20150825_141945_802_NEL.TAB, mode: vfloat
printing /data/rosetta/PDS_Archives/DATASETS/delivery/delivery_2019-06-30_DERIV_science_mp/gen_2019-04-17/gen_2019-06-26/RO-C-RPCLAP-5-ESC3-DERIV-V1.0/2015/SEP/D04/RPCLAP_20150904_140449_802_NEL.TAB, mode: vfloat

Resolved in (or before)

5f16609 Fredrik Johansson (2019-07-02 13:16:07 +0200) dumb
(works for all comet phases)


text:
Support for Resizing Attached Ceph Volumes

Summary
This issue proposes a feature to enable resizing of already attached Ceph volumes in our system. The goal is to dynamically update the size of attached Ceph disks without manual intervention.
Proposed Solution
The solution involves the development of a dedicated Go routine with the following functionalities:

Polling the Ceph Cluster: Continuously monitor the Ceph cluster to detect any changes in the size of the Ceph disks. This involves fetching the new size of the Ceph disk if it has been altered.

Polling the VMs on the Host: Simultaneously, the routine should poll the virtual machines (VMs) running on the host to acquire the old-current size of the Ceph disk already attached to the VMs. The Go equivalent of the virsh domblkinfo dom_uid vdb command can be used.

Updating the Disk Size: When a discrepancy in size is detected, the routine should automatically update the size of the attached disk. This could be achieved with a command similar to virsh blockresize dom_uid vdb 10G.

Motivation
Ensuring more flexibility and efficiency in disk management.

main design look good. I have little problem with point 2. How do you mean polling virtual machine? What will be source of vm resources? I would like avoid polling from kubernetes api and i prefer use local cache which has to contain all resources of virtual machines and we can minimize load to API.

There could be 2 solutions to that,

virsh domblkinfo dom_uid vdb returns the size of the disk that's attached as vdb to the VM.
The second approach could be to store the currentSize of the disks to the apiMachine object in the store.

So it is really not about polling but, cross-checking the size of the disks between the Ceph-cluster, and with the VM(either via virsh domblkinfo or store).

i prefer solution compatible with virsh domblkinfo dom_uid vdb. We won't have dependency to API and we will be more flexible during implementation and implementing of live migration in future can be easier because we don't need synchronize information about volume size on multiple places (apiMachine and libvirt volume).

repo: ironcore-dev/libvirt-provider


text:
Fix simple typo: ouput -> output

Closes #781

Coverage remained the same at 95.443% when pulling 2ffe029eed8c96180536b58850b6cb68c9aad3ff on timgates42:bugfix/typo_output into 39326b34e24b71986b573270c11ccbaa58031db6 on ironmussa:master.

repo: ironmussa/Optimus


text:
PaymentService.getPaymentTypes and PaymentService.getCoinbaseAccounts fail due to various data type issues

Call to GET  /payment-methods fails due to:

limits expecting an array, but the response is actually a single value
the return type expected a single PaymentTypes object, but the response is actually an array

See https://docs.gdax.com/#payment-methods
This was fixed by #20 commit 500657d8c743eb1a43aff7f4956de398fd9fac40
Call to GET /coinbase-accounts fails due to:

the return type expected a single CoinbaseAccounts object, but the response is actually an array

See https://docs.gdax.com/#coinbase-accounts
This was fixed by #20 commit f422a9ea79299b3a9f42188b08509382f4446dc4

Fixed in #24

authors: duanemay irufus

repo: irufus/gdax-java


text:
Register telegram.is-app.tech

Added telegram.is-app.tech using the CLI.

I have read the CLA Document and I hereby sign the CLA

CLA Assistant Lite bot: Thank you for your submission, we really appreciate it. Like many open-source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution. You can sign the CLA by just posting a Pull Request Comment same as the below format.

I have read the CLA Document and I hereby sign the CLA

You can retrigger this bot by commenting recheck in this Pull Request

recheck

authors: ICME-BOT LightHostingFree RyanisyydsTT

repo: is-cool-me/register


text:
Cannot run the examples

Describe the bug
I want to run the shapelet_forest_example.py but it ends at reporting the following traceback:
Traceback (most recent call last):
  File "D:/MachineLearningDeveloper/wildboar/examples/shapelet_forest_example.py", line 5, in <module>
    from wildboar.ensemble import ExtraShapeletTreesClassifier, ShapeletForestClassifier
  File "D:\MachineLearningDeveloper\wildboar\wildboar\ensemble\__init__.py", line 18, in <module>
    from ._ensemble import ShapeletForestClassifier
  File "D:\MachineLearningDeveloper\wildboar\wildboar\ensemble\_ensemble.py", line 32, in <module>
    from ..tree import ExtraShapeletTreeClassifier
  File "D:\MachineLearningDeveloper\wildboar\wildboar\tree\__init__.py", line 18, in <module>
    from ._tree import ShapeletTreeClassifier
  File "D:\MachineLearningDeveloper\wildboar\wildboar\tree\_tree.py", line 24, in <module>
    from ._tree_builder import ClassificationShapeletTreeBuilder
ModuleNotFoundError: No module named 'wildboar.tree._tree_builder'

To Reproduce
Steps to reproduce the behavior:
run the shapelet_forest_example.py
Expected behavior
Expect to print out results in the console.
Setup (please complete the following information):

OS: Windows 10 64-bit
Python version: 3.8.6
NumPy version: 1.18.5
Cython version: 0.29.21

Additional context
None

@isaksamsten Please help me, thanks!

@isaksamsten Please help me, thanks!

Thanks for your report!
What version of wildboar are you running?
How did you install? Pip? Or did you compile it?

Thanks for your report!
What version of wildboar are you running?
How did you install? Pip? Or did you compile it?

Dear Isak,
I fixed the problem after following your installation guide.
I guess the issue happened for the lack of a C ++ compiler. Because there is _tree_builder.py and the only source code is '_tree_builder.c'. After I installed the C ++ compiler by installing Visual Studio Build Tools 2019, I can successfully compile and generate the stuff like _tree_builder.cp38-win_amd64.pyd.
Yet that is the whole story. I think this may be a little trap for some newbies, and you can also provide the link I mentioned above in the README.md.
❤ from Hephaest

Dear Isak,
I fixed the problem after following your installation guide.
I guess the issue happened for the lack of a C ++ compiler. Because there is _tree_builder.py and the only source code is '_tree_builder.c'. After I installed the C ++ compiler by installing Visual Studio Build Tools 2019, I can successfully compile and generate the stuff like _tree_builder.cp38-win_amd64.pyd.
Yet that is the whole story. I think this may be a little trap for some newbies, and you can also provide the link I mentioned above in the README.md.
❤ from Hephaest

Great! Glad it works!
I'll update the readme with links to the installation guide.

Great! Glad it works!
I'll update the readme with links to the installation guide.

authors: Hephaest isaksamsten

repo: isaksamsten/wildboar


text:
Bug: sigproc.Counter time offset is over-adjusted

If I understand TimeAxis offset correctly, it provides the time of the first sample in an AxisArray.
Thus, in the following block,
https://github.com/iscoe/ezmsg/blob/43fef1835e6a7fadba65a65e9b6dba83a30d4245/extensions/ezmsg-sigproc/ezmsg/sigproc/synth.py#L130-L140
it should read
offset_adj = (self.STATE.cur_settings.n_time - 1) / self.STATE.cur_settings.fs
e.g., if there is only 1 sample then the adjustment should be 0.

I'm 100% on board with your suggestion here, and I've accepted your PR already.  Completely decoupling from wall-clock time is the correct action.  How about we introduce a new setting:
t_zero: Optional[float] = None
If none, and dispatch rate is realtime, it uses time.time() to define t_zero and behaves like normal.  If None, and dispatch rate is some float, it defaults to 0.0 and behaves from there onward with behavior C, which I like because offset continues to increase as it should.

Just a reminder to myself that I tackled essentially this same problem recently when I added playback-over-LSL to pyxdf.
https://github.com/xdf-modules/pyxdf/pull/95/commits/923fce2dce00216fcb21ebef68bca00502f79b36
I should refer to that (tested) solution when coming back to this issue.

authors: cboulay griffinmilsap

repo: iscoe/ezmsg


text:
🛑 Nroot is down

In e9b4778, Nroot (https://www.nroot.es/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Nroot is back up in a481f7b.

repo: iscrdh/upptime


text:
HTML

#HTML
##User Story
As a bootcamp Student
I want the prework notes to be structured on a webpage
so that I can easily find and read information
##Acceptance Criteria
GIVEN a Prework Study Guide website
WHEN I visit the website in my browser
THEN I see four boxes titled HTML, CSS, and JavaScript with associated notes listed

Done

repo: iskovholt/prework-study-guide


text:
Document branching/release strategy

Documenting #5 in handbook.

@eirikurn @AndriMar can we close this so it is on master and people can access it easily? I can add some of the comments to the content if you guys don't have the time.

Closing in favor of https://github.com/island-is/island.is/pull/2019

authors: eirikurn jeremybarbet pshomov

repo: island-is/handbook


text:
Fix Heatmaps for Android (Mobile)

Heat maps for Android don´t work.

This Issue has been created by mistake. Apologizes, Ismar.

repo: ismarslomic/angular-read-more


text:
time zone switch in schedule does not seem to work

Hi,
I cannot select another timezone then UTC.
The console shows this error:
(index):332 Europe/Amsterdam
(index):333 Uncaught ReferenceError: cons is not defined
    at HTMLAnchorElement.<anonymous> ((index):333)
    at HTMLAnchorElement.dispatch (jquery.js:5430)
    at HTMLAnchorElement.m.handle (jquery.js:5234)

Full log:
ismir2021.ismir.net-1636023076713.log

Hey, I have fixed this with the current version of the page. Please try hard refreshing the schedule page (in case the page is stuck in cache) and check if you're able to switch the timezone.

authors: Ashvala Bomme


text:
revised LUT interpolation

Implementing a faster LUT interpolation.  Requires install of interpolation (latest git pull), via:
pip install poetry # if not already installed
pip install git+https://github.com/econforge/interpolation.py.git/
Tests show 10% speedup on a small 2d LUT grid.  Tests ongoing for bigger LUTs, where it should pay off more.  If it does, we should carefully consider if the re-introduction of numba is worth the efficiency.

After fairly extensive testing, this does not improve speed in a substantial enough manner to warrant inclusion, particularly given the external dependencies!  Withdrawling the PR!

repo: isofit/isofit


text:
🛑 Consuerte.isolucion.co is down

In fc8623c, Consuerte.isolucion.co (https://Consuerte.isolucion.co) was down:

HTTP code: 500
Response time: 15589 ms

Resolved: Consuerte.isolucion.co is back up in 137934d after 5 minutes.

repo: isolucionco/EstadoIsolucionHosting


text:
🛑 colegiobennett.isolucion.co is down

In 49c8f4f, colegiobennett.isolucion.co (https://colegiobennett.isolucion.co) was down:

HTTP code: 0
Response time: 0 ms

Resolved: colegiobennett.isolucion.co is back up in acc1c97 after 13 minutes.


text:
🛑 VPCOM.isolucion.co is down

In 668c03e, VPCOM.isolucion.co (https://VPCOM.isolucion.co) was down:

HTTP code: 0
Response time: 0 ms

Resolved: VPCOM.isolucion.co is back up in 29b3b06 after 27 minutes.