In a medium bowl, whisk the flour, cornmeal, baking powder, sugar, salt, and garlic powder.
In another bowl, lightly beat the eggs, and add them to the dry ingredients. Add the buttermilk and mix well.
Add the softened butter and the diced onions or sliced green onions, and mix until well combined. Let the batter rest for about 5 minutes to hydrate the dry ingredients.
Heat about 4 inches of oil in a large cast-iron skillet on medium-high heat (375℉/190℃) until hot but not smoking.
Scoop the batter with a spoon or ice cream scoop and gently drop it into the hot oil. Fry in batches, turning once, until golden brown (about 5 minutes per batch). Be careful not to overcrowd the pan, as it will lower the temperature of the oil too quickly, resulting in greasy hush puppies.
Remove the hush puppies with a slotted spoon, letting the excess oil drain back into the skillet. Place them on paper towels to absorb more oil.