Linux : Diffeomorphic doesn't import standard morphs. Principled option doesn't seem to work. Morphs searching is case sensitive

Issue #939 resolved
Calibrator created an issue

Morphs issue:
What I tried so far
1.6.0.0559 (blender 3.0.1)
1.6.1.0915 (blender 3.1.2)
Reinstalled Daz on a Windows partition, exported the paths file, edited the paths so Linux likes them. (Otherwise it removes all previous paths and adds nothing)
Easy import adds Face Units, Expressions and Visemes. Pressing the Import Standard Morphs button imports nothing, says “no morphs selected”. I can’t import FACS no matter what I do, but I can import the rest of the standard morphs by doing it manually. I will install Blender and Diffeo on Windows later and try it.

Shader issue:
I always select Principled or Reuse Principled but it always imports Daz node groups. Instead i gotta re import a character in 1.6.0.0559 (blender 3.0.1), then append the materials and swap. Far from ideal.

Search issue:
As for searching morphs they aren’t case sensitive in 1.6.0.0559 (blender 3.0.1)
But they are in 1.6.1.0915 (blender 3.1.2)

I thought it was completely broken for me for about a week lol. Is it possible to make case sensitivity optional in search?

Using Manjaro KDE, no idea about numbers I’m a total noob and it should be the latest.

Comments (25)

  1. Thomas Larsson repo owner

    I used to have a computer with Linux, but it broke down a couple of years ago and I haven’t tested since that, so it is quite possible that Linux support is broken. Support for case-sensitive paths was added by somebody a long time ago and I haven’t touched it since, but later I noticed that Blender has a path utilitity library (bpy.path) that should be used instead.

    There are two things to check, but from your description is sounds like you already did that:

    1. The global setting Case-Sensitive Paths should be enabled. That should happen by default on Linux.
    2. Each case-insensitive path must correspond to a unique case-sensitive path. So if you have two different directories called runtime/textures and Runtime/Textures, one of them will not be found.

  2. Calibrator reporter

    Lmao. Sucks that Linux is a pain in this case then. I mean…. I personally can live with this. If you can fix it that would be amazing but ehh I need Windows for stuff anyways. Also I did initially make the daz folders case insensitive but when it comes to morphs it still doesn’t find most, however solved by using Windows for Daz. Works better in every way too.

    On to the other issue, the Shaders importing. I tested on Windows. It’s also a problem there. Imported a char set to Reuse principled with Daz nodes and maxed Top coat for some reason. Gonna have to re import with the last stable version it seems, then swap mats.

    Also while I’m here, I keep having those weird IK dependency issues. Last time I tried i had them on the lower jaw with Tongue IK enabled. Now I enabled Finger IK and I had 1 knuckle on the right pinky drag behind. You got your work cut out for you. I can re import if you need any logs or whatever, just let me know how to get them. Unfortunately I didn’t save iirc.

  3. Thomas Larsson repo owner

    I made a call to bpy.path.resolve_ncase at some places, perhaps that helps. It doesn’t seem to ruin anything on Windows at least, but I am blind to whether it has any effect on Linux.

  4. Calibrator reporter

    I could test it but I think you can easily test it by running manjaro on a USB. You don't need to install it or get rid of windows . Just put the USB in and boot through it, run steam and test.

  5. Aszrael

    Well - I’m on Linux (Manjaro), just updated Daz Importer and Face Units, Expressions, Visemes and Standard Morphs import quite nicely. So seams s.th. wrong with your path setup?

    Your shader issue I do not understand. After import the shaders are the Principle ones, exept within the node groups. But, as I tweak the shaders I do not care.

    I always use Easy import but limit it to Principled (Material Method) Merge Material, Eliminate Empties, Merge Rigs, Make All Bones Poseabel, Merge Toes, Use Favorite Morphs, FACS, FACS Expressions, JCMs, Rig Type, Rigify, (with Finger IK) and Mannequin Nude.

    All works well.

    The only problem with Custom Morphs I have in conjunction with the ‘Node Preview’-Addon enabled.

    source/blender/python/intern/bpy_rna.c:7375 pyrna_srna_Subtype: failed to register 'DAZ_UL_CustomMorphs'
    TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases
    bpy.types.DAZ_UL_CustomMorphs subtype could not be generated, this is a bug!

    btw: can’t tell which version of DAZ importer, as I just pulled the newest from the repo via git (using blender 3.0 and 3.1) directly from the git.

  6. Calibrator reporter

    Sigh why am I cursed? Let's consider it an issue on my end although I don't think it's the paths, i did triple check that they are correct.

    As for the shaders, on the version i wrote above, the newer one, if I select Principled or Reuse principled (from the easy import menu) it simply doesn't care. If I switch to the older one and choose Principled and Reuse principled from the global settings it works like a charm. Much easier to re setup my way.

  7. Aszrael

    well - have you checked the error log of the import? - it tells you which paths are missing.

    I also had some missing '/' at the end, first…

    Where do you find “Reuse principled”?

    My Easy import dialog:

  8. Calibrator reporter

    Oh right, I was confused by the old Global settings. Anyways it doesn’t work. All 3 Material options give the same result. It’s set up for Daz nodes. If either of the 2 Principled options worked it would be extremely helpful. I literally open the last stable version to import again then append the mats lol

  9. Calibrator reporter

    I forgot to reply about the log. Here’s the relevant info which makes no sense to me. I selected all morph categories I could except Favorites.

  10. Thomas Larsson repo owner

    That easy import ignored shaders was a separate issue #929, which is now fixed. That the FACS morphs are not found could be an issue with case-sensitive paths. The plugin looks for the morphs in the "data/DAZ 3D/Genesis 8/Female 8_1/Morphs/DAZ 3D/FACS/" directory (the paths are specified in data/paths/genesis8-female.json).

    What happens if you try to import the face morphs manually, with the Import FACS Units button.

    Edit: I get the same error if I remove the root path under which the FACS morphs live from my global settings.

  11. Calibrator reporter
    1. Amazing! Thanks! I’ll update.
    2. I guess I’ll just use the Windows install for importing lol. I can’t complain, especially after 1 was fixed. ❤ Although I suppose this might potentially be fixed by making the daz folders case insensitive but they are on a Windows NTFS partition and I really don’t wanna mess with stuff.
  12. Thomas Larsson repo owner

    I noticed that in my installation on windows, the G8F morphs are located in the “data/DAZ 3D/Genesis 8/Female/Morphs/DAZ 3D/” directory, but the G8.1F morphs are located in "data/DAZ 3D/Genesis 8/Female 8_1/Morphs/Daz 3D/”. Perhaps that is source of the problem. In the last commit the data paths for the 8.1 morphs have been changed accordingly. I also added an extra call to bpy.path.resolve_ncase, but I don’t think it makes a difference.

  13. Calibrator reporter

    I can download the lastest version and try. I will also try the command to make the paths case insensitive but I will have to ask my linux guru first lol

  14. Aszrael

    “I forgot to reply about the log. Here’s the relevant info which makes no sense to me. I selected all morph categories I could except Favorites.”

    Well you posted the terminal output. 😉

    The log file (or error file) you define in ‘Global settings’. Missing files will be noted down there. It’s a simple .txt. By default it’s in your ~/Document/ Folder. It’s called daz_importer_errors.txt.

    That’s handy, if you installed some non-original DAZ-content or have loaded custom morphs in DAZ, even without knowing it. Than you can simply locate the missing morphs on your Hard Disk and load them via ‘Custom Morphs’ in the plugin - and save them as Favorites for the next time.

    Nevertheless, I understood Thomas has fixed the FACS 8.1F paths in the plugin, already. I cannot double check as I own no 8.1 content. If it’s still not working: try to load the missing morphs as Custom Morphs.

  15. Calibrator reporter

    “Well you posted the terminal output.”
    Goddamn I’m laughing hard about this now. Ok so looking at the log file I got some missing assets on textures and some morphs but none of the default daz ones. This still doesn’t explain why they aren’t found. Best part is, it actually imports the ones that show up in the log…?

    After making the whole partition case insensitive I get more morphs but still not all (image). Log remains the same.

    The latest version imports the same morphs as well 😕 On the up side it will work on Windows, so personally I won’t be bothered by this. Let me know if you need any testing tho.

  16. Thomas Larsson repo owner

    Some day I’m going to find an old computer and install Linux on it for testing. But not in the near future.

  17. Calibrator reporter

    Linux can access ntfs drives without issues it seems, except for case sensitivity. For testing purposes you might be able to use it through a USB without installing it. Not sure if it will be enough but from first glance I can't see any issues.

  18. Thomas Larsson repo owner

    But the whole point with Linux is to test on a computer with a case-sensitive file system at the bottom. That’s the main point where things can go wrong, I think.

  19. Calibrator reporter

    ) thats what I thought too. However if you would like to try it, open any partition with linux through usb and see if its case sensitive. Because I read that NTFS is insensitive, however through linux it was sensitive. That was the weird part. I literally tested a partition that I personally formatted in NTFS, but it seems that it's linux and windows that dictate that instead of the partition. I can't say with certainty cause I don't have much experience with this.

    Also sorry for the weird typing I’m on phone right now and this site hates it.

  20. Aszrael

    NTFS is case sensitive. It also provides access right handling, journaling, etc. It’s actually a great filesystem - but not for Linux or any other operating system!

    The reason you encounter case sensitive access problems is, that windows per se do all file system calls via firstly (and hidden from the user) translating them to upper case. As some authors (-> custom DAZ content) have a broken naming scheme this gets obvious, if you call them from e.g. Linux. While windows cover that via internal upper-case translation, Linux depends on correct and strict file-naming. So Linux cannot find that file.

    Again: the case-sensitivity problem has nothing to do with filesystems here. Python provides libs caring for that (as well as for differences in encoding, folder structures, etc.). I think Thoma’s plugin uses these libs - so most file calls succeed. I don’t know if Thomas implemented it correctly, but I never got problems.

    However: NTFS is per se a bad choice for Linux users. And frankly, it will not help, if Thomas set up an Linux machine, dual booting with a NTFS windows install. NTFS is not officially supported by the linux kernel and strongly depends on the used NTFS implementation (aka Distro and Distro-version). Some users might report problems, other linux user will not be able to replicate at all.

    NTFS is a proprietary file system - back ported into the kernel. It might work, but can fail drastically. Especially, avoid writing on NTFS with linux. Simple rule: reading is ok, but never write! The reason some distros ship with only read access to NTFS - if at all 😉

    So: if you want to edit your DAZ file (or e.g. call DAZ via wine) - never do that on a NTFS partition! While simply reading does not matter, as soon you write (what happens, if you start a program) - it might fail horribly (-> lost of your whole partition).

    The reason I keep all my files I use to edit from Windows and Linux on a separate exFAT partition and NAS.

    For your problem:

    • first guess: you put the search path wrongly in ‘global setting’ - yep: encoding can be tricky 😉
    • 2nd: you try to import a badly named content - so you can:

      • create a new DAZ-library elsewhere (not on a NTFS partition!)
      • look up the folder structure of the content file you cannot load - and recreated the full relative path in that new DAZ-library
      • copy the affected file not to be found into it’s new place - yes folder structure is important!
      • correct the filename
      • set the newly created location within Global Settings - so the Addon can find it
      • and: avoid touching your original DAZ-files - this might fail drastically (especially never make a copy and rename the copy within the original path, if you don’t know what you are doing!)
    • 3rd: you try to load it from a NTFS-partition. You can try another linux-kernel, distro, etc. Ubuntu failed every second time for me - so I switched to Manjaro.

    Hope that helps.

  21. Calibrator reporter

    It’s none of what you mentioned. I checked, double checked and triple checked the paths. Literally copied them from diffeo then opened them in the browser, made sure they are case sensitive after everything. Still doesn’t help. IF the issue is related to this, it’s cause of what diffeo does after the file path, which is beyond my brain power to figure out.

    As for the NTFS stuff I need it for dual booting with windows.

    As for trying on a non NTFS, yeah that’s the first thing I did. I installed windows for this addon to work. I tried to import on an ext4 partition initially.

  22. Aszrael

    ok…

    so: why you don’t do the most obvious thing simply posting the error log?

    “I tried to import on an ext4 partition initially”

    I do not get you… Have you exported from your DAZ, than copied to a folder on an ext4-drive? That will not help at all… This addon reads in the original DAZ files, for normal being the one from your windows installation. And windows cannot handle ext4 at all…

    What you mean by: “I installed windows for this addon to work.” How did you export before? If you have done it via wine - that’s a complete different story…

    Btw: why you try to open s.th. in a browser - or do you mean a file manager?

  23. Calibrator reporter

    “ Goddamn I’m laughing hard about this now. Ok so looking at the log file I got some missing assets on textures and some morphs but none of the default daz ones. This still doesn’t explain why they aren’t found. Best part is, it actually imports the ones that show up in the log…? “

    The log isn’t mentioning any of the missing morphs.

    Previously I ran daz through wine, set it up seemingly properly, did the correct paths manually cause I couldn’t figure out why the auto one was broken, before I realized I had to manually change windows format to linux. Anyways that didn’t work well, imported the exact same morphs as in a screenshot above. ( Face units, Expressions, Visemes)

    I meant file manager yeah.

  24. Log in to comment